Frame 1
fscommand ("showmenu", false);
fscommand ("allowscale", false);
Frame 104
var playerpoints;
_global.root = this;
if (!_global.theme) {
_global.theme = new Sound(this);
_global.theme.attachSound("Rail of war.mp3");
_global.theme.start(0, 100);
}
var soSuperLevel = SharedObject.getLocal("superlevel");
if (soSuperLevel.data.levelid == undefined) {
soSuperLevel.data.levelid = 1;
soSuperLevel.flush();
}
_global.superlevel = soSuperLevel.data.levelid;
stop();
Frame 114
_global.theme.stop();
delete _global.theme;
stop();
Frame 124
_global.theme.stop();
delete _global.theme;
stop();
Frame 134
_global.theme.stop();
delete _global.theme;
stop();
Frame 144
stop();
Frame 154
_global.theme.stop();
delete _global.theme;
stop();
Frame 164
stop();
Symbol 21 Button
on (release) {
getURL ("http://www.miniclip.com/", "_blank");
}
Symbol 22 MovieClip Frame 2
_parent.mcAnimation.play();
stop();
Symbol 22 MovieClip Frame 13
_parent.gotoAndPlay("preload");
stop();
Symbol 38 MovieClip Frame 1
stop();
Symbol 38 MovieClip Frame 60
Symbol 38 MovieClip Frame 121
_parent.mcBackground.play();
stop();
Symbol 43 MovieClip Frame 1
this._visible = false;
Symbol 49 Button
on (release) {
getURL ("http://www.miniclip.com", "_blank");
}
Symbol 54 MovieClip Frame 2
if (_url.indexOf("http") > -1) {
if (_parent._parent._parent.loadAdNow) {
cacheBuster = getTimer() + random(999999);
showAd = "http://www.miniclip.com/swfcontent/push/didyouknow.swf?cacheBuster" + cacheBuster;
trace("Loading ad: " + showAd);
mcAd.loadMovie(showAd);
} else {
gotoAndPlay(_currentframe - 1);
}
}
Symbol 54 MovieClip Frame 4
if ((mcAd.getBytesTotal() != 0) && (mcAd.getBytesLoaded() == mcAd.getBytesTotal())) {
gotoAndStop ("showAd");
} else {
gotoAndPlay(_currentframe - 1);
}
Symbol 54 MovieClip Frame 12
stop();
Symbol 64 MovieClip Frame 1
stop();
Symbol 64 MovieClip Frame 100
stop();
Symbol 66 MovieClip Frame 1
stop();
Symbol 66 MovieClip Frame 12
_root.play();
_root.isFinished = true;
_parent.stop();
stop();
Symbol 67 MovieClip Frame 1
loadAdNow = false;
_root.stop();
play();
Instance of Symbol 43 MovieClip "mcIntro" in Symbol 67 MovieClip Frame 1
onClipEvent (load) {
_visible = false;
}
Symbol 67 MovieClip Frame 2
xPos = _x;
yPos = _y;
mcBackground._x = mcBackground._x - xPos;
mcBackground._y = mcBackground._y - yPos;
mcAnimation._x = mcAnimation._x - xPos;
mcAnimation._y = mcAnimation._y - yPos;
var stageWidth = Stage.width;
var stageHeight = Stage.height;
var centerStageX = (stageWidth / 2);
var centerStageY = (stageHeight / 2);
mcBackground._width = stageWidth;
mcBackground._height = stageHeight;
mcAnimation._x = mcAnimation._x + centerStageX;
mcAnimation._y = mcAnimation._y + (centerStageY - (stageHeight / 10));
stop();
Instance of Symbol 66 MovieClip "mcLoadingAnimated" in Symbol 67 MovieClip Frame 2
onClipEvent (load) {
_visible = false;
}
Symbol 67 MovieClip Frame 3
var loadedPercent = int((_root.getBytesLoaded() / _root.getBytesTotal()) * 100);
if (loadedPercent == 100) {
_root.play();
stop();
} else {
loadAdNow = true;
mcLoadingAnimated._visible = true;
}
Symbol 67 MovieClip Frame 5
var loadedPercent = int((_root.getBytesLoaded() / _root.getBytesTotal()) * 100);
if (loadedPercent < 100) {
mcLoadingAnimated.mcLoading.gotoAndStop(loadedPercent);
mcLoadingAnimated.mcLoading.txtPercentLoaded1 = ("The game is loading (" + loadedPercent) + "%)";
mcLoadingAnimated.mcLoading.txtPercentLoaded2 = ("The game is loading (" + loadedPercent) + "%)";
gotoAndPlay(_currentframe - 1);
} else {
mcLoadingAnimated.play();
stop();
}
Symbol 3303 MovieClip [__Packages.rr.BaseClip] Frame 0
class rr.BaseClip extends MovieClip
{
var events;
function BaseClip () {
super();
}
function init() {
}
function addEventListener(evt, listener) {
if (events == undefined) {
events = new mx.events.EventDispatcher();
}
events.addEventListener(evt, listener);
}
function removeEventListener(evt, listener) {
events.removeEventListener(evt, listener);
}
}
Symbol 3304 MovieClip [__Packages.mx.events.EventDispatcher] Frame 0
class mx.events.EventDispatcher
{
function EventDispatcher () {
}
static function _removeEventListener(queue, event, handler) {
if (queue != undefined) {
var _local4 = queue.length;
var _local1;
_local1 = 0;
while (_local1 < _local4) {
var _local2 = queue[_local1];
if (_local2 == handler) {
queue.splice(_local1, 1);
return(undefined);
}
_local1++;
}
}
}
static function initialize(object) {
if (_fEventDispatcher == undefined) {
_fEventDispatcher = new mx.events.EventDispatcher();
}
object.addEventListener = _fEventDispatcher.addEventListener;
object.removeEventListener = _fEventDispatcher.removeEventListener;
object.dispatchEvent = _fEventDispatcher.dispatchEvent;
object.dispatchQueue = _fEventDispatcher.dispatchQueue;
}
function dispatchQueue(queueObj, eventObj) {
var _local7 = "__q_" + eventObj.type;
var _local4 = queueObj[_local7];
if (_local4 != undefined) {
var _local5;
for (_local5 in _local4) {
var _local1 = _local4[_local5];
var _local3 = typeof(_local1);
if ((_local3 == "object") || (_local3 == "movieclip")) {
if (_local1.handleEvent != undefined) {
_local1.handleEvent(eventObj);
}
if (_local1[eventObj.type] != undefined) {
if (exceptions[eventObj.type] == undefined) {
_local1[eventObj.type](eventObj);
}
}
} else {
_local1.apply(queueObj, [eventObj]);
}
}
}
}
function dispatchEvent(eventObj) {
if (eventObj.target == undefined) {
eventObj.target = this;
}
this[eventObj.type + "Handler"](eventObj);
dispatchQueue(this, eventObj);
}
function addEventListener(event, handler) {
var _local3 = "__q_" + event;
if (this[_local3] == undefined) {
this[_local3] = new Array();
}
_global.ASSetPropFlags(this, _local3, 1);
_removeEventListener(this[_local3], event, handler);
this[_local3].push(handler);
}
function removeEventListener(event, handler) {
var _local2 = "__q_" + event;
_removeEventListener(this[_local2], event, handler);
}
static var _fEventDispatcher = undefined;
static var exceptions = {move:1, draw:1, load:1};
}
Symbol 3305 MovieClip [__Packages.rr.control.TabCard] Frame 0
class rr.control.TabCard extends rr.BaseClip
{
var locked_mc, alevel, _linkId, _parent, enabled, _alpha, onPress;
function TabCard () {
super();
init();
}
function init() {
locked_mc._visible = false;
alevel = rr.conf.Config.getObjectValue(_linkId, "availabilityLevel");
if (_parent != _global.levelresult.items_mc) {
checkEnabled();
_global.trainbuild.addEventListener("onUpdateBuild", this);
}
}
function get linkId() {
return(_linkId);
}
function set linkId(value) {
_linkId = value;
//return(linkId);
}
function onUpdateBuild() {
checkEnabled();
}
function checkEnabled() {
if ((alevel > _global.game.levelId) || (alevel > 2)) {
enabled = false;
locked_mc._visible = true;
}
}
function processEnabled() {
if (rr.conf.Config.testSettings()) {
enabled = true;
}
if (enabled) {
_alpha = 100;
onPress = rr.utils.Delegate.create(_global.trainbuild, _global.trainbuild.onCardSelect, this);
} else {
_alpha = 50;
delete onPress;
}
}
}
Symbol 3306 MovieClip [__Packages.rr.conf.Config] Frame 0
class rr.conf.Config
{
function Config () {
}
static function testSettings() {
return(false);
}
static function getGameConf(levelId) {
switch (levelId) {
case 1 :
return(new rr.conf.level.ConfLevel1());
case 2 :
return(new rr.conf.level.ConfLevel2());
}
}
static function addMapValues() {
var _local2 = _global.gameconf.map.mapid;
_global.gameconf.map.cols = getMapValue(_local2, "cols");
_global.gameconf.map.rows = getMapValue(_local2, "rows");
_global.gameconf.map.startcol = getMapValue(_local2, "startcol");
_global.gameconf.map.startrow = getMapValue(_local2, "startrow");
_global.gameconf.map.maptype = getMapValue(_local2, "maptype");
_global.gameconf.map.foreground = getMapValue(_local2, "foreground");
_global.gameconf.map.firstrail = getMapValue(_local2, "firstrail");
_global.gameconf.map.lastrail = getMapValue(_local2, "lastrail");
_global.gameconf.map.collapsepoints = getMapValue(_local2, "collapsepoints");
}
static function getMapValue(mapId, key) {
switch (mapId) {
case 1 :
return(rr.conf.map.ConfMapValues1.getValue(key));
case 2 :
return(rr.conf.map.ConfMapValues2.getValue(key));
}
}
static function getObjectValue(linkId, key) {
switch (linkId) {
case "SaddleTank" :
return(rr.conf.train.ConfSaddleTank.getValue(key));
case "BulpFrog" :
return(rr.conf.train.ConfBulpFrog.getValue(key));
case "Rhino" :
return(rr.conf.train.ConfRhino.getValue(key));
case "SuperChief" :
return(rr.conf.train.ConfSuperChief.getValue(key));
case "SuperChiefWagon" :
return(rr.conf.train.ConfSuperChiefWagon.getValue(key));
case "ICE" :
return(rr.conf.train.ConfICE.getValue(key));
case "ICEWagon" :
return(rr.conf.train.ConfICEWagon.getValue(key));
case "Dragon" :
return(rr.conf.train.ConfDragon.getValue(key));
case "Loewy" :
return(rr.conf.train.ConfLoewy.getValue(key));
case "Pennsylvania" :
return(rr.conf.train.ConfPennsylvania.getValue(key));
case "SmallCannon" :
return(rr.conf.train.ConfSmallCannon.getValue(key));
case "MediumCannon" :
return(rr.conf.train.ConfMediumCannon.getValue(key));
case "LargeCannon" :
return(rr.conf.train.ConfLargeCannon.getValue(key));
case "HugeCannon" :
return(rr.conf.train.ConfHugeCannon.getValue(key));
case "Heatseeker" :
return(rr.conf.train.ConfHeatseeker.getValue(key));
case "BunkerBuster" :
return(rr.conf.train.ConfBunkerBuster.getValue(key));
case "RailRockets" :
return(rr.conf.train.ConfRailRockets.getValue(key));
case "EMP" :
return(rr.conf.train.ConfEMP.getValue(key));
case "SmallFastCannon" :
return(rr.conf.train.ConfSmallFastCannon.getValue(key));
case "RocketLauncher" :
return(rr.conf.train.ConfRocketLauncher.getValue(key));
case "Wagon1" :
return(rr.conf.train.ConfWagon1.getValue(key));
case "Wagon2" :
return(rr.conf.train.ConfWagon2.getValue(key));
case "Wagon3" :
return(rr.conf.train.ConfWagon3.getValue(key));
case "Wagon4" :
return(rr.conf.train.ConfWagon4.getValue(key));
case "OilTank" :
return(rr.conf.train.ConfOilTank.getValue(key));
case "ColeCart" :
return(rr.conf.train.ConfColeCart.getValue(key));
case "PowerGenerator" :
return(rr.conf.train.ConfPowerGenerator.getValue(key));
case "AirCrane" :
return(rr.conf.train.ConfAirCrane.getValue(key));
case "FuelTank" :
return(rr.conf.train.ConfFuelTank.getValue(key));
case "Passenger" :
return(rr.conf.train.ConfPassenger.getValue(key));
case "PassengerArmored" :
return(rr.conf.train.ConfPassengerArmored.getValue(key));
case "TankTrailer" :
return(rr.conf.train.ConfTankTrailer.getValue(key));
case "ABomb" :
return(rr.conf.train.ConfABomb.getValue(key));
case "Compound" :
return(rr.conf.train.ConfCompound.getValue(key));
case "Basilisk" :
return(rr.conf.enemy.ConfBasilisk.getValue(key));
case "PotTank" :
return(rr.conf.enemy.ConfPotTank.getValue(key));
case "Abrahams" :
return(rr.conf.enemy.ConfAbrahams.getValue(key));
case "Elephant" :
return(rr.conf.enemy.ConfElephant.getValue(key));
case "OldJeep" :
return(rr.conf.enemy.ConfOldJeep.getValue(key));
case "GunTruck" :
return(rr.conf.enemy.ConfGunTruck.getValue(key));
case "ArmoredJeep" :
return(rr.conf.enemy.ConfArmoredJeep.getValue(key));
case "Panther" :
return(rr.conf.enemy.ConfPanther.getValue(key));
case "BullDozer" :
return(rr.conf.enemy.ConfBullDozer.getValue(key));
case "Bunker" :
return(rr.conf.enemy.ConfBunker.getValue(key));
case "GatlingSingle" :
return(rr.conf.enemy.ConfGatlingSingle.getValue(key));
case "GatlingDouble" :
return(rr.conf.enemy.ConfGatlingDouble.getValue(key));
case "Rocketeer" :
return(rr.conf.enemy.ConfRocketeer.getValue(key));
case "RocketBase" :
return(rr.conf.enemy.ConfRocketBase.getValue(key));
case "Rocket" :
return(rr.conf.enemy.ConfRocket.getValue(key));
case "AirField" :
return(rr.conf.enemy.ConfAirField.getValue(key));
case "FockeWolf" :
return(rr.conf.enemy.ConfFockeWolf.getValue(key));
case "MesserSchmidt" :
return(rr.conf.enemy.ConfMesserSchmidt.getValue(key));
case "WartHog" :
return(rr.conf.enemy.ConfWartHog.getValue(key));
case "C47" :
return(rr.conf.enemy.ConfC47.getValue(key));
case "B2" :
return(rr.conf.enemy.ConfB2.getValue(key));
case "BellHuey" :
return(rr.conf.enemy.ConfBellHuey.getValue(key));
case "Apache" :
return(rr.conf.enemy.ConfApache.getValue(key));
}
}
static function translateEnemyCodes(codes) {
var _local3 = [];
var _local1 = 0;
while (_local1 < codes.length) {
if (codes[_local1] == "bl") {
_local3.push("Basilisk");
}
if (codes[_local1] == "pt") {
_local3.push("PotTank");
}
if (codes[_local1] == "ah") {
_local3.push("Abrahams");
}
if (codes[_local1] == "el") {
_local3.push("Elephant");
}
if (codes[_local1] == "oj") {
_local3.push("OldJeep");
}
if (codes[_local1] == "gt") {
_local3.push("GunTruck");
}
if (codes[_local1] == "aj") {
_local3.push("ArmoredJeep");
}
if (codes[_local1] == "pn") {
_local3.push("Panther");
}
if (codes[_local1] == "bd") {
_local3.push("BullDozer");
}
if (codes[_local1] == "bk") {
_local3.push("Bunker");
}
if (codes[_local1] == "gs") {
_local3.push("GatlingSingle");
}
if (codes[_local1] == "gd") {
_local3.push("GatlingDouble");
}
if (codes[_local1] == "rt") {
_local3.push("Rocketeer");
}
if (codes[_local1] == "af") {
_local3.push("AirField");
}
if (codes[_local1] == "rb") {
_local3.push("RocketBase");
}
if (codes[_local1] == "fw") {
_local3.push("FockeWolf");
}
if (codes[_local1] == "ms") {
_local3.push("MesserSchmidt");
}
if (codes[_local1] == "wh") {
_local3.push("WartHog");
}
if (codes[_local1] == "c47") {
_local3.push("C47");
}
if (codes[_local1] == "b2") {
_local3.push("B2");
}
if (codes[_local1] == "bh") {
_local3.push("BellHuey");
}
if (codes[_local1] == "ap") {
_local3.push("Apache");
}
_local1++;
}
return(_local3);
}
static function translateDropCode(code) {
if (code == "f") {
return("FuelTank");
}
if (code == "p") {
return("Passenger");
}
if (code == "a") {
return("PassengerArmored");
}
if (code == "t") {
return("TankTrailer");
}
if (code == "b") {
return("ABomb");
}
}
}
Symbol 3307 MovieClip [__Packages.rr.conf.level.ConfLevel1] Frame 0
class rr.conf.level.ConfLevel1
{
var title, missiontext, map, nightmap, startcash, levelpoints, ea, af, bk, rb, bs, dp;
function ConfLevel1 () {
title = "Grass Rage";
missiontext = "1. Drop off Passenger wagon near start position\r2. Pick up Fuel tank at train depot east of map";
map = new rr.conf.map.ConfMap1();
nightmap = false;
startcash = 5500;
levelpoints = 6500;
ea = [{x:2559, y:178, w:85, h:85, e:["bl"]}, {x:2945, y:144, w:168, h:268, e:["pt", "oj", "oj"]}, {x:2619, y:298, w:292, h:162, e:["bd"]}, {x:1958, y:302, w:85, h:85, e:["gs"]}, {x:1333, y:107, w:194, h:300, e:["aj", "aj", "gt", "oj", "oj"]}, {x:715, y:313, w:232, h:163, e:["oj", "oj", "aj", "oj"]}, {x:1027, y:361, w:267, h:108, e:["aj", "oj"]}, {x:2040, y:47, w:85, h:85, e:["gs"]}, {x:2168, y:278, w:102, h:189, e:["gt", "gt"]}, {x:2872, y:12, w:463, h:101, e:["oj", "oj", "aj", "oj"]}, {x:3383, y:63, w:164, h:162, e:["bd", "bd"]}, {x:4228, y:31, w:85, h:85, e:["gd"]}, {x:4324, y:383, w:85, h:85, e:["gd"]}, {x:4755, y:375, w:85, h:85, e:["gs"]}, {x:5113, y:64, w:235, h:393, e:["bd", "el", "pt", "pt", "aj", "oj", "oj"]}, {x:5509, y:296, w:85, h:85, e:["bl"]}, {x:3845, y:8, w:260, h:151, e:["oj", "oj"]}, {x:3571, y:306, w:161, h:149, e:["oj", "oj"]}, {x:1619, y:143, w:308, h:312, e:["oj", "oj", "oj", "aj", "aj", "gt"]}, {e:["oj", "oj", "oj"], a:[{x:1110, y:46, w:188, h:95}, {x:967, y:176, w:274, h:158}]}, {e:["pt", "gt", "aj", "el"], a:[{x:3782, y:355, w:395, h:105}, {x:3853, y:186, w:308, h:129}]}, {e:["gt", "pt", "aj", "aj", "pt"], a:[{x:4446, y:263, w:188, h:185}, {x:4588, y:18, w:249, h:138}, {x:4356, y:28, w:195, h:208}]}, {e:["gt", "gt", "aj", "pt"], a:[{x:5644, y:70, w:249, h:177}, {x:5685, y:287, w:588, h:148}]}, {e:["aj", "aj", "aj", "oj", "oj"], a:[{x:4892, y:322, w:191, h:148}, {x:4879, y:13, w:187, h:124}]}];
af = [{x:4280, y:305, r:171, e:["fw", "fw", "fw", "fw"]}];
bk = [{x:3227, y:287, r:-130, s:100}, {x:3324, y:262, r:-63, s:96}, {x:3369, y:341, r:-23, s:100}, {x:3660, y:141, r:116, s:100}, {x:3764, y:135, r:55, s:90}, {x:3713, y:81, r:95, s:100}];
rb = [];
bs = [{x:6144, y:378, t:"m", c:500}, {x:5801, y:448, t:"e"}, {x:3428, y:106, t:"r"}, {x:1556, y:278, t:"e"}, {x:2674, y:54, t:"m", c:250}, {x:4572, y:71, t:"r"}, {x:5095, y:443, t:"r"}];
dp = [{x:624, y:374, t:"p", m:"d"}, {x:6282, y:381, t:"f", m:"p"}];
}
}
Symbol 3308 MovieClip [__Packages.rr.conf.map.ConfMap1] Frame 0
class rr.conf.map.ConfMap1
{
var mapid, title, rc, rs, cp;
function ConfMap1 () {
mapid = 1;
title = "default";
rc = [{id:1, x:20, y:196, a:0}, {id:2, x:320, y:196, a:0}, {id:9999, x:6180, y:139, a:-180}, {id:10000, x:6280, y:139, a:-180}, {id:3, x:456, y:196, a:0}, {id:4, x:603, y:149, a:-325}, {id:5, x:732, y:108, a:-360}, {id:6, x:1011, y:108, a:-360, s:{x:1009, y:74, p:[-1, -1, 16, -1, 18, -1, -1, -1]}}, {id:17, x:1287, y:108, a:-360}, {id:19, x:935, y:273, a:-229}, {id:23, x:662, y:252, a:-140}, {id:24, x:736, y:459, a:0}, {id:25, x:1165, y:459, a:0}, {id:27, x:1385, y:186, a:-77}, {id:28, x:1286, y:459, a:0}, {id:29, x:1385, y:369, a:-276}, {id:30, x:1497, y:268, a:-360}, {id:33, x:1661, y:350, a:-53}, {id:34, x:1765, y:402, a:0, s:{x:1759, y:364, p:[-1, 38, 35, -1, -1, -1, -1, -1]}}, {id:36, x:2281, y:402, a:0}, {id:38, x:2706, y:402, a:0}, {id:39, x:1970, y:248, a:-286}, {id:40, x:2065, y:161, a:-349}, {id:41, x:2586, y:60, a:-349}, {id:42, x:2636, y:55, a:0}, {id:43, x:3058, y:55, a:0}, {id:44, x:2813, y:402, a:0}, {id:45, x:2952, y:291, a:-283}, {id:46, x:3244, y:55, a:-359}, {id:49, x:3538, y:235, a:-64, s:{x:3579, y:230, p:[-1, -1, 50, 49, -1, -1, -1, -1]}}, {id:50, x:3827, y:417, a:0}, {id:51, x:3665, y:314, a:-360}, {id:52, x:3765, y:314, a:-360}, {id:53, x:3935, y:229, a:-307}, {id:54, x:4122, y:135, a:-360}, {id:55, x:4220, y:417, a:0}, {id:56, x:4222, y:135, a:-360}, {id:57, x:4373, y:98, a:-332}, {id:58, x:4453, y:78, a:0}, {id:59, x:4786, y:78, a:0}, {id:61, x:4303, y:396, a:-331}, {id:62, x:4454, y:357, a:0}, {id:63, x:4637, y:357, a:0}, {id:64, x:5030, y:78, a:0}, {id:65, x:5185, y:182, a:-68}, {id:66, x:4767, y:357, a:0}, {id:67, x:4851, y:403, a:-57}, {id:68, x:4947, y:455, a:0}, {id:69, x:5070, y:455, a:0}, {id:70, x:5188, y:354, a:-279}, {id:73, x:5292, y:254, a:-360}, {id:74, x:5507, y:254, a:-360, s:{x:5507, y:214, p:[-1, 75, -1, 80, -1, -1, -1, -1]}}, {id:76, x:5655, y:197, a:-318}, {id:79, x:5810, y:137, a:-360}, {id:80, x:5647, y:356, a:-72}, {id:81, x:5781, y:453, a:-360, s:{x:5781, y:413, p:[-1, 105, 90, -1, -1, -1, -1, -1]}}, {id:90, x:5881, y:453, a:-360, s:{x:5903, y:417, p:[-1, 91, 94, -1, -1, -1, -1, -1]}}, {id:91, x:5929, y:441, a:-331}, {id:92, x:5977, y:428, a:-360, s:{x:5976, y:394, p:[-1, 97, 93, -1, -1, -1, -1, -1]}}, {id:93, x:6356, y:428, a:-360}, {id:94, x:5981, y:453, a:-360}, {id:95, x:6356, y:453, a:-360}, {id:97, x:6041, y:404, a:-320, s:{x:6034, y:356, p:[-1, 102, 98, -1, -1, -1, -1, -1]}}, {id:98, x:6105, y:381, a:0}, {id:100, x:6357, y:381, a:0}, {id:102, x:6062, y:380, a:-302}, {id:103, x:6148, y:333, a:0}, {id:104, x:6355, y:333, a:0}, {id:105, x:5878, y:379, a:-285}, {id:106, x:5975, y:305, a:0}, {id:107, x:6357, y:305, a:0}];
rs = [{id:1, s:1, e:2}, {id:10000, s:10000, e:9999}, {id:2, s:2, e:3}, {id:3, s:3, e:4, r:254, d:1, l:157}, {id:4, s:4, e:5, r:229, d:-1, l:138}, {id:5, s:5, e:6}, {id:16, s:6, e:17}, {id:18, s:6, e:19, r:100, d:-1, l:400}, {id:22, s:19, e:23, r:195, d:1, l:304}, {id:23, s:23, e:24, r:117, d:1, l:285}, {id:24, s:24, e:25}, {id:26, s:17, e:27, r:100, d:-1, l:135}, {id:27, s:25, e:28}, {id:28, s:28, e:29, r:100, d:1, l:147}, {id:29, s:29, e:30, r:113, d:-1, l:165}, {id:30, s:27, e:30, r:106, d:1, l:149}, {id:32, s:30, e:33, r:206, d:-1, l:190}, {id:33, s:33, e:34, r:131, d:1, l:121}, {id:35, s:34, e:36}, {id:37, s:36, e:38}, {id:38, s:34, e:39, r:213, d:1, l:275}, {id:39, s:39, e:40, r:123, d:-1, l:135}, {id:40, s:40, e:41}, {id:41, s:41, e:42, r:254, d:-1, l:50}, {id:42, s:42, e:43}, {id:43, s:38, e:44}, {id:44, s:44, e:45, r:143, d:1, l:192}, {id:45, s:45, e:46, r:304, d:-1, l:404}, {id:46, s:43, e:46}, {id:48, s:46, e:49, r:322, d:-1, l:364}, {id:49, s:49, e:50, r:324, d:1, l:360}, {id:50, s:49, e:51, r:140, d:1, l:157}, {id:51, s:51, e:52}, {id:52, s:52, e:53, r:211, d:1, l:197}, {id:53, s:53, e:54, r:236, d:-1, l:217}, {id:54, s:50, e:55}, {id:55, s:54, e:56}, {id:56, s:56, e:57, r:326, d:1, l:157}, {id:57, s:57, e:58, r:169, d:-1, l:83}, {id:58, s:58, e:59}, {id:60, s:55, e:61, r:174, d:1, l:87}, {id:61, s:61, e:62, r:308, d:-1, l:157}, {id:62, s:62, e:63}, {id:63, s:59, e:64}, {id:64, s:64, e:65, r:168, d:-1, l:198}, {id:65, s:63, e:66}, {id:66, s:66, e:67, r:100, d:-1, l:100}, {id:67, s:67, e:68, r:115, d:1, l:114}, {id:68, s:68, e:69}, {id:69, s:69, e:70, r:119, d:1, l:169}, {id:72, s:65, e:73, r:115, d:1, l:137}, {id:73, s:73, e:74}, {id:74, s:70, e:73, r:117, d:-1, l:157}, {id:75, s:74, e:76, r:220, d:1, l:162}, {id:78, s:76, e:79, r:234, d:-1, l:170}, {id:79, s:79, e:9999, eo:1}, {id:80, s:74, e:80, r:147, d:-1, l:185}, {id:81, s:80, e:81, r:140, d:1, l:177}, {id:90, s:81, e:90}, {id:91, s:90, e:91, r:100, d:1, l:50}, {id:92, s:91, e:92, r:100, d:-1, l:50}, {id:93, s:92, e:93}, {id:94, s:90, e:94}, {id:95, s:94, e:95}, {id:97, s:92, e:97, r:100, d:1, l:70}, {id:98, s:97, e:98, r:100, d:-1, l:70}, {id:100, s:98, e:100}, {id:102, s:97, e:102, r:100, d:1, l:32}, {id:103, s:102, e:103, r:100, d:-1, l:102}, {id:104, s:103, e:104}, {id:105, s:81, e:105, r:100, d:1, l:131}, {id:106, s:105, e:106, r:100, d:-1, l:131}, {id:107, s:106, e:107}];
cp = [{x:2111, y:390, rot:0}, {x:2792, y:68, rot:180}, {x:4169, y:123, rot:0}, {x:4697, y:369, rot:180}, {x:5409, y:240, rot:0}];
}
}
Symbol 3309 MovieClip [__Packages.rr.conf.level.ConfLevel2] Frame 0
class rr.conf.level.ConfLevel2
{
var title, missiontext, map, nightmap, startcash, levelpoints, ea, af, bk, rb, bs, dp;
function ConfLevel2 () {
title = "Desert Rage";
missiontext = "1. Drop off Passenger wagon and Fuel tank at train depot south of start position\r2. Drop off Tank trailer north of map\r3. Pick up Armed Passenger wagon at oasis\r4. Pick up two Fuel tanks at train depot on the east";
map = new rr.conf.map.ConfMap2();
nightmap = false;
startcash = 6250;
levelpoints = 10500;
ea = [{x:2536, y:2084, w:381, h:280, e:["pt", "pt", "gt", "gt", "aj", "el", "oj", "oj", "aj"]}, {x:71, y:1591, w:512, h:415, e:["bd", "bd", "gt", "gt", "aj", "aj", "el", "pt", "pt", "pt", "oj", "oj"]}, {x:551, y:1120, w:347, h:258, e:["oj", "oj", "oj", "oj", "aj", "aj", "gt", "oj"]}, {x:1274, y:1009, w:85, h:85, e:["gs"]}, {x:1279, y:1264, w:85, h:85, e:["gs"]}, {x:1876, y:351, w:181, h:385, e:["pt", "gt", "gt", "aj"]}, {x:2325, y:229, w:85, h:85, e:["gs"]}, {x:3213, y:1117, w:85, h:85, e:["bl"]}, {x:3579, y:1111, w:402, h:334, e:["el", "aj", "oj", "oj", "pt", "ah", "bd", "aj", "aj", "gt", "gt"]}, {x:3323, y:1716, w:292, h:206, e:["el", "el", "gt", "gt", "aj", "aj", "aj"]}, {x:3273, y:2237, w:85, h:85, e:["gd"]}, {x:2943, y:2238, w:85, h:85, e:["gd"]}, {x:4218, y:2097, w:327, h:245, e:["pt", "pt", "pt", "el", "oj", "oj"]}, {x:4261, y:1728, w:85, h:85, e:["bl"]}, {x:671, y:1919, w:405, h:322, e:["oj", "oj", "aj", "aj", "gt", "gt", "oj", "oj", "oj"]}, {x:4066, y:933, w:343, h:201, e:["ah", "oj", "oj", "aj", "aj"]}, {x:3014, y:686, w:186, h:93, e:["aj", "aj"]}, {e:["aj", "aj", "oj", "oj", "pt", "pt", "oj", "oj", "oj", "gt", "gt", "gt"], a:[{x:3177, y:1242, w:322, h:313}, {x:2661, y:1467, w:479, h:149}]}, {e:["el", "gt", "gt", "gt", "aj", "aj", "oj", "oj", "pt", "pt", "aj", "aj", "gt", "gt", "pt"], a:[{x:2894, y:311, w:150, h:215}, {x:2568, y:26, w:743, h:278}]}, {e:["gt", "gt", "gt", "aj", "aj", "aj", "oj", "oj", "oj", "ah", "pt", "el", "gt", "pt"], a:[{x:790, y:1480, w:319, h:288}, {x:1054, y:1120, w:217, h:179}]}, {e:["gt", "gt", "aj", "aj", "pt", "pt", "el", "oj"], a:[{x:2120, y:1588, w:317, h:307}, {x:2030, y:1293, w:232, h:246}]}, {e:["bd", "pt", "pt", "el", "gt", "gt", "aj", "oj", "oj"], a:[{x:1764, y:759, w:286, h:185}, {x:1768, y:1067, w:243, h:290}]}, {e:["pt", "pt", "el", "gt", "bd", "bd", "bd"], a:[{x:3390, y:2214, w:147, h:160}, {x:3665, y:2227, w:461, h:158}]}, {e:["bd", "bd", "pt", "pt", "pn", "gt", "gt", "aj", "aj"], a:[{x:5007, y:1444, w:106, h:173}, {x:4548, y:1637, w:388, h:208}]}, {e:["oj", "oj", "oj", "aj", "aj", "ah", "pt", "pt", "pt", "el"], a:[{x:4110, y:1373, w:211, h:215}, {x:4019, y:1151, w:268, h:195}]}, {e:["bd", "bd", "oj", "oj", "oj"], a:[{x:2697, y:726, w:192, h:109}, {x:2470, y:835, w:158, h:127}]}];
af = [{x:3147, y:2244, r:32, e:["fw", "fw", "fw", "fw", "bh", "bh", "bh", "bh", "fw", "c47", "c47"]}];
bk = [{x:3020, y:818, r:-102, s:100}, {x:2891, y:659, r:83, s:100}, {x:2755, y:909, r:-107, s:100}, {x:2656, y:695, r:96, s:100}, {x:2427, y:840, r:50, s:94}, {x:2584, y:1047, r:-132, s:100}, {x:2276, y:1026, r:33, s:100}, {x:2386, y:1490, r:88, s:100}];
rb = [];
bs = [{x:1971, y:746, t:"e"}, {x:2991, y:2022, t:"m", c:1600}, {x:531, y:1988, t:"m", c:700}, {x:2662, y:834, t:"m", c:1000}, {x:2317, y:1203, t:"r"}, {x:4901, y:1622, t:"m", c:700}, {x:94, y:1772, t:"r"}, {x:3702, y:1282, t:"r"}, {x:2801, y:118, t:"r"}];
dp = [{x:163, y:1887, t:"f", m:"d"}, {x:366, y:1882, t:"p", m:"d"}, {x:3073, y:162, t:"t", m:"d"}, {x:3351, y:1167, t:"a", m:"p"}, {x:4842, y:1537, t:"f", m:"p"}, {x:4981, y:1536, t:"f", m:"p"}];
}
}
Symbol 3310 MovieClip [__Packages.rr.conf.map.ConfMap2] Frame 0
class rr.conf.map.ConfMap2
{
var mapid, title, rc, rs, cp;
function ConfMap2 () {
mapid = 2;
title = "default";
rc = [{id:1, x:20, y:1095, a:0}, {id:2, x:320, y:1095, a:0}, {id:9999, x:4890, y:1228, a:-180}, {id:10000, x:5090, y:1228, a:-180}, {id:3, x:607, y:1095, a:0}, {id:5, x:740, y:1167, a:-57, s:{x:776, y:1147, p:[-1, -1, 53, -1, 5, -1, -1, -1]}}, {id:6, x:597, y:1428, a:-180, s:{x:587, y:1393, p:[-1, -1, -1, -1, 17, -1, 6, -1]}}, {id:7, x:497, y:1428, a:-180, s:{x:497, y:1394, p:[-1, -1, -1, -1, 16, -1, 7, -1]}}, {id:8, x:397, y:1428, a:-180, s:{x:396, y:1394, p:[-1, -1, -1, -1, 15, -1, 8, -1]}}, {id:9, x:297, y:1428, a:-180, s:{x:295, y:1395, p:[-1, -1, -1, -1, 14, -1, 10, -1]}}, {id:11, x:197, y:1428, a:-180}, {id:14, x:97, y:1528, a:-90}, {id:15, x:197, y:1528, a:-90}, {id:16, x:297, y:1528, a:-90}, {id:17, x:397, y:1528, a:-90}, {id:18, x:497, y:1528, a:-90}, {id:19, x:497, y:1628, a:-90, s:{x:537, y:1628, p:[-1, -1, -1, 27, -1, 32, -1, -1]}}, {id:20, x:397, y:1628, a:-90, s:{x:437, y:1628, p:[-1, -1, -1, 26, -1, 31, -1, -1]}}, {id:21, x:297, y:1628, a:-90, s:{x:337, y:1628, p:[-1, -1, -1, 25, -1, 30, -1, -1]}}, {id:22, x:197, y:1628, a:-90, s:{x:237, y:1628, p:[-1, -1, -1, 23, -1, 29, -1, -1]}}, {id:23, x:97, y:2054, a:-90}, {id:24, x:214, y:1684, a:-56}, {id:25, x:231, y:1741, a:-90}, {id:26, x:314, y:1684, a:-56}, {id:27, x:414, y:1684, a:-56}, {id:28, x:514, y:1684, a:-56}, {id:29, x:231, y:2176, a:-90}, {id:30, x:180, y:1684, a:-124}, {id:31, x:280, y:1684, a:-124}, {id:32, x:380, y:1684, a:-124}, {id:33, x:480, y:1684, a:-124}, {id:34, x:163, y:1741, a:-90}, {id:35, x:163, y:2041, a:-90}, {id:37, x:263, y:1741, a:-90}, {id:38, x:263, y:2041, a:-90}, {id:39, x:331, y:1741, a:-90}, {id:40, x:331, y:2176, a:-90}, {id:41, x:363, y:1741, a:-90}, {id:42, x:363, y:2041, a:-90}, {id:43, x:431, y:1741, a:-90}, {id:44, x:431, y:2041, a:-90}, {id:45, x:463, y:1741, a:-90}, {id:46, x:463, y:2041, a:-90}, {id:47, x:531, y:1741, a:-90}, {id:48, x:531, y:2176, a:-90}, {id:50, x:97, y:2133, a:-90}, {id:51, x:197, y:2233, a:0}, {id:52, x:554, y:2233, a:0}, {id:53, x:827, y:1958, a:-270}, {id:54, x:888, y:1248, a:0}, {id:57, x:827, y:1688, a:-270}, {id:58, x:927, y:1588, a:-360}, {id:59, x:1027, y:1488, a:-270}, {id:60, x:1027, y:1347, a:-270}, {id:61, x:1127, y:1247, a:-360}, {id:64, x:1227, y:1247, a:-360, s:{x:1231, y:1208, p:[64, -1, 67, -1, -1, -1, -1, -1]}}, {id:65, x:1323, y:1176, a:-287}, {id:66, x:1430, y:1084, a:-352}, {id:67, x:1687, y:1048, a:-352}, {id:68, x:1682, y:1247, a:-360}, {id:69, x:1797, y:949, a:-284}, {id:71, x:1782, y:1247, a:-360, s:{x:1782, y:1207, p:[71, -1, 90, -1, -1, -1, -1, -1]}}, {id:72, x:1882, y:1147, a:-270}, {id:73, x:1882, y:887, a:-270}, {id:76, x:1967, y:754, a:-335}, {id:77, x:2010, y:593, a:-235}, {id:78, x:2233, y:330, a:-26}, {id:79, x:2513, y:209, a:-287}, {id:80, x:2631, y:122, a:0}, {id:81, x:2993, y:122, a:0}, {id:82, x:3096, y:230, a:-93}, {id:83, x:3077, y:601, a:-93}, {id:84, x:2983, y:724, a:-162}, {id:85, x:2739, y:803, a:-162}, {id:86, x:2482, y:993, a:-125}, {id:88, x:2379, y:1140, a:-125}, {id:89, x:2257, y:1247, a:-152}, {id:90, x:2150, y:1412, a:-94}, {id:91, x:1991, y:1247, a:-360}, {id:93, x:2143, y:1512, a:-94}, {id:94, x:2402, y:1696, a:-337}, {id:95, x:2757, y:1545, a:-337}, {id:96, x:2927, y:1532, a:-14}, {id:97, x:3307, y:1248, a:-272}, {id:99, x:3409, y:1150, a:0}, {id:100, x:3598, y:1150, a:0}, {id:102, x:3698, y:1250, a:-90}, {id:103, x:3698, y:1350, a:-90}, {id:107, x:3739, y:1480, a:-55}, {id:108, x:3615, y:1829, a:-164}, {id:112, x:3094, y:1978, a:-164}, {id:113, x:2952, y:2043, a:-147}, {id:114, x:2825, y:2126, a:-147}, {id:115, x:2796, y:2264, a:-57}, {id:116, x:2928, y:2336, a:0}, {id:117, x:3253, y:2336, a:0}, {id:118, x:3759, y:2336, a:0}, {id:119, x:4149, y:2336, a:0}, {id:120, x:4249, y:2236, a:-270}, {id:121, x:4249, y:1926, a:-270, s:{x:4209, y:1926, p:[122, -1, 121, -1, -1, -1, -1, -1]}}, {id:122, x:4349, y:1826, a:-360}, {id:123, x:4249, y:1535, a:-270}, {id:124, x:4165, y:1355, a:-220}, {id:125, x:4236, y:1179, a:-4}, {id:126, x:4599, y:1826, a:-360, s:{x:4594, y:1858, p:[126, -1, 127, -1, -1, -1, -1, -1]}}, {id:127, x:4720, y:1741, a:-290, s:{x:4764, y:1736, p:[133, 134, -1, -1, -1, -1, -1, -1]}}, {id:128, x:4739, y:1826, a:-360, s:{x:4738, y:1857, p:[128, -1, 129, -1, -1, -1, -1, -1]}}, {id:129, x:4860, y:1741, a:-290, s:{x:4904, y:1735, p:[132, 138, -1, -1, -1, -1, -1, -1]}}, {id:130, x:4879, y:1826, a:-360}, {id:131, x:5000, y:1741, a:-290}, {id:132, x:5034, y:1647, a:-290}, {id:133, x:4894, y:1647, a:-290}, {id:134, x:4754, y:1647, a:-290}, {id:135, x:4764, y:1689, a:-330}, {id:136, x:4808, y:1636, a:-290}, {id:137, x:4869, y:1469, a:-290}, {id:138, x:4819, y:1468, a:-290}, {id:139, x:4904, y:1689, a:-330}, {id:140, x:4948, y:1636, a:-290}, {id:141, x:5006, y:1476, a:-290}, {id:142, x:4956, y:1478, a:-290}, {id:143, x:5063, y:1568, a:-290}, {id:144, x:5022, y:1449, a:-212}, {id:146, x:4945, y:1427, a:-180}, {id:148, x:4845, y:1427, a:-180}, {id:150, x:4728, y:1515, a:-106}, {id:151, x:4683, y:1673, a:-106}, {id:152, x:4566, y:1761, a:-180}, {id:153, x:4460, y:1761, a:-180}, {id:156, x:4656, y:1208, a:-4}, {id:157, x:4713, y:1221, a:-22}, {id:158, x:4750, y:1228, a:0}];
rs = [{id:1, s:1, e:2}, {id:10000, s:10000, e:9999}, {id:2, s:2, e:3}, {id:4, s:3, e:5, r:159, d:-1, l:158}, {id:5, s:5, e:6, r:169, d:-1, l:364}, {id:6, s:6, e:7}, {id:7, s:7, e:8}, {id:8, s:8, e:9}, {id:10, s:9, e:11}, {id:13, s:11, e:14, r:100, d:1, l:157}, {id:14, s:9, e:15, r:100, d:1, l:157}, {id:15, s:8, e:16, r:100, d:1, l:157}, {id:16, s:7, e:17, r:100, d:1, l:157}, {id:17, s:6, e:18, r:100, d:1, l:157}, {id:18, s:18, e:19}, {id:19, s:17, e:20}, {id:20, s:16, e:21}, {id:21, s:15, e:22}, {id:22, s:14, e:23}, {id:23, s:22, e:24, r:100, d:1, l:60}, {id:24, s:24, e:25, r:100, d:-1, l:60}, {id:25, s:21, e:26, r:100, d:1, l:60}, {id:26, s:20, e:27, r:100, d:1, l:60}, {id:27, s:19, e:28, r:100, d:1, l:60}, {id:28, s:25, e:29}, {id:29, s:22, e:30, r:100, d:-1, l:60}, {id:30, s:21, e:31, r:100, d:-1, l:60}, {id:31, s:20, e:32, r:100, d:-1, l:60}, {id:32, s:19, e:33, r:100, d:-1, l:60}, {id:33, s:30, e:34, r:100, d:1, l:60}, {id:34, s:34, e:35}, {id:36, s:31, e:37, r:100, d:1, l:60}, {id:37, s:37, e:38}, {id:38, s:26, e:39, r:100, d:-1, l:60}, {id:39, s:39, e:40}, {id:40, s:32, e:41, r:100, d:1, l:60}, {id:41, s:41, e:42}, {id:42, s:27, e:43, r:100, d:-1, l:60}, {id:43, s:43, e:44}, {id:44, s:33, e:45, r:100, d:1, l:60}, {id:45, s:45, e:46}, {id:46, s:28, e:47, r:100, d:-1, l:60}, {id:47, s:47, e:48}, {id:49, s:23, e:50}, {id:50, s:50, e:51, r:100, d:1, l:157}, {id:51, s:51, e:52}, {id:52, s:52, e:53, r:273, d:1, l:431}, {id:53, s:5, e:54, r:177, d:1, l:176}, {id:54, s:54, e:61}, {id:56, s:53, e:57}, {id:57, s:57, e:58, r:100, d:-1, l:157}, {id:58, s:58, e:59, r:100, d:1, l:157}, {id:59, s:59, e:60}, {id:60, s:60, e:61, r:100, d:-1, l:157}, {id:63, s:61, e:64}, {id:64, s:64, e:65, r:100, d:1, l:128}, {id:65, s:65, e:66, r:132, d:-1, l:149}, {id:66, s:66, e:67}, {id:67, s:64, e:68}, {id:68, s:67, e:69, r:132, d:1, l:157}, {id:69, s:69, e:76, r:286, d:-1, l:266}, {id:70, s:68, e:71}, {id:71, s:71, e:72, r:100, d:1, l:157}, {id:72, s:72, e:73}, {id:75, s:73, e:76, r:147, d:-1, l:167}, {id:76, s:76, e:77, r:109, d:1, l:190}, {id:77, s:77, e:78, r:178, d:-1, l:468}, {id:78, s:78, e:79, r:201, d:1, l:346}, {id:79, s:79, e:80, r:123, d:-1, l:157}, {id:80, s:80, e:81}, {id:81, s:81, e:82, r:103, d:-1, l:167}, {id:82, s:82, e:83}, {id:83, s:83, e:84, r:137, d:-1, l:164}, {id:84, s:84, e:85}, {id:85, s:85, e:86, r:504, d:1, l:325}, {id:87, s:86, e:88}, {id:88, s:88, e:89, r:343, d:-1, l:164}, {id:89, s:89, e:90, r:203, d:1, l:205}, {id:90, s:71, e:91}, {id:91, s:91, e:90, r:159, d:-1, l:256}, {id:92, s:90, e:93}, {id:93, s:93, e:94, r:186, d:1, l:381}, {id:94, s:94, e:95}, {id:95, s:95, e:96, r:269, d:-1, l:174}, {id:96, s:96, e:97, r:306, d:1, l:543}, {id:98, s:97, e:99, r:102, d:-1, l:157}, {id:99, s:99, e:100}, {id:101, s:100, e:102, r:100, d:-1, l:157}, {id:102, s:102, e:103}, {id:106, s:103, e:107, r:227, d:1, l:139}, {id:107, s:107, e:108, r:227, d:-1, l:433}, {id:111, s:108, e:112}, {id:112, s:112, e:113, r:527, d:1, l:157}, {id:113, s:113, e:114}, {id:114, s:114, e:115, r:100, d:1, l:157}, {id:115, s:115, e:116, r:159, d:1, l:157}, {id:116, s:116, e:117}, {id:117, s:117, e:118}, {id:118, s:118, e:119}, {id:119, s:119, e:120, r:100, d:1, l:157}, {id:120, s:120, e:121}, {id:121, s:121, e:122, r:100, d:-1, l:157}, {id:122, s:121, e:123}, {id:123, s:123, e:124, r:235, d:1, l:205}, {id:124, s:124, e:125, r:100, d:-1, l:251}, {id:125, s:122, e:126}, {id:126, s:126, e:127, r:128, d:1, l:157}, {id:127, s:126, e:128}, {id:128, s:128, e:129, r:128, d:1, l:157}, {id:129, s:128, e:130}, {id:130, s:130, e:131, r:128, d:1, l:157}, {id:131, s:131, e:132}, {id:132, s:129, e:133}, {id:133, s:127, e:134}, {id:134, s:127, e:135, r:100, d:-1, l:70}, {id:135, s:135, e:136, r:100, d:1, l:70}, {id:136, s:136, e:137}, {id:137, s:134, e:138}, {id:138, s:129, e:139, r:100, d:-1, l:70}, {id:139, s:139, e:140, r:100, d:1, l:70}, {id:140, s:140, e:141}, {id:141, s:133, e:142}, {id:142, s:132, e:143}, {id:143, s:143, e:144, r:100, d:1, l:136}, {id:145, s:144, e:146, r:146, d:1, l:81}, {id:147, s:146, e:148}, {id:149, s:148, e:150, r:122, d:1, l:157}, {id:150, s:150, e:151}, {id:151, s:151, e:152, r:122, d:-1, l:157}, {id:152, s:152, e:153}, {id:153, s:153, e:123, r:212, d:-1, l:348}, {id:155, s:125, e:156}, {id:156, s:156, e:157, r:193, d:-1, l:59}, {id:157, s:157, e:158, r:100, d:1, l:38}, {id:160, s:158, e:9999, eo:1}];
cp = [{x:219, y:2102, rot:-90}, {x:344, y:2101, rot:90}, {x:519, y:2102, rot:-90}, {x:1893, y:1011, rot:90}, {x:3100, y:380, rot:93}, {x:2421, y:1058, rot:-56}, {x:3514, y:1138, rot:0}, {x:3604, y:2324, rot:0}, {x:5030, y:1695, rot:110}];
}
}
Symbol 3311 MovieClip [__Packages.rr.conf.map.ConfMapValues1] Frame 0
class rr.conf.map.ConfMapValues1
{
function ConfMapValues1 () {
}
static function getValue(key) {
if (key == "cols") {
return(10);
}
if (key == "rows") {
return(1);
}
if (key == "startcol") {
return(1);
}
if (key == "startrow") {
return(1);
}
if (key == "foreground") {
return(true);
}
if (key == "firstrail") {
return({x:20, y:196, l:300, ang:0});
}
if (key == "lastrail") {
return({x:6280, y:139, l:100, ang:-180});
}
if (key == "collapsepoints") {
return([{x:2250, y:132}, {x:2325, y:110}, {x:6138, y:138}]);
}
if (key == "maptype") {
return("grass");
}
}
}
Symbol 3312 MovieClip [__Packages.rr.conf.map.ConfMapValues2] Frame 0
class rr.conf.map.ConfMapValues2
{
function ConfMapValues2 () {
}
static function getValue(key) {
if (key == "cols") {
return(8);
}
if (key == "rows") {
return(5);
}
if (key == "startcol") {
return(1);
}
if (key == "startrow") {
return(3);
}
if (key == "foreground") {
return(true);
}
if (key == "firstrail") {
return({x:20, y:1095, l:300, ang:0});
}
if (key == "lastrail") {
return({x:5090, y:1228, l:200, ang:-180});
}
if (key == "maptype") {
return("desert");
}
if (key == "collapsepoints") {
return([{x:264, y:1095}, {x:1515, y:1070}, {x:1560, y:1070}, {x:1504, y:1240}, {x:1550, y:1240}, {x:3066, y:620}]);
}
}
}
Symbol 3313 MovieClip [__Packages.rr.conf.train.ConfSaddleTank] Frame 0
class rr.conf.train.ConfSaddleTank
{
function ConfSaddleTank () {
}
static function getValue(key) {
if (key == "name") {
return("saddle tank");
}
if (key == "availabilityLevel") {
return(1);
}
if (key == "price") {
return(700);
}
if (key == "weight") {
return(6000);
}
if (key == "maxspeed") {
return(110);
}
if (key == "minspeed") {
return(-85);
}
if (key == "maxload") {
return(10500);
}
if (key == "armor") {
return("low armor");
}
if (key == "weapon") {
return("small cannon");
}
if (key == "length") {
return(47);
}
if (key == "acceleration") {
return(0.01);
}
if (key == "accelerationfullstop") {
return(0.05);
}
if (key == "destroydelay") {
return(1000);
}
if (key == "gunsounds") {
return(["GunCannon6_short.wav"]);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "hornsound") {
return("Train 2and3 Horn.wav");
}
if (key == "buildmarginbottom") {
return(30);
}
if (key == "buildmarginleft") {
return(14);
}
if (key == "damageclip") {
return("damage_saddletank");
}
if (key == "crashfactor") {
return(10);
}
if (key == "fueltype") {
return("coal");
}
if (key == "fuel") {
return(1500);
}
if (key == "fuelconsumption") {
return(0.02);
}
if (key == "fuelprice") {
return(0.1);
}
if (key == "killlevel") {
return(1000);
}
if (key == "shootingdistance") {
return(350);
}
if (key == "shootinginterval1") {
return(400);
}
if (key == "rotationspeed1") {
return(40);
}
if (key == "rotationspeedmin") {
return(10);
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(210);
}
if (key == "ammorange") {
return(350);
}
if (key == "ammodamage") {
return(30);
}
if (key == "ammosound") {
return("Explosion06_short.wav");
}
}
}
Symbol 3314 MovieClip [__Packages.rr.conf.train.ConfBulpFrog] Frame 0
class rr.conf.train.ConfBulpFrog
{
function ConfBulpFrog () {
}
static function getValue(key) {
if (key == "name") {
return("bulp frog");
}
if (key == "availabilityLevel") {
return(2);
}
if (key == "price") {
return(900);
}
if (key == "weight") {
return(8000);
}
if (key == "maxspeed") {
return(130);
}
if (key == "minspeed") {
return(-100);
}
if (key == "maxload") {
return(14000);
}
if (key == "armor") {
return("low armor");
}
if (key == "weapon") {
return("front and back cannon");
}
if (key == "length") {
return(52);
}
if (key == "acceleration") {
return(0.02);
}
if (key == "accelerationfullstop") {
return(0.05);
}
if (key == "destroydelay") {
return(1000);
}
if (key == "gunsounds") {
return(["GunCannon4_short.wav", "GunCannon6_short.wav"]);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "hornsound") {
return("Train 2and3 Horn.wav");
}
if (key == "buildmarginbottom") {
return(38);
}
if (key == "buildmarginleft") {
return(22);
}
if (key == "damageclip") {
return("damage_bulpfrog");
}
if (key == "crashfactor") {
return(10);
}
if (key == "fueltype") {
return("oil");
}
if (key == "fuel") {
return(2000);
}
if (key == "fuelconsumption") {
return(0.01);
}
if (key == "fuelprice") {
return(0.2);
}
if (key == "killlevel") {
return(1200);
}
if (key == "shootingdistance") {
return(400);
}
if (key == "shootinginterval1") {
return(400);
}
if (key == "shootinginterval2") {
return(450);
}
if (key == "rotationspeed1") {
return(40);
}
if (key == "rotationspeed2") {
return(60);
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(210);
}
if (key == "ammorange") {
return(300);
}
if (key == "ammodamage") {
return(30);
}
if (key == "ammosound") {
return("");
}
}
}
Symbol 3315 MovieClip [__Packages.rr.conf.train.ConfRhino] Frame 0
class rr.conf.train.ConfRhino
{
function ConfRhino () {
}
static function getValue(key) {
if (key == "name") {
return("rhino industrial");
}
if (key == "availabilityLevel") {
return(3);
}
if (key == "price") {
return(1350);
}
if (key == "weight") {
return(12000);
}
if (key == "maxspeed") {
return(140);
}
if (key == "minspeed") {
return(-125);
}
if (key == "maxload") {
return(18500);
}
if (key == "armor") {
return("medium armor");
}
if (key == "weapon") {
return("2 small cannons");
}
if (key == "length") {
return(84);
}
if (key == "acceleration") {
return(0.02);
}
if (key == "accelerationfullstop") {
return(0.05);
}
if (key == "destroydelay") {
return(1000);
}
if (key == "gunsounds") {
return(["GunCannon4_short.wav", "GunCannon6_short.wav"]);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "hornsound") {
return("Train 2and3 Horn.wav");
}
if (key == "loopsound") {
return("Train 5.wav");
}
if (key == "buildmarginbottom") {
return(42);
}
if (key == "buildmarginleft") {
return(6);
}
if (key == "damageclip") {
return("damage_rhino");
}
if (key == "crashfactor") {
return(10);
}
if (key == "fueltype") {
return("electric");
}
if (key == "fuel") {
return(4000);
}
if (key == "fuelconsumption") {
return(0.02);
}
if (key == "fuelprice") {
return(0.05);
}
if (key == "killlevel") {
return(1400);
}
if (key == "shootingdistance") {
return(400);
}
if (key == "shootinginterval1") {
return(400);
}
if (key == "shootinginterval2") {
return(300);
}
if (key == "rotationspeed1") {
return(40);
}
if (key == "rotationspeed2") {
return(60);
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(210);
}
if (key == "ammorange") {
return(300);
}
if (key == "ammodamage") {
return(40);
}
if (key == "ammosound") {
return("");
}
}
}
Symbol 3316 MovieClip [__Packages.rr.conf.train.ConfSuperChief] Frame 0
class rr.conf.train.ConfSuperChief
{
function ConfSuperChief () {
}
static function getValue(key) {
if (key == "name") {
return("super chief");
}
if (key == "availabilityLevel") {
return(7);
}
if (key == "price") {
return(3000);
}
if (key == "weight") {
return(26000);
}
if (key == "maxload") {
return(20000);
}
if (key == "armor") {
return("medium armor");
}
if (key == "weapon") {
return("2 big cannons");
}
if (key == "length") {
return(82);
}
if (key == "maxspeed") {
return(210);
}
if (key == "minspeed") {
return(-180);
}
if (key == "acceleration") {
return(0.04);
}
if (key == "accelerationfullstop") {
return(0.06);
}
if (key == "destroydelay") {
return(1000);
}
if (key == "gunsounds") {
return(["GunCannon4_short.wav", "GunCannon6_short.wav"]);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "hornsound") {
return("Train 2and3 Horn.wav");
}
if (key == "buildmarginbottom") {
return(53);
}
if (key == "buildmarginleft") {
return(5);
}
if (key == "damageclip") {
return("damage_superchief");
}
if (key == "crashfactor") {
return(10);
}
if (key == "fueltype") {
return("oil");
}
if (key == "fuel") {
return(7000);
}
if (key == "fuelconsumption") {
return(0.03);
}
if (key == "fuelprice") {
return(0.05);
}
if (key == "killlevel") {
return(2000);
}
if (key == "shootingdistance") {
return(400);
}
if (key == "shootinginterval1") {
return(300);
}
if (key == "shootinginterval2") {
return(300);
}
if (key == "rotationspeed1") {
return(40);
}
if (key == "rotationspeed2") {
return(60);
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(210);
}
if (key == "ammorange") {
return(300);
}
if (key == "ammodamage") {
return(50);
}
if (key == "ammosound") {
return("");
}
}
}
Symbol 3317 MovieClip [__Packages.rr.conf.train.ConfSuperChiefWagon] Frame 0
class rr.conf.train.ConfSuperChiefWagon
{
function ConfSuperChiefWagon () {
}
static function getValue(key) {
if (key == "spaces") {
return(2);
}
if (key == "length") {
return(40);
}
if (key == "weight") {
return(0);
}
if (key == "gunsounds") {
return(["GunCannon4_short.wav", "GunCannon6_short.wav"]);
}
if (key == "shootinginterval1") {
return(300);
}
if (key == "shootinginterval2") {
return(400);
}
if (key == "rotationspeed1") {
return(40);
}
if (key == "rotationspeed2") {
return(60);
}
}
}
Symbol 3318 MovieClip [__Packages.rr.conf.train.ConfICE] Frame 0
class rr.conf.train.ConfICE
{
function ConfICE () {
}
static function getValue(key) {
if (key == "name") {
return("ice");
}
if (key == "availabilityLevel") {
return(11);
}
if (key == "price") {
return(4000);
}
if (key == "weight") {
return(22500);
}
if (key == "maxload") {
return(18000);
}
if (key == "armor") {
return("medium armor");
}
if (key == "weapon") {
return("2 big cannons");
}
if (key == "length") {
return(86);
}
if (key == "maxspeed") {
return(310);
}
if (key == "minspeed") {
return(-200);
}
if (key == "acceleration") {
return(0.06);
}
if (key == "accelerationfullstop") {
return(0.07);
}
if (key == "destroydelay") {
return(1500);
}
if (key == "gunsounds") {
return(["GunCannon4_short.wav", "GunCannon6_short.wav"]);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "hornsound") {
return("Train 2and3 Horn.wav");
}
if (key == "loopsound") {
return("Train 5.wav");
}
if (key == "buildmarginbottom") {
return(60);
}
if (key == "buildmarginleft") {
return(18);
}
if (key == "damageclip") {
return("damage_ice");
}
if (key == "crashfactor") {
return(10);
}
if (key == "fueltype") {
return("electric");
}
if (key == "fuel") {
return(8000);
}
if (key == "fuelconsumption") {
return(0.03);
}
if (key == "fuelprice") {
return(0.05);
}
if (key == "killlevel") {
return(1400);
}
if (key == "shootingdistance") {
return(500);
}
if (key == "shootinginterval1") {
return(300);
}
if (key == "rotationspeed1") {
return(40);
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(210);
}
if (key == "ammorange") {
return(300);
}
if (key == "ammodamage") {
return(30);
}
if (key == "ammosound") {
return("");
}
}
}
Symbol 3319 MovieClip [__Packages.rr.conf.train.ConfICEWagon] Frame 0
class rr.conf.train.ConfICEWagon
{
function ConfICEWagon () {
}
static function getValue(key) {
if (key == "spaces") {
return(2);
}
if (key == "length") {
return(47);
}
if (key == "weight") {
return(0);
}
if (key == "gunsounds") {
return(["GunCannon4_short.wav", "GunCannon6_short.wav"]);
}
if (key == "shootinginterval1") {
return(300);
}
if (key == "rotationspeed1") {
return(40);
}
}
}
Symbol 3320 MovieClip [__Packages.rr.conf.train.ConfDragon] Frame 0
class rr.conf.train.ConfDragon
{
function ConfDragon () {
}
static function getValue(key) {
if (key == "name") {
return("dragon");
}
if (key == "availabilityLevel") {
return(9);
}
if (key == "price") {
return(3500);
}
if (key == "weight") {
return(31500);
}
if (key == "maxspeed") {
return(180);
}
if (key == "minspeed") {
return(-150);
}
if (key == "maxload") {
return(25000);
}
if (key == "armor") {
return("medium armor");
}
if (key == "weapon") {
return("2 small cannons");
}
if (key == "length") {
return(89);
}
if (key == "acceleration") {
return(0.03);
}
if (key == "accelerationfullstop") {
return(0.05);
}
if (key == "destroydelay") {
return(1100);
}
if (key == "gunsounds") {
return(["GunCannon4_short.wav", "GunCannon6_short.wav"]);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "hornsound") {
return("Train 2and3 Horn.wav");
}
if (key == "buildmarginbottom") {
return(44);
}
if (key == "buildmarginleft") {
return(9);
}
if (key == "damageclip") {
return("damage_dragon");
}
if (key == "crashfactor") {
return(10);
}
if (key == "fueltype") {
return("oil");
}
if (key == "fuel") {
return(11000);
}
if (key == "fuelconsumption") {
return(0.04);
}
if (key == "fuelprice") {
return(0.2);
}
if (key == "killlevel") {
return(2500);
}
if (key == "shootingdistance") {
return(500);
}
if (key == "shootinginterval1") {
return(300);
}
if (key == "shootinginterval2") {
return(350);
}
if (key == "rotationspeed1") {
return(40);
}
if (key == "rotationspeed2") {
return(60);
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(210);
}
if (key == "ammorange") {
return(300);
}
if (key == "ammodamage") {
return(60);
}
if (key == "ammosound") {
return("");
}
}
}
Symbol 3321 MovieClip [__Packages.rr.conf.train.ConfLoewy] Frame 0
class rr.conf.train.ConfLoewy
{
function ConfLoewy () {
}
static function getValue(key) {
if (key == "name") {
return("loewy");
}
if (key == "availabilityLevel") {
return(4);
}
if (key == "price") {
return(1800);
}
if (key == "weight") {
return(14000);
}
if (key == "maxspeed") {
return(170);
}
if (key == "minspeed") {
return(-130);
}
if (key == "maxload") {
return(21000);
}
if (key == "armor") {
return("medium armor");
}
if (key == "weapon") {
return("2 small cannons");
}
if (key == "length") {
return(88);
}
if (key == "acceleration") {
return(0.03);
}
if (key == "accelerationfullstop") {
return(0.05);
}
if (key == "destroydelay") {
return(1000);
}
if (key == "gunsounds") {
return(["GunCannon4_short.wav", "GunCannon6_short.wav"]);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "hornsound") {
return("Train 2and3 Horn.wav");
}
if (key == "buildmarginbottom") {
return(48);
}
if (key == "buildmarginleft") {
return(24);
}
if (key == "damageclip") {
return("damage_loewy");
}
if (key == "crashfactor") {
return(10);
}
if (key == "fueltype") {
return("coal");
}
if (key == "fuel") {
return(6000);
}
if (key == "fuelconsumption") {
return(0.03);
}
if (key == "fuelprice") {
return(0.1);
}
if (key == "killlevel") {
return(1800);
}
if (key == "shootingdistance") {
return(400);
}
if (key == "shootinginterval1") {
return(300);
}
if (key == "shootinginterval2") {
return(300);
}
if (key == "rotationspeed1") {
return(40);
}
if (key == "rotationspeed2") {
return(60);
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(210);
}
if (key == "ammorange") {
return(300);
}
if (key == "ammodamage") {
return(40);
}
if (key == "ammosound") {
return("");
}
}
}
Symbol 3322 MovieClip [__Packages.rr.conf.train.ConfPennsylvania] Frame 0
class rr.conf.train.ConfPennsylvania
{
function ConfPennsylvania () {
}
static function getValue(key) {
if (key == "name") {
return("pennsylvania");
}
if (key == "availabilityLevel") {
return(5);
}
if (key == "price") {
return(2400);
}
if (key == "weight") {
return(13000);
}
if (key == "maxspeed") {
return(195);
}
if (key == "minspeed") {
return(-160);
}
if (key == "maxload") {
return(22500);
}
if (key == "armor") {
return("medium armor");
}
if (key == "weapon") {
return("2 small cannons");
}
if (key == "length") {
return(99);
}
if (key == "acceleration") {
return(0.04);
}
if (key == "accelerationfullstop") {
return(0.06);
}
if (key == "destroydelay") {
return(1000);
}
if (key == "gunsounds") {
return(["GunCannon4_short.wav", "GunCannon6_short.wav"]);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "hornsound") {
return("Train 2and3 Horn.wav");
}
if (key == "loopsound") {
return("Train 5.wav");
}
if (key == "buildmarginbottom") {
return(50);
}
if (key == "buildmarginleft") {
return(23);
}
if (key == "damageclip") {
return("damage_pennsylvania");
}
if (key == "crashfactor") {
return(10);
}
if (key == "fueltype") {
return("electric");
}
if (key == "fuel") {
return(5500);
}
if (key == "fuelconsumption") {
return(0.02);
}
if (key == "fuelprice") {
return(0.05);
}
if (key == "killlevel") {
return(1600);
}
if (key == "shootingdistance") {
return(400);
}
if (key == "shootinginterval1") {
return(300);
}
if (key == "shootinginterval2") {
return(300);
}
if (key == "rotationspeed1") {
return(40);
}
if (key == "rotationspeed2") {
return(60);
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(210);
}
if (key == "ammorange") {
return(300);
}
if (key == "ammodamage") {
return(45);
}
if (key == "ammosound") {
return("");
}
}
}
Symbol 3323 MovieClip [__Packages.rr.conf.train.ConfSmallCannon] Frame 0
class rr.conf.train.ConfSmallCannon
{
function ConfSmallCannon () {
}
static function getValue(key) {
if (key == "name") {
return("small cannon");
}
if (key == "availabilityLevel") {
return(1);
}
if (key == "price") {
return(500);
}
if (key == "spaces") {
return(1);
}
if (key == "weight") {
return(1200);
}
if (key == "barrel") {
return("single barrel");
}
if (key == "power") {
return("low power");
}
if (key == "buildmarginbottom") {
return(2);
}
if (key == "buildmarginleft") {
return(-3);
}
if (key == "mode") {
return("aim");
}
if (key == "damageclip") {
return("damage_smallcannon");
}
if (key == "feelerradius") {
return(22);
}
if (key == "barrellength") {
return(20);
}
if (key == "killlevel") {
return(900);
}
if (key == "gunsound") {
return("GunCannon11_short.wav");
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "destroydelay") {
return(1400);
}
if (key == "rotationSpeed") {
return(20);
}
if (key == "rotationspeedmin") {
return(10);
}
if (key == "shootingDistance") {
return(400);
}
if (key == "shootingDistanceMin") {
return(50);
}
if (key == "shootingInterval") {
return(600);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "ammospeed") {
return(40);
}
if (key == "ammorange") {
return(300);
}
if (key == "ammoduration") {
return(540);
}
if (key == "ammoAccuracy") {
return(20);
}
if (key == "ammodamage") {
return(25);
}
if (key == "explosionradius") {
return(30);
}
if (key == "ammosound") {
return("Explosion06_short.wav");
}
}
}
Symbol 3324 MovieClip [__Packages.rr.conf.train.ConfMediumCannon] Frame 0
class rr.conf.train.ConfMediumCannon
{
function ConfMediumCannon () {
}
static function getValue(key) {
if (key == "name") {
return("medium cannon");
}
if (key == "availabilityLevel") {
return(1);
}
if (key == "price") {
return(900);
}
if (key == "spaces") {
return(2);
}
if (key == "weight") {
return(2550);
}
if (key == "barrel") {
return("single barrel");
}
if (key == "power") {
return("medium power");
}
if (key == "buildmarginbottom") {
return(1);
}
if (key == "buildmarginleft") {
return(16);
}
if (key == "mode") {
return("aim");
}
if (key == "damageclip") {
return("damage_mediumcannon");
}
if (key == "feelerradius") {
return(22);
}
if (key == "barrellength") {
return(20);
}
if (key == "killlevel") {
return(1200);
}
if (key == "gunsound") {
return("GunCannon3_short.wav");
}
if (key == "explodesound") {
return("Explosion10_short.wav");
}
if (key == "destroydelay") {
return(1400);
}
if (key == "rotationSpeed") {
return(30);
}
if (key == "rotationspeedmin") {
return(10);
}
if (key == "shootingDistance") {
return(450);
}
if (key == "shootingInterval") {
return(1000);
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(800);
}
if (key == "ammorange") {
return(450);
}
if (key == "ammodamage") {
return(45);
}
if (key == "ammosound") {
return("Explosion06_short.wav");
}
}
}
Symbol 3325 MovieClip [__Packages.rr.conf.train.ConfLargeCannon] Frame 0
class rr.conf.train.ConfLargeCannon
{
function ConfLargeCannon () {
}
static function getValue(key) {
if (key == "name") {
return("large cannon");
}
if (key == "availabilityLevel") {
return(3);
}
if (key == "price") {
return(1500);
}
if (key == "spaces") {
return(3);
}
if (key == "weight") {
return(4500);
}
if (key == "barrel") {
return("single long barrel");
}
if (key == "power") {
return("high power - long range");
}
if (key == "buildmarginbottom") {
return(2);
}
if (key == "buildmarginleft") {
return(33);
}
if (key == "buildflip") {
return(true);
}
if (key == "mode") {
return("automatic");
}
if (key == "damageclip") {
return("damage_largecannon");
}
if (key == "feelerradius") {
return(40);
}
if (key == "barrellength") {
return(59);
}
if (key == "killlevel") {
return(1500);
}
if (key == "gunsound") {
return("GunCannon11_short.wav");
}
if (key == "explodesound") {
return("explode08_sound");
}
if (key == "destroydelay") {
return(1400);
}
if (key == "rotationSpeed") {
return(20);
}
if (key == "rotationspeedmin") {
return(10);
}
if (key == "shootingDistance") {
return(900);
}
if (key == "shootingDistanceMin") {
return(300);
}
if (key == "shootingInterval") {
return(2500);
}
if (key == "ammospeed") {
return(40);
}
if (key == "ammoduration") {
return(1100);
}
if (key == "ammoangle") {
return(5);
}
if (key == "ammoAccuracy") {
return(70);
}
if (key == "ammodamage") {
return(50);
}
if (key == "explosionradius") {
return(140);
}
if (key == "ammosound") {
return("explode06_sound");
}
if (key == "targets") {
return(["Basilisk", "AirField", "Bunker"]);
}
}
}
Symbol 3326 MovieClip [__Packages.rr.conf.train.ConfHugeCannon] Frame 0
class rr.conf.train.ConfHugeCannon
{
function ConfHugeCannon () {
}
static function getValue(key) {
if (key == "name") {
return("huge cannon");
}
if (key == "availabilityLevel") {
return(6);
}
if (key == "price") {
return(3150);
}
if (key == "spaces") {
return(2);
}
if (key == "wagonspaces") {
return(4);
}
if (key == "weight") {
return(9000);
}
if (key == "barrel") {
return("single long barrel");
}
if (key == "power") {
return("extreme power - long range");
}
if (key == "length") {
return(56);
}
if (key == "height") {
return(16);
}
if (key == "buildmargintop") {
return(83);
}
if (key == "buildmarginbottom") {
return(56);
}
if (key == "buildmarginleft") {
return(0);
}
if (key == "buildmarginright1") {
return(37);
}
if (key == "buildmarginright2") {
return(63);
}
if (key == "buildflip") {
return(true);
}
if (key == "mode") {
return("automatic");
}
if (key == "damageclip") {
return("damage_hugecannon");
}
if (key == "feelerradius") {
return(30);
}
if (key == "barrellength") {
return(46);
}
if (key == "killlevel") {
return(2000);
}
if (key == "gunsound") {
return("GunCannon11_short.wav");
}
if (key == "explodesound") {
return("explode08_sound");
}
if (key == "destroydelay") {
return(1400);
}
if (key == "rotationSpeed") {
return(20);
}
if (key == "rotationspeedmin") {
return(10);
}
if (key == "shootingDistance") {
return(1100);
}
if (key == "shootingDistanceMin") {
return(400);
}
if (key == "shootingInterval") {
return(3000);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "ammospeed") {
return(40);
}
if (key == "ammoduration") {
return(1000);
}
if (key == "ammoangle") {
return(20);
}
if (key == "ammoAccuracy") {
return(70);
}
if (key == "ammodamage") {
return(60);
}
if (key == "explosionradius") {
return(150);
}
if (key == "ammosound") {
return("explode06_sound");
}
if (key == "targets") {
return(["Basilisk", "AirField", "Bunker", "RocketBase"]);
}
}
}
Symbol 3327 MovieClip [__Packages.rr.conf.train.ConfHeatseeker] Frame 0
class rr.conf.train.ConfHeatseeker
{
function ConfHeatseeker () {
}
static function getValue(key) {
if (key == "range") {
return(2000);
}
if (key == "detectionDistance") {
return(600);
}
if (key == "minCurve") {
return(4);
}
if (key == "maxCurve") {
return(6);
}
if (key == "maxSpeed") {
return(10);
}
if (key == "acceleration") {
return(0.3);
}
if (key == "targets") {
return(["AirUnit"]);
}
if (key == "ammoduration") {
return(1040);
}
if (key == "startsound") {
return(["Missile firing3_short.wav"]);
}
if (key == "sound") {
return(["Missile3_loop.wav"]);
}
if (key == "explodesound") {
return(["Explosion07_short.wav"]);
}
if (key == "explosiondamage") {
return(40);
}
if (key == "explosionradius") {
return(130);
}
}
}
Symbol 3328 MovieClip [__Packages.rr.conf.train.ConfBunkerBuster] Frame 0
class rr.conf.train.ConfBunkerBuster
{
function ConfBunkerBuster () {
}
static function getValue(key) {
if (key == "name") {
return("bunker buster");
}
if (key == "availabilityLevel") {
return(3);
}
if (key == "price") {
return(1900);
}
if (key == "spaces") {
return(1);
}
if (key == "weight") {
return(2000);
}
if (key == "barrel") {
return("single short barrel");
}
if (key == "power") {
return("medium power - long range");
}
if (key == "buildmarginbottom") {
return(2);
}
if (key == "buildmarginleft") {
return(1);
}
if (key == "mode") {
return("automatic");
}
if (key == "damageclip") {
return("damage_bunkerbuster");
}
if (key == "feelerradius") {
return(22);
}
if (key == "barrellength") {
return(20);
}
if (key == "killlevel") {
return(1400);
}
if (key == "gunsound") {
return("GunCannon11_short.wav");
}
if (key == "explodesound") {
return("explode08_sound");
}
if (key == "destroydelay") {
return(1000);
}
if (key == "rotationSpeed") {
return(20);
}
if (key == "rotationspeedmin") {
return(10);
}
if (key == "shootingDistance") {
return(600);
}
if (key == "shootingDistanceMin") {
return(250);
}
if (key == "shootingInterval") {
return(3000);
}
if (key == "ammospeed") {
return(40);
}
if (key == "ammoduration") {
return(540);
}
if (key == "ammoAccuracy") {
return(60);
}
if (key == "ammodamage") {
return(50);
}
if (key == "explosionradius") {
return(150);
}
if (key == "ammosound") {
return("explode06_sound");
}
if (key == "targets") {
return(["Bunker", "Basilisk", "GatlingSingle", "GatlingDouble", "Elephant", "Panther"]);
}
}
}
Symbol 3329 MovieClip [__Packages.rr.conf.train.ConfRailRockets] Frame 0
class rr.conf.train.ConfRailRockets
{
function ConfRailRockets () {
}
static function getValue(key) {
if (key == "name") {
return("railrockets");
}
if (key == "availabilityLevel") {
return(4);
}
if (key == "price") {
return(2150);
}
if (key == "spaces") {
return(1);
}
if (key == "weight") {
return(1900);
}
if (key == "barrel") {
return("double barrel arms");
}
if (key == "power") {
return("high power - medium range");
}
if (key == "buildmarginbottom") {
return(14);
}
if (key == "buildmarginleft") {
return(0);
}
if (key == "mode") {
return("automatic");
}
if (key == "damageclip") {
return("damage_railrockets");
}
if (key == "feelerradius") {
return(18);
}
if (key == "killlevel") {
return(1600);
}
if (key == "explodesound") {
return("explode08_sound");
}
if (key == "shootingInterval") {
return(5000);
}
if (key == "detectionDistance") {
return(500);
}
if (key == "detectionRadius") {
return(400);
}
if (key == "ammoduration") {
return(540);
}
if (key == "ammominrange") {
return(100);
}
if (key == "ammomaxrange") {
return(500);
}
if (key == "ammomaxSpeed") {
return(15);
}
if (key == "ammominCurve") {
return(0.1);
}
if (key == "ammomaxCurve") {
return(0.5);
}
if (key == "ammoacceleration") {
return(0.8);
}
if (key == "ammostartsound") {
return(["Missile firing3_short.wav"]);
}
if (key == "ammosound") {
return(["Missile3_loop.wav"]);
}
if (key == "ammoexplodesound") {
return(["Explosion07_short.wav"]);
}
if (key == "ammoexplosiondamage") {
return(40);
}
if (key == "ammoexplosionradius") {
return(100);
}
}
}
Symbol 3330 MovieClip [__Packages.rr.conf.train.ConfEMP] Frame 0
class rr.conf.train.ConfEMP
{
function ConfEMP () {
}
static function getValue(key) {
if (key == "name") {
return("emp");
}
if (key == "availabilityLevel") {
return(4);
}
if (key == "price") {
return(2450);
}
if (key == "spaces") {
return(2);
}
if (key == "weight") {
return(2200);
}
if (key == "barrel") {
return("electro magnetic pulse");
}
if (key == "power") {
return("extreme power");
}
if (key == "buildmarginbottom") {
return(2);
}
if (key == "mode") {
return("automatic");
}
if (key == "damageclip") {
return("damage_emp");
}
if (key == "feelerradius") {
return(22);
}
if (key == "killlevel") {
return(1200);
}
if (key == "destroydelay") {
return(1500);
}
if (key == "gunsound") {
return("AirplaneSkid1.wav");
}
if (key == "explodesound") {
return("explode08_sound");
}
if (key == "stunDistance") {
return(650);
}
if (key == "minStunTime") {
return(10000);
}
if (key == "maxStunTime") {
return(15000);
}
if (key == "loadTime") {
return(15000);
}
}
}
Symbol 3331 MovieClip [__Packages.rr.conf.train.ConfSmallFastCannon] Frame 0
class rr.conf.train.ConfSmallFastCannon
{
function ConfSmallFastCannon () {
}
static function getValue(key) {
if (key == "name") {
return("small fast cannon");
}
if (key == "availabilityLevel") {
return(2);
}
if (key == "price") {
return(750);
}
if (key == "spaces") {
return(1);
}
if (key == "weight") {
return(1400);
}
if (key == "barrel") {
return("single barrel");
}
if (key == "power") {
return("low power");
}
if (key == "buildmarginbottom") {
return(2);
}
if (key == "buildmarginleft") {
return(9);
}
if (key == "mode") {
return("aim");
}
if (key == "damageclip") {
return("damage_smallfastcannon");
}
if (key == "feelerradius") {
return(22);
}
if (key == "barrellength") {
return(20);
}
if (key == "killlevel") {
return(1000);
}
if (key == "gunsound") {
return("GunCannon11_short.wav");
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "destroydelay") {
return(1400);
}
if (key == "rotationSpeed") {
return(20);
}
if (key == "rotationspeedmin") {
return(10);
}
if (key == "shootingDistance") {
return(350);
}
if (key == "shootingDistanceMin") {
return(50);
}
if (key == "shootingInterval") {
return(500);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "ammospeed") {
return(40);
}
if (key == "ammorange") {
return(350);
}
if (key == "ammoduration") {
return(540);
}
if (key == "ammoAccuracy") {
return(20);
}
if (key == "ammodamage") {
return(15);
}
if (key == "explosionradius") {
return(30);
}
if (key == "ammosound") {
return("Explosion06_short.wav");
}
}
}
Symbol 3332 MovieClip [__Packages.rr.conf.train.ConfRocketLauncher] Frame 0
class rr.conf.train.ConfRocketLauncher
{
function ConfRocketLauncher () {
}
static function getValue(key) {
if (key == "name") {
return("rocketlauncher");
}
if (key == "availabilityLevel") {
return(2);
}
if (key == "price") {
return(1500);
}
if (key == "spaces") {
return(1);
}
if (key == "weight") {
return(1800);
}
if (key == "barrel") {
return("single barrel");
}
if (key == "power") {
return("low power");
}
if (key == "buildmarginbottom") {
return(2);
}
if (key == "buildmarginleft") {
return(-4);
}
if (key == "mode") {
return("automatic");
}
if (key == "damageclip") {
return("damage_rocketlauncher");
}
if (key == "feelerradius") {
return(20);
}
if (key == "barrellength") {
return(20);
}
if (key == "killlevel") {
return(1000);
}
if (key == "gunsound") {
return("GunCannon11_short.wav");
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "destroydelay") {
return(1500);
}
if (key == "rotationSpeed") {
return(20);
}
if (key == "rotationspeedmin") {
return(10);
}
if (key == "shootingDistance") {
return(700);
}
if (key == "shootingInterval") {
return(3000);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "ammospeed") {
return(40);
}
if (key == "ammorange") {
return(300);
}
if (key == "ammoduration") {
return(540);
}
if (key == "ammoAccuracy") {
return(10);
}
if (key == "ammodamage") {
return(400);
}
if (key == "explosionradius") {
return(150);
}
if (key == "ammosound") {
return("Explosion06_short.wav");
}
if (key == "targets") {
return(["Apache", "B2", "BellHuey", "FockeWolf", "MesserSchmidt", "Rocket", "WartHog", "C47"]);
}
}
}
Symbol 3333 MovieClip [__Packages.rr.conf.train.ConfWagon1] Frame 0
class rr.conf.train.ConfWagon1
{
function ConfWagon1 () {
}
static function getValue(key) {
if (key == "name") {
return("size 1 wagon");
}
if (key == "availabilityLevel") {
return(1);
}
if (key == "price") {
return(400);
}
if (key == "spaces") {
return(1);
}
if (key == "weight") {
return(1500);
}
if (key == "maxload") {
return(1500);
}
if (key == "buildmargintop") {
return(9);
}
if (key == "buildmarginbottom") {
return(17);
}
if (key == "buildmarginleft") {
return(14);
}
if (key == "damageclip") {
return("damage_wagon1");
}
if (key == "destroydelay") {
return(900);
}
if (key == "length") {
return(21);
}
if (key == "killlevel") {
return(2000);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
}
}
Symbol 3334 MovieClip [__Packages.rr.conf.train.ConfWagon2] Frame 0
class rr.conf.train.ConfWagon2
{
function ConfWagon2 () {
}
static function getValue(key) {
if (key == "name") {
return("size 2 wagon");
}
if (key == "availabilityLevel") {
return(1);
}
if (key == "price") {
return(950);
}
if (key == "spaces") {
return(2);
}
if (key == "weight") {
return(2500);
}
if (key == "maxload") {
return(3400);
}
if (key == "buildmargintop") {
return(9);
}
if (key == "buildmarginbottom") {
return(17);
}
if (key == "buildmarginleft") {
return(14);
}
if (key == "damageclip") {
return("damage_wagon2");
}
if (key == "destroydelay") {
return(900);
}
if (key == "length") {
return(37);
}
if (key == "killlevel") {
return(2100);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
}
}
Symbol 3335 MovieClip [__Packages.rr.conf.train.ConfWagon3] Frame 0
class rr.conf.train.ConfWagon3
{
function ConfWagon3 () {
}
static function getValue(key) {
if (key == "name") {
return("size 3 wagon");
}
if (key == "availabilityLevel") {
return(3);
}
if (key == "price") {
return(1500);
}
if (key == "spaces") {
return(3);
}
if (key == "weight") {
return(3500);
}
if (key == "maxload") {
return(5200);
}
if (key == "buildmargintop") {
return(9);
}
if (key == "buildmarginbottom") {
return(17);
}
if (key == "buildmarginleft") {
return(15);
}
if (key == "damageclip") {
return("damage_wagon3");
}
if (key == "destroydelay") {
return(900);
}
if (key == "length") {
return(52);
}
if (key == "killlevel") {
return(2200);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
}
}
Symbol 3336 MovieClip [__Packages.rr.conf.train.ConfWagon4] Frame 0
class rr.conf.train.ConfWagon4
{
function ConfWagon4 () {
}
static function getValue(key) {
if (key == "name") {
return("size 4 wagon");
}
if (key == "availabilityLevel") {
return(5);
}
if (key == "price") {
return(2500);
}
if (key == "spaces") {
return(4);
}
if (key == "weight") {
return(6000);
}
if (key == "maxload") {
return(9500);
}
if (key == "buildmargintop") {
return(11);
}
if (key == "buildmarginbottom") {
return(27);
}
if (key == "buildmarginleft") {
return(24);
}
if (key == "damageclip") {
return("damage_wagon4");
}
if (key == "destroydelay") {
return(900);
}
if (key == "length") {
return(72);
}
if (key == "height") {
return(16);
}
if (key == "killlevel") {
return(2400);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
}
}
Symbol 3337 MovieClip [__Packages.rr.conf.train.ConfOilTank] Frame 0
class rr.conf.train.ConfOilTank
{
function ConfOilTank () {
}
static function getValue(key) {
if (key == "name") {
return("oil tank");
}
if (key == "availabilityLevel") {
return(1);
}
if (key == "price") {
return(1800);
}
if (key == "spaces") {
return(2);
}
if (key == "weight") {
return(2200);
}
if (key == "buildmarginbottom") {
return(2);
}
if (key == "buildmarginleft") {
return(-2);
}
if (key == "feelerradius") {
return(20);
}
if (key == "damageclip") {
return("damage_oiltank");
}
if (key == "fuel") {
return(10000);
}
if (key == "killlevel") {
return(1800);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "destroydelay") {
return(1000);
}
}
}
Symbol 3338 MovieClip [__Packages.rr.conf.train.ConfColeCart] Frame 0
class rr.conf.train.ConfColeCart
{
function ConfColeCart () {
}
static function getValue(key) {
if (key == "name") {
return("coal cart");
}
if (key == "availabilityLevel") {
return(1);
}
if (key == "price") {
return(1600);
}
if (key == "spaces") {
return(2);
}
if (key == "weight") {
return(2300);
}
if (key == "buildmarginbottom") {
return(2);
}
if (key == "buildmarginleft") {
return(-2);
}
if (key == "feelerradius") {
return(20);
}
if (key == "damageclip") {
return("damage_colecart");
}
if (key == "fuel") {
return(10000);
}
if (key == "killlevel") {
return(1800);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "destroydelay") {
return(1000);
}
}
}
Symbol 3339 MovieClip [__Packages.rr.conf.train.ConfPowerGenerator] Frame 0
class rr.conf.train.ConfPowerGenerator
{
function ConfPowerGenerator () {
}
static function getValue(key) {
if (key == "name") {
return("powergenerator");
}
if (key == "availabilityLevel") {
return(1);
}
if (key == "price") {
return(2200);
}
if (key == "spaces") {
return(2);
}
if (key == "weight") {
return(2450);
}
if (key == "buildmarginbottom") {
return(2);
}
if (key == "buildmarginleft") {
return(-2);
}
if (key == "feelerradius") {
return(20);
}
if (key == "damageclip") {
return("damage_powergenerator");
}
if (key == "fuel") {
return(10000);
}
if (key == "killlevel") {
return(1800);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "destroydelay") {
return(1400);
}
}
}
Symbol 3340 MovieClip [__Packages.rr.conf.train.ConfAirCrane] Frame 0
class rr.conf.train.ConfAirCrane
{
function ConfAirCrane () {
}
static function getValue(key) {
if (key == "feelerradius") {
return(25);
}
if (key == "maxSpeed") {
return(5);
}
if (key == "minCurve") {
return(2);
}
if (key == "maxCurve") {
return(6);
}
if (key == "altitude") {
return(50);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "killlevel") {
return(80);
}
if (key == "sound") {
return("Heli 5.wav");
}
if (key == "gunsound") {
return("Shoot4_short.wav");
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
}
}
Symbol 3341 MovieClip [__Packages.rr.conf.train.ConfFuelTank] Frame 0
class rr.conf.train.ConfFuelTank
{
function ConfFuelTank () {
}
static function getValue(key) {
if (key == "name") {
return("fuel tank");
}
if (key == "price") {
return(0);
}
if (key == "weight") {
return(2200);
}
if (key == "buildmarginbottom") {
return(16);
}
if (key == "buildmarginleft") {
return(4);
}
if (key == "damageclip") {
return("damage_fueltank");
}
if (key == "destroydelay") {
return(1000);
}
if (key == "length") {
return(41);
}
if (key == "killlevel") {
return(2000);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
}
}
Symbol 3342 MovieClip [__Packages.rr.conf.train.ConfPassenger] Frame 0
class rr.conf.train.ConfPassenger
{
function ConfPassenger () {
}
static function getValue(key) {
if (key == "name") {
return("passenger wagon");
}
if (key == "price") {
return(0);
}
if (key == "weight") {
return(2000);
}
if (key == "buildmarginbottom") {
return(36);
}
if (key == "buildmarginleft") {
return(26);
}
if (key == "damageclip") {
return("damage_passenger");
}
if (key == "destroydelay") {
return(1200);
}
if (key == "length") {
return(54);
}
if (key == "killlevel") {
return(2200);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
}
}
Symbol 3343 MovieClip [__Packages.rr.conf.train.ConfPassengerArmored] Frame 0
class rr.conf.train.ConfPassengerArmored
{
function ConfPassengerArmored () {
}
static function getValue(key) {
if (key == "name") {
return("armored passenger wagon");
}
if (key == "price") {
return(0);
}
if (key == "weight") {
return(3500);
}
if (key == "buildmarginbottom") {
return(36);
}
if (key == "buildmarginleft") {
return(22);
}
if (key == "damageclip") {
return("damage_passenger");
}
if (key == "destroydelay") {
return(1500);
}
if (key == "length") {
return(54);
}
if (key == "killlevel") {
return(3000);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
}
}
Symbol 3344 MovieClip [__Packages.rr.conf.train.ConfTankTrailer] Frame 0
class rr.conf.train.ConfTankTrailer
{
function ConfTankTrailer () {
}
static function getValue(key) {
if (key == "name") {
return("tank trailer");
}
if (key == "price") {
return(0);
}
if (key == "weight") {
return(2500);
}
if (key == "buildmarginbottom") {
return(38);
}
if (key == "buildmarginleft") {
return(30);
}
if (key == "damageclip") {
return("damage_tanktrailer");
}
if (key == "destroydelay") {
return(1000);
}
if (key == "length") {
return(74);
}
if (key == "killlevel") {
return(2400);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
}
}
Symbol 3345 MovieClip [__Packages.rr.conf.train.ConfABomb] Frame 0
class rr.conf.train.ConfABomb
{
function ConfABomb () {
}
static function getValue(key) {
if (key == "name") {
return("atomic bomb");
}
if (key == "price") {
return(0);
}
if (key == "weight") {
return(2000);
}
if (key == "buildmarginbottom") {
return(13);
}
if (key == "buildmarginleft") {
return(4);
}
if (key == "damageclip") {
return("damage_Abomb");
}
if (key == "destroydelay") {
return(1500);
}
if (key == "length") {
return(37);
}
if (key == "killlevel") {
return(2500);
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
}
}
Symbol 3346 MovieClip [__Packages.rr.conf.train.ConfCompound] Frame 0
class rr.conf.train.ConfCompound
{
function ConfCompound () {
}
static function getValue(key) {
}
}
Symbol 3347 MovieClip [__Packages.rr.conf.enemy.ConfBasilisk] Frame 0
class rr.conf.enemy.ConfBasilisk
{
function ConfBasilisk () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("bl");
}
if (key == "displayname") {
return("Basilisk");
}
if (key == "detectionDistance") {
return(500);
}
if (key == "shootingDistance") {
return(400);
}
if (key == "shootingInterval") {
return(5000);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "killlevel") {
return(550);
}
if (key == "destroydelay") {
return(1000);
}
if (key == "gunsound") {
return("GunCannon3_short.wav");
}
if (key == "explodesound") {
return("Explosion09_short.wav");
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(1000);
}
if (key == "ammoAccuracy") {
return(70);
}
if (key == "ammodamage") {
return(40);
}
if (key == "explosionradius") {
return(150);
}
if (key == "ammosound") {
return("Explosion08_short.wav");
}
}
}
Symbol 3348 MovieClip [__Packages.rr.conf.enemy.ConfPotTank] Frame 0
class rr.conf.enemy.ConfPotTank
{
function ConfPotTank () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("pt");
}
if (key == "displayname") {
return("Pot Tank");
}
if (key == "maxSpeed") {
return(2);
}
if (key == "curve") {
return(4);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "detectionDistance") {
return(400);
}
if (key == "shootingDistance") {
return(320);
}
if (key == "shootingInterval") {
return(2000);
}
if (key == "followDistance") {
return(50);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "killlevel") {
return(350);
}
if (key == "destroydelay") {
return(1300);
}
if (key == "sound") {
return("tank2.wav");
}
if (key == "gunsound") {
return("GunCannon3_short.wav");
}
if (key == "explodesound") {
return("Explosion07_short.wav");
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(900);
}
if (key == "ammoAccuracy") {
return(50);
}
if (key == "ammodamage") {
return(40);
}
if (key == "explosionradius") {
return(120);
}
if (key == "ammosound") {
return("Explosion11min_short.wav");
}
}
}
Symbol 3349 MovieClip [__Packages.rr.conf.enemy.ConfAbrahams] Frame 0
class rr.conf.enemy.ConfAbrahams
{
function ConfAbrahams () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("ah");
}
if (key == "displayname") {
return("Abrahams");
}
if (key == "maxSpeed") {
return(2);
}
if (key == "curve") {
return(4);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "detectionDistance") {
return(450);
}
if (key == "shootingDistance") {
return(400);
}
if (key == "shootingInterval") {
return(2000);
}
if (key == "followDistance") {
return(50);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "killlevel") {
return(450);
}
if (key == "destroydelay") {
return(1200);
}
if (key == "sound") {
return("tank4.wav");
}
if (key == "gunsound") {
return("GunCannon2_short.wav");
}
if (key == "explodesound") {
return("Explosion09_short.wav");
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(1000);
}
if (key == "ammoAccuracy") {
return(60);
}
if (key == "ammodamage") {
return(50);
}
if (key == "explosionradius") {
return(110);
}
if (key == "ammosound") {
return("Explosion08min_short.wav");
}
}
}
Symbol 3350 MovieClip [__Packages.rr.conf.enemy.ConfElephant] Frame 0
class rr.conf.enemy.ConfElephant
{
function ConfElephant () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("el");
}
if (key == "displayname") {
return("Elephant");
}
if (key == "maxSpeed") {
return(2);
}
if (key == "curve") {
return(4);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "detectionDistance") {
return(400);
}
if (key == "shootingDistance") {
return(320);
}
if (key == "shootingInterval") {
return(2000);
}
if (key == "followDistance") {
return(50);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "killlevel") {
return(300);
}
if (key == "destroydelay") {
return(1500);
}
if (key == "sound") {
return("tank3.wav");
}
if (key == "gunsound") {
return("GunCannon1_short.wav");
}
if (key == "explodesound") {
return("Explosion09_short.wav");
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(800);
}
if (key == "ammoAccuracy") {
return(70);
}
if (key == "ammodamage") {
return(35);
}
if (key == "explosionradius") {
return(50);
}
if (key == "ammosound") {
return("Explosion05min_short.wav");
}
}
}
Symbol 3351 MovieClip [__Packages.rr.conf.enemy.ConfOldJeep] Frame 0
class rr.conf.enemy.ConfOldJeep
{
function ConfOldJeep () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("oj");
}
if (key == "displayname") {
return("Old Jeep");
}
if (key == "maxSpeed") {
return(2);
}
if (key == "curve") {
return(4);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "detectionDistance") {
return(300);
}
if (key == "shootingDistance") {
return(250);
}
if (key == "shootingInterval") {
return(1000);
}
if (key == "followDistance") {
return(50);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "killlevel") {
return(100);
}
if (key == "destroydelay") {
return(1000);
}
if (key == "sound") {
return("Jeep.wav");
}
if (key == "gunsound") {
return("GunCannon7_short.wav");
}
if (key == "explodesound") {
return("Explosion11_short.wav");
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(800);
}
if (key == "ammoAccuracy") {
return(40);
}
if (key == "ammodamage") {
return(15);
}
if (key == "explosionradius") {
return(50);
}
if (key == "ammosound") {
return("Explosion05min_short.wav");
}
}
}
Symbol 3352 MovieClip [__Packages.rr.conf.enemy.ConfGunTruck] Frame 0
class rr.conf.enemy.ConfGunTruck
{
function ConfGunTruck () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("gt");
}
if (key == "displayname") {
return("Gun Truck");
}
if (key == "maxSpeed") {
return(2);
}
if (key == "curve") {
return(4);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "detectionDistance") {
return(350);
}
if (key == "shootingDistance") {
return(280);
}
if (key == "shootingInterval") {
return(3000);
}
if (key == "followDistance") {
return(50);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "killlevel") {
return(225);
}
if (key == "destroydelay") {
return(1300);
}
if (key == "sound") {
return("Guntruck.wav");
}
if (key == "gunsound") {
return("GunCannon3_short.wav");
}
if (key == "explodesound") {
return("Explosion06_short.wav");
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(800);
}
if (key == "ammoAccuracy") {
return(50);
}
if (key == "ammodamage") {
return(25);
}
if (key == "explosionradius") {
return(40);
}
if (key == "ammosound") {
return("Explosion11min_short.wav");
}
}
}
Symbol 3353 MovieClip [__Packages.rr.conf.enemy.ConfArmoredJeep] Frame 0
class rr.conf.enemy.ConfArmoredJeep
{
function ConfArmoredJeep () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("aj");
}
if (key == "displayname") {
return("Armored Jeep");
}
if (key == "maxSpeed") {
return(2);
}
if (key == "curve") {
return(4);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "detectionDistance") {
return(300);
}
if (key == "shootingDistance") {
return(250);
}
if (key == "shootingInterval") {
return(2000);
}
if (key == "followDistance") {
return(50);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "killlevel") {
return(175);
}
if (key == "destroydelay") {
return(800);
}
if (key == "sound") {
return("Jeep2.wav");
}
if (key == "gunsound") {
return("GunCannon7_short.wav");
}
if (key == "explodesound") {
return("Explosion11_short.wav");
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(800);
}
if (key == "ammoAccuracy") {
return(40);
}
if (key == "ammodamage") {
return(20);
}
if (key == "explosionradius") {
return(50);
}
if (key == "ammosound") {
return("Explosion05min_short.wav");
}
}
}
Symbol 3354 MovieClip [__Packages.rr.conf.enemy.ConfPanther] Frame 0
class rr.conf.enemy.ConfPanther
{
function ConfPanther () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("pn");
}
if (key == "displayname") {
return("panther");
}
if (key == "maxSpeed") {
return(2);
}
if (key == "curve") {
return(4);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "detectionDistance") {
return(420);
}
if (key == "shootingDistance") {
return(320);
}
if (key == "shootingInterval") {
return(2000);
}
if (key == "followDistance") {
return(50);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "killlevel") {
return(350);
}
if (key == "destroydelay") {
return(1500);
}
if (key == "sound") {
return("tank3.wav");
}
if (key == "gunsound") {
return("GunCannon1_short.wav");
}
if (key == "explodesound") {
return("Explosion09_short.wav");
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(900);
}
if (key == "ammoAccuracy") {
return(50);
}
if (key == "ammodamage") {
return(40);
}
if (key == "explosionradius") {
return(120);
}
if (key == "ammosound") {
return("Explosion05min_short.wav");
}
}
}
Symbol 3355 MovieClip [__Packages.rr.conf.enemy.ConfBullDozer] Frame 0
class rr.conf.enemy.ConfBullDozer
{
function ConfBullDozer () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("bd");
}
if (key == "displayname") {
return("Bulldozer");
}
if (key == "feelerradius") {
return(30);
}
if (key == "maxSpeed") {
return(1);
}
if (key == "acceleration") {
return(0.02);
}
if (key == "detectionDistance") {
return(450);
}
if (key == "curve") {
return(4);
}
if (key == "killlevel") {
return(300);
}
if (key == "destroydelay") {
return(800);
}
if (key == "sound") {
return("Bulldozer.wav");
}
if (key == "explodesound") {
return("Explosion10_short.wav");
}
}
}
Symbol 3356 MovieClip [__Packages.rr.conf.enemy.ConfBunker] Frame 0
class rr.conf.enemy.ConfBunker
{
function ConfBunker () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("bk");
}
if (key == "displayname") {
return("Bunker");
}
if (key == "detectionDistance") {
return(500);
}
if (key == "shootingDistance") {
return(480);
}
if (key == "shootingInterval") {
return(3000);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "killlevel") {
return(450);
}
if (key == "destroydelay") {
return(1100);
}
if (key == "gunsound") {
return("GunCannon3_short.wav");
}
if (key == "explodesound") {
return("Explosion09_short.wav");
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(1000);
}
if (key == "ammoAccuracy") {
return(60);
}
if (key == "ammodamage") {
return(25);
}
if (key == "explosionradius") {
return(100);
}
if (key == "ammosound") {
return("Explosion08min_short.wav");
}
}
}
Symbol 3357 MovieClip [__Packages.rr.conf.enemy.ConfGatlingSingle] Frame 0
class rr.conf.enemy.ConfGatlingSingle
{
function ConfGatlingSingle () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("gs");
}
if (key == "displayname") {
return("Gatling Single");
}
if (key == "detectionDistance") {
return(380);
}
if (key == "shootingDistance") {
return(300);
}
if (key == "shootingInterval") {
return(1000);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "killlevel") {
return(350);
}
if (key == "destroydelay") {
return(900);
}
if (key == "gunsound") {
return("GunCannon7_short.wav");
}
if (key == "explodesound") {
return("Explosion09_short.wav");
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(1300);
}
if (key == "ammoAccuracy") {
return(50);
}
if (key == "ammodamage") {
return(20);
}
if (key == "explosionradius") {
return(60);
}
if (key == "ammosound") {
return("Explosion11min_short.wav");
}
}
}
Symbol 3358 MovieClip [__Packages.rr.conf.enemy.ConfGatlingDouble] Frame 0
class rr.conf.enemy.ConfGatlingDouble
{
function ConfGatlingDouble () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("gd");
}
if (key == "displayname") {
return("Gatling Double");
}
if (key == "detectionDistance") {
return(400);
}
if (key == "shootingDistance") {
return(300);
}
if (key == "shootingInterval") {
return(800);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "killlevel") {
return(400);
}
if (key == "destroydelay") {
return(900);
}
if (key == "gunsound") {
return("GunCannon7_short.wav");
}
if (key == "explodesound") {
return("Explosion09_short.wav");
}
if (key == "ammospeed") {
return(20);
}
if (key == "ammoduration") {
return(1300);
}
if (key == "ammoAccuracy") {
return(50);
}
if (key == "ammodamage") {
return(25);
}
if (key == "explosionradius") {
return(70);
}
if (key == "ammosound") {
return("Explosion11min_short.wav");
}
}
}
Symbol 3359 MovieClip [__Packages.rr.conf.enemy.ConfRocketeer] Frame 0
class rr.conf.enemy.ConfRocketeer
{
function ConfRocketeer () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("rt");
}
if (key == "displayname") {
return("rocketeer");
}
if (key == "maxSpeed") {
return(2);
}
if (key == "curve") {
return(4);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "detectionDistance") {
return(400);
}
if (key == "shootingDistance") {
return(600);
}
if (key == "shootingInterval") {
return(10000);
}
if (key == "rotationSpeed") {
return(10);
}
if (key == "killlevel") {
return(350);
}
if (key == "destroydelay") {
return(540);
}
if (key == "sound") {
return("tank2.wav");
}
if (key == "gunsound") {
return("GunCannon3_short.wav");
}
if (key == "explodesound") {
return("Explosion09_short.wav");
}
if (key == "ammorange") {
return(2000);
}
if (key == "ammominCurve") {
return(2);
}
if (key == "ammomaxCurve") {
return(6);
}
if (key == "ammomaxSpeed") {
return(20);
}
if (key == "ammoacceleration") {
return(0.3);
}
if (key == "ammoduration") {
return(1300);
}
if (key == "ammostartsound") {
return(["Missile firing3_short.wav"]);
}
if (key == "ammosound") {
return(["Missile2_loop.wav"]);
}
if (key == "ammoexplodesound") {
return(["Explosion07_short.wav"]);
}
if (key == "ammoexplosiondamage") {
return(40);
}
if (key == "ammoexplosionradius") {
return(150);
}
}
}
Symbol 3360 MovieClip [__Packages.rr.conf.enemy.ConfRocketBase] Frame 0
class rr.conf.enemy.ConfRocketBase
{
function ConfRocketBase () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("rb");
}
if (key == "displayname") {
return("Rocketbase");
}
if (key == "launchtime") {
return(20000);
}
if (key == "feelerradius") {
return(60);
}
if (key == "startsound") {
return("Harpoon Base.wav");
}
if (key == "killlevel") {
return(1000);
}
if (key == "destroydelay") {
return(1100);
}
if (key == "explodesound") {
return("ExplosionBig03_short.wav");
}
}
}
Symbol 3361 MovieClip [__Packages.rr.conf.enemy.ConfRocket] Frame 0
class rr.conf.enemy.ConfRocket
{
function ConfRocket () {
}
static function getValue(key) {
if (key == "range") {
return(5000);
}
if (key == "altitude") {
return(100);
}
if (key == "curve") {
return(4);
}
if (key == "maxSpeed") {
return(20);
}
if (key == "acceleration") {
return(0.3);
}
if (key == "ammoduration") {
return(1040);
}
if (key == "startsound") {
return(["Missile firing2_short.wav"]);
}
if (key == "sound") {
return(["Missile1_loop.wav"]);
}
if (key == "explodesound") {
return(["Explosion07_short.wav"]);
}
if (key == "explosiondamage") {
return(40);
}
if (key == "explosionradius") {
return(150);
}
}
}
Symbol 3362 MovieClip [__Packages.rr.conf.enemy.ConfAirField] Frame 0
class rr.conf.enemy.ConfAirField
{
function ConfAirField () {
}
static function getValue(key) {
if (key == "unittype") {
return("GroundUnit");
}
if (key == "confcode") {
return("af");
}
if (key == "displayname") {
return("Airfield");
}
if (key == "detectionRanges") {
return([{d:6000, perc:20}, {d:1000, perc:40}, {d:500, perc:40}]);
}
if (key == "launchtime") {
return(15000);
}
if (key == "feelerradius") {
return(100);
}
if (key == "startsound") {
return("Airport.wav");
}
if (key == "killlevel") {
return(900);
}
if (key == "destroydelay") {
return(1100);
}
if (key == "explodesound") {
return("ExplosionBig02_short.wav");
}
}
}
Symbol 3363 MovieClip [__Packages.rr.conf.enemy.ConfFockeWolf] Frame 0
class rr.conf.enemy.ConfFockeWolf
{
function ConfFockeWolf () {
}
static function getValue(key) {
if (key == "unittype") {
return("AirUnit");
}
if (key == "confcode") {
return("fw");
}
if (key == "displayname") {
return("FockeWolf");
}
if (key == "feelerradius") {
return(25);
}
if (key == "maxSpeed") {
return(5);
}
if (key == "minCurve") {
return(1);
}
if (key == "maxCurve") {
return(4);
}
if (key == "altitude") {
return(50);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "launchDistance") {
return(500);
}
if (key == "detectionDistance") {
return(400);
}
if (key == "shootingDistance") {
return(300);
}
if (key == "shootingAngle") {
return(20);
}
if (key == "shootingInterval") {
return(100);
}
if (key == "killlevel") {
return(400);
}
if (key == "destroydelay") {
return(540);
}
if (key == "sound") {
return("Focke wolf.wav");
}
if (key == "gunsound") {
return("GunCannon2_short.wav");
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "ammospeed") {
return(400);
}
if (key == "ammoduration") {
return(250);
}
if (key == "ammoAccuracy") {
return(0);
}
if (key == "ammodamage") {
return(30);
}
if (key == "ammosound") {
return("GunCannon2_short.wav");
}
}
}
Symbol 3364 MovieClip [__Packages.rr.conf.enemy.ConfMesserSchmidt] Frame 0
class rr.conf.enemy.ConfMesserSchmidt
{
function ConfMesserSchmidt () {
}
static function getValue(key) {
if (key == "unittype") {
return("AirUnit");
}
if (key == "confcode") {
return("ms");
}
if (key == "displayname") {
return("MesserSchmidt");
}
if (key == "feelerradius") {
return(25);
}
if (key == "maxSpeed") {
return(5);
}
if (key == "minCurve") {
return(1);
}
if (key == "maxCurve") {
return(4);
}
if (key == "altitude") {
return(50);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "launchDistance") {
return(500);
}
if (key == "detectionDistance") {
return(400);
}
if (key == "shootingDistance") {
return(300);
}
if (key == "shootingAngle") {
return(20);
}
if (key == "shootingInterval") {
return(100);
}
if (key == "killlevel") {
return(500);
}
if (key == "destroydelay") {
return(1100);
}
if (key == "sound") {
return("MesserSchmidt.wav");
}
if (key == "gunsound") {
return("GunCannon2_short.wav");
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "ammospeed") {
return(400);
}
if (key == "ammoduration") {
return(250);
}
if (key == "ammoAccuracy") {
return(0);
}
if (key == "ammodamage") {
return(40);
}
if (key == "ammosound") {
return("GunCannon2_short.wav");
}
}
}
Symbol 3365 MovieClip [__Packages.rr.conf.enemy.ConfWartHog] Frame 0
class rr.conf.enemy.ConfWartHog
{
function ConfWartHog () {
}
static function getValue(key) {
if (key == "unittype") {
return("AirUnit");
}
if (key == "confcode") {
return("wh");
}
if (key == "displayname") {
return("WartHog");
}
if (key == "feelerradius") {
return(25);
}
if (key == "maxSpeed") {
return(5);
}
if (key == "minCurve") {
return(1);
}
if (key == "maxCurve") {
return(4);
}
if (key == "altitude") {
return(50);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "launchDistance") {
return(500);
}
if (key == "detectionDistance") {
return(400);
}
if (key == "shootingDistance") {
return(300);
}
if (key == "shootingAngle") {
return(20);
}
if (key == "shootingInterval") {
return(100);
}
if (key == "killlevel") {
return(700);
}
if (key == "destroydelay") {
return(540);
}
if (key == "sound") {
return("Warthog.wav");
}
if (key == "gunsound") {
return("GunCannon11_short.wav");
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "ammospeed") {
return(400);
}
if (key == "ammoduration") {
return(250);
}
if (key == "ammoAccuracy") {
return(0);
}
if (key == "ammodamage") {
return(50);
}
if (key == "ammosound") {
return("GunCannon11_short.wav");
}
}
}
Symbol 3366 MovieClip [__Packages.rr.conf.enemy.ConfC47] Frame 0
class rr.conf.enemy.ConfC47
{
function ConfC47 () {
}
static function getValue(key) {
if (key == "unittype") {
return("AirUnit");
}
if (key == "confcode") {
return("c47");
}
if (key == "displayname") {
return("C47");
}
if (key == "feelerradius") {
return(65);
}
if (key == "maxSpeed") {
return(8);
}
if (key == "minCurve") {
return(1);
}
if (key == "maxCurve") {
return(4);
}
if (key == "altitude") {
return(150);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "launchDistance") {
return(600);
}
if (key == "detectionDistance") {
return(1200);
}
if (key == "shootingDistance") {
return(100);
}
if (key == "shootingAngle") {
return(20);
}
if (key == "shootingInterval") {
return(80);
}
if (key == "killlevel") {
return(700);
}
if (key == "destroydelay") {
return(1000);
}
if (key == "sound") {
return("c47.wav");
}
if (key == "gunsound") {
return("Bombs_falling.wav");
}
if (key == "explodesound") {
return("Explosion10_short.wav");
}
if (key == "ammodelay") {
return(1000);
}
if (key == "ammoduration") {
return(1330);
}
if (key == "ammoAccuracy") {
return(0);
}
if (key == "ammodamage") {
return(30);
}
if (key == "ammosound") {
return("Explosion08_short.wav");
}
}
}
Symbol 3367 MovieClip [__Packages.rr.conf.enemy.ConfB2] Frame 0
class rr.conf.enemy.ConfB2
{
function ConfB2 () {
}
static function getValue(key) {
if (key == "unittype") {
return("AirUnit");
}
if (key == "confcode") {
return("b2");
}
if (key == "displayname") {
return("B2");
}
if (key == "feelerradius") {
return(65);
}
if (key == "maxSpeed") {
return(8);
}
if (key == "minCurve") {
return(1);
}
if (key == "maxCurve") {
return(4);
}
if (key == "altitude") {
return(150);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "launchDistance") {
return(600);
}
if (key == "detectionDistance") {
return(1200);
}
if (key == "shootingDistance") {
return(100);
}
if (key == "shootingAngle") {
return(20);
}
if (key == "shootingInterval") {
return(80);
}
if (key == "killlevel") {
return(800);
}
if (key == "destroydelay") {
return(1000);
}
if (key == "sound") {
return("b2.wav");
}
if (key == "gunsound") {
return("Bombs_falling.wav");
}
if (key == "explodesound") {
return("Explosion10_short.wav");
}
if (key == "ammodelay") {
return(1000);
}
if (key == "ammoduration") {
return(1400);
}
if (key == "ammoAccuracy") {
return(0);
}
if (key == "ammodamage") {
return(25);
}
if (key == "ammosound") {
return("Explosion08_short.wav");
}
}
}
Symbol 3368 MovieClip [__Packages.rr.conf.enemy.ConfBellHuey] Frame 0
class rr.conf.enemy.ConfBellHuey
{
function ConfBellHuey () {
}
static function getValue(key) {
if (key == "unittype") {
return("AirUnit");
}
if (key == "confcode") {
return("bh");
}
if (key == "displayname") {
return("Bell Huey");
}
if (key == "maxSpeed") {
return(3);
}
if (key == "minCurve") {
return(2);
}
if (key == "maxCurve") {
return(6);
}
if (key == "altitude") {
return(25);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "shootingDistance") {
return(300);
}
if (key == "hoverDistance") {
return(200);
}
if (key == "shootingInterval") {
return(4000);
}
if (key == "killlevel") {
return(350);
}
if (key == "destroydelay") {
return(1200);
}
if (key == "sound") {
return("Heli 2.wav");
}
if (key == "gunsound") {
return("Shoot4_short.wav");
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "ammorange") {
return(1000);
}
if (key == "ammodetectionDistance") {
return(600);
}
if (key == "ammominCurve") {
return(2);
}
if (key == "ammomaxCurve") {
return(6);
}
if (key == "ammomaxSpeed") {
return(20);
}
if (key == "ammoacceleration") {
return(0.3);
}
if (key == "ammoduration") {
return(1140);
}
if (key == "ammostartsound") {
return(["Missile firing3_short.wav"]);
}
if (key == "ammosound") {
return(["Missile3_loop.wav"]);
}
if (key == "ammoexplodesound") {
return(["Explosion07_short.wav"]);
}
if (key == "ammoexplosiondamage") {
return(40);
}
if (key == "ammoexplosionradius") {
return(150);
}
}
}
Symbol 3369 MovieClip [__Packages.rr.conf.enemy.ConfApache] Frame 0
class rr.conf.enemy.ConfApache
{
function ConfApache () {
}
static function getValue(key) {
if (key == "unittype") {
return("AirUnit");
}
if (key == "confcode") {
return("ap");
}
if (key == "displayname") {
return("apache");
}
if (key == "maxSpeed") {
return(3);
}
if (key == "minCurve") {
return(2);
}
if (key == "maxCurve") {
return(6);
}
if (key == "altitude") {
return(25);
}
if (key == "acceleration") {
return(0.1);
}
if (key == "shootingDistance") {
return(400);
}
if (key == "hoverDistance") {
return(350);
}
if (key == "shootingInterval") {
return(5000);
}
if (key == "killlevel") {
return(500);
}
if (key == "destroydelay") {
return(1200);
}
if (key == "sound") {
return("Heli 4.wav");
}
if (key == "gunsound") {
return("Shoot4_short.wav");
}
if (key == "explodesound") {
return("Explosion08_short.wav");
}
if (key == "ammorange") {
return(2000);
}
if (key == "ammodetectionDistance") {
return(600);
}
if (key == "ammominCurve") {
return(2);
}
if (key == "ammomaxCurve") {
return(6);
}
if (key == "ammomaxSpeed") {
return(20);
}
if (key == "ammoacceleration") {
return(0.3);
}
if (key == "ammoduration") {
return(1400);
}
if (key == "ammostartsound") {
return(["Missile firing1_short.wav"]);
}
if (key == "ammosound") {
return(["Missile4_loop.wav"]);
}
if (key == "ammoexplodesound") {
return(["Explosion07_short.wav"]);
}
if (key == "ammoexplosiondamage") {
return(40);
}
if (key == "ammoexplosionradius") {
return(150);
}
}
}
Symbol 3370 MovieClip [__Packages.rr.utils.Delegate] Frame 0
class rr.utils.Delegate extends Object
{
var func;
function Delegate (f) {
super();
func = f;
}
static function create(obj, func) {
var _local2 = function () {
var _local2 = arguments.callee.target;
var _local3 = arguments.callee.func;
arguments=arguments.callee.arguments;//parameter overwritten
arguments.callee.arguments;
return(_local3.apply(_local2, arguments));
};
_local2.target = obj;
_local2.func = func;
arguments.splice(0, 2);
_local2.arguments = arguments;
return(_local2);
}
function createDelegate(obj) {
return(create(obj, func));
}
static function callDelayed(obj, func, ival) {
arguments.splice(0, 3);
var _local3 = new Object();
_local3.f = function () {
clearInterval(this.i);
var _local3 = arguments.callee.target;
var _local4 = arguments.callee.func;
arguments=arguments.callee.arguments;//parameter overwritten
arguments.callee.arguments;
return(this.func.apply(this.target, this.arguments));
};
_local3.target = obj;
_local3.func = func;
_local3.arguments = arguments;
_local3.i = setInterval(_local3, "f", ival);
}
}
Symbol 3371 MovieClip [__Packages.rr.control.TabCardLocomotive] Frame 0
class rr.control.TabCardLocomotive extends rr.control.TabCard
{
var name, __get__linkId, price, maxload, maxspeed, armor, weapon, fueltype, price_txt, maxload_txt, maxspeed_txt, enabled, processEnabled;
function TabCardLocomotive () {
super();
}
function init() {
super.init();
var _local3 = new TextFormat();
_local3.font = "myAlternateGothic2 BT";
_local3.size = 12;
_local3.letterSpacing = 0.4;
name = rr.conf.Config.getObjectValue(__get__linkId(), "name");
price = rr.conf.Config.getObjectValue(__get__linkId(), "price");
maxload = rr.conf.Config.getObjectValue(__get__linkId(), "maxload");
maxspeed = rr.conf.Config.getObjectValue(__get__linkId(), "maxspeed");
armor = rr.conf.Config.getObjectValue(__get__linkId(), "armor");
weapon = rr.conf.Config.getObjectValue(__get__linkId(), "weapon");
fueltype = rr.conf.Config.getObjectValue(__get__linkId(), "fueltype");
price_txt.autoSize = "right";
price_txt.text = price;
maxload_txt.autoSize = true;
maxload_txt.text = "PULLS " + (maxload / 1000);
maxload_txt.text = maxload_txt.text + ((maxload >= 2000) ? " TONS" : " TON");
maxspeed_txt.autoSize = true;
maxspeed_txt.text = ("MAX SPEED " + maxspeed) + " KM/H";
price_txt.setTextFormat(_local3);
maxload_txt.setTextFormat(_local3);
maxspeed_txt.setTextFormat(_local3);
}
function checkEnabled() {
enabled = true;
super.checkEnabled();
if (maxload < _global.trainbuild.totalLoad) {
enabled = false;
} else {
var _local4 = (_global.trainbuild.loc ? (rr.conf.Config.getObjectValue(_global.trainbuild.loc.linkId, "price")) : 0);
if (price > (_global.player.cash + _local4)) {
enabled = false;
}
}
processEnabled();
}
}
Symbol 3372 MovieClip [__Packages.rr.control.TabCardWagon] Frame 0
class rr.control.TabCardWagon extends rr.control.TabCard
{
var name, __get__linkId, price, weight, maxload, spaces, price_txt, weight_txt, maxload_txt, enabled, processEnabled;
function TabCardWagon () {
super();
}
function init() {
var _local3 = new TextFormat();
_local3.font = "myAlternateGothic2 BT";
_local3.size = 12;
_local3.letterSpacing = 0.4;
name = rr.conf.Config.getObjectValue(__get__linkId(), "name");
price = rr.conf.Config.getObjectValue(__get__linkId(), "price");
weight = rr.conf.Config.getObjectValue(__get__linkId(), "weight");
maxload = rr.conf.Config.getObjectValue(__get__linkId(), "maxload");
spaces = rr.conf.Config.getObjectValue(__get__linkId(), "spaces");
if (__get__linkId() == "HugeCannon") {
spaces = rr.conf.Config.getObjectValue(__get__linkId(), "wagonspaces");
}
price_txt.autoSize = "right";
price_txt.text = price;
weight_txt.autoSize = true;
weight_txt.text = "WEIGHT " + (weight / 1000);
weight_txt.text = weight_txt.text + ((weight >= 2000) ? " TONS" : " TON");
maxload_txt.autoSize = true;
maxload_txt.text = "CARRIES " + (maxload / 1000);
maxload_txt.text = maxload_txt.text + ((maxload >= 2000) ? " TONS" : " TON");
price_txt.setTextFormat(_local3);
weight_txt.setTextFormat(_local3);
maxload_txt.setTextFormat(_local3);
super.init();
}
function checkEnabled() {
enabled = true;
super.checkEnabled();
if ((_global.trainbuild.totalLoad + weight) > _global.trainbuild.maxLoad) {
enabled = false;
} else if (price > _global.player.cash) {
enabled = false;
} else if (_global.buildmenu.mode == "ingame") {
if (_global.trainbuild.ingameadded != undefined) {
enabled = false;
}
}
processEnabled();
}
}
Symbol 3373 MovieClip [__Packages.rr.control.SpeedLight] Frame 0
class rr.control.SpeedLight extends rr.BaseClip
{
var speedFactor, selected, edge_mc, edgecolor, col, _speedref, tarspeed, defcolor, gotoAndStop, displayspeed, stepmin, stepmax, speed_txt, isBlinking, gotoAndPlay;
function SpeedLight () {
super();
}
function init() {
speedFactor = _global.control.speedFactor;
selected = false;
edge_mc._visible = false;
edgecolor = 13103871 /* 0xC7F2FF */;
col = new Color(edge_mc);
col.setRGB(edgecolor);
if (_speedref == 0) {
tarspeed = 0;
defcolor = 15541546 /* 0xED252A */;
gotoAndStop("on");
_global.control.selectLight(_speedref);
} else {
tarspeed = ((_speedref < 0) ? ((((-_global.loc.speedmin) / speedFactor) * _speedref) / 3) : (((_global.loc.speedmax / speedFactor) * _speedref) / 6));
gotoAndStop("off");
}
defcolor = ((tarspeed == 0) ? 15541546 : (((tarspeed < 0) ? 16763904 : 52224)));
displayspeed = Math.round(tarspeed * speedFactor);
stepmin = (-_global.loc.speedmin) / 150;
stepmax = _global.loc.speedmax / 300;
var _local3 = new TextFormat();
_local3.bold = true;
_local3.font = "myAlternateGothic2 BT";
_local3.size = 13;
_local3.align = "center";
speed_txt.setNewTextFormat(_local3);
speed_txt.embedFonts = true;
speed_txt.text = displayspeed;
_global.loc.addEventListener("onLocAccel", this);
}
function get speedref() {
return(_speedref);
}
function set speedref(value) {
_speedref = value;
//return(speedref);
}
function select() {
selected = true;
_global.loc.setTargetSpeed(tarspeed);
edgecolor = defcolor;
col.setRGB(edgecolor);
edge_mc._visible = true;
Key.addListener(this);
}
function deselect() {
selected = false;
edgecolor = 13103871 /* 0xC7F2FF */;
col.setRGB(edgecolor);
edge_mc._visible = false;
Key.removeListener(this);
}
function onRollOver() {
if (selected) {
return(undefined);
}
edge_mc._visible = true;
}
function onRollOut() {
if (selected) {
return(undefined);
}
edge_mc._visible = false;
}
function onPress() {
if (selected) {
return(undefined);
}
_global.control.selectLight(_speedref);
}
function onKeyUp() {
if (!selected) {
return(undefined);
}
switch (Key.getCode()) {
case 37 :
if (_speedref > -3) {
_global.control.selectLight(_speedref - 1);
}
break;
case 39 :
if (_speedref >= 6) {
break;
}
_global.control.selectLight(_speedref + 1);
}
}
function onLocAccel() {
var _local3 = ((_global.loc.speed < 0) ? (stepmin) : (stepmax));
if (tarspeed < 0) {
if (_global.loc.speed >= 0) {
gotoAndStop("off");
isBlinking = false;
return(undefined);
}
} else if (tarspeed > 0) {
if (_global.loc.speed <= 0) {
gotoAndStop("off");
isBlinking = false;
return(undefined);
}
}
if (_global.loc.speed == tarspeed) {
gotoAndStop("on");
isBlinking = false;
} else if ((_global.loc.speed > (tarspeed - (_local3 / 2))) && (_global.loc.speed < (tarspeed + (_local3 / 2)))) {
if (!isBlinking) {
gotoAndPlay("blink");
isBlinking = true;
}
} else {
gotoAndStop("off");
isBlinking = false;
}
}
}
Symbol 3374 MovieClip [__Packages.rr.control.TabCardWeapon] Frame 0
class rr.control.TabCardWeapon extends rr.control.TabCard
{
var name, __get__linkId, price, weight, barrel, power, spaces, price_txt, weight_txt, _parent, enabled, processEnabled;
function TabCardWeapon () {
super();
}
function init() {
var _local4 = new TextFormat();
_local4.font = "myAlternateGothic2 BT";
_local4.size = 12;
_local4.letterSpacing = 0.4;
name = rr.conf.Config.getObjectValue(__get__linkId(), "name");
price = rr.conf.Config.getObjectValue(__get__linkId(), "price");
weight = rr.conf.Config.getObjectValue(__get__linkId(), "weight");
barrel = rr.conf.Config.getObjectValue(__get__linkId(), "barrel");
power = rr.conf.Config.getObjectValue(__get__linkId(), "power");
spaces = rr.conf.Config.getObjectValue(__get__linkId(), "spaces");
price_txt.autoSize = "right";
price_txt.text = price;
weight_txt.autoSize = true;
weight_txt.text = "WEIGHT " + (weight / 1000);
weight_txt.text = weight_txt.text + ((weight >= 2000) ? " TONS" : " TON");
price_txt.setTextFormat(_local4);
weight_txt.setTextFormat(_local4);
if (_parent != _global.levelresult.items_mc) {
_global.trainbuild.addEventListener("onWagonSelect", this);
_global.trainbuild.addEventListener("onWeaponSelect", this);
}
super.init();
}
function onWagonSelect() {
checkEnabled();
}
function onWeaponSelect() {
checkEnabled();
}
function checkEnabled() {
enabled = true;
super.checkEnabled();
if (!_global.trainbuild.selectedWagon) {
enabled = false;
} else if (_global.trainbuild.getFreeWagonSpace(spaces) < 0) {
enabled = false;
} else if ((_global.trainbuild.totalLoad + weight) > _global.trainbuild.maxLoad) {
enabled = false;
} else if (price > _global.player.cash) {
enabled = false;
}
if (__get__linkId() == "ColeCart") {
if (_global.trainbuild.loc.fueltype != "coal") {
enabled = false;
}
}
if (__get__linkId() == "OilTank") {
if (_global.trainbuild.loc.fueltype != "oil") {
enabled = false;
}
}
if (__get__linkId() == "PowerGenerator") {
if (_global.trainbuild.loc.fueltype != "electric") {
enabled = false;
}
}
processEnabled();
}
}
Symbol 3375 MovieClip [__Packages.cr.level.EnemySelector] Frame 0
class cr.level.EnemySelector extends rr.BaseClip
{
var count, maxcount, image_mc, _linkId, name_txt, count_txt, min_btn, plus_btn, _alpha, xshow, _type, xhide, _x, onEnterFrame;
function EnemySelector () {
super();
init();
}
function init() {
count = 0;
maxcount = 15;
image_mc.gotoAndStop(_linkId);
name_txt.text = rr.conf.Config.getObjectValue(_linkId, "displayname").toUpperCase();
count_txt.text = count.toString();
if (((((_linkId == "OldJeep") || (_linkId == "ArmoredJeep")) || (_linkId == "GunTruck")) || (_linkId == "PotTank")) || (_linkId == "GatlingSingle")) {
min_btn.onPress = rr.utils.Delegate.create(this, minCount);
plus_btn.onPress = rr.utils.Delegate.create(this, plusCount);
} else {
_alpha = 50;
}
_global.stage.addEventListener("onAreaSelect", this);
xshow = ((_type == "left") ? 0 : 510);
xhide = ((_type == "left") ? -150 : 660);
_x = xhide;
}
function get linkId() {
return(_linkId);
}
function set linkId(value) {
_linkId = value;
//return(linkId);
}
function get type() {
return(_type);
}
function set type(value) {
_type = value;
//return(type);
}
function onAreaSelect() {
count = 0;
if (!_global.stage.areaSel) {
hide();
return(undefined);
}
var _local4;
if (_global.stage.areaSel.combination) {
_local4 = _global.stage.areaSel.combination.enemies;
} else {
_local4 = _global.stage.areaSel.enemies;
}
var _local5 = _local4.length;
var _local3 = 0;
while (_local3 < _local5) {
if (_local4[_local3] == _linkId) {
count++;
}
_local3++;
}
count_txt.text = count.toString();
show();
}
function show() {
onEnterFrame = rr.utils.Delegate.create(this, shiftShow);
}
function hide() {
onEnterFrame = rr.utils.Delegate.create(this, shiftHide);
}
function shiftShow() {
if (_type == "left") {
if (_x < xshow) {
_x = _x + 10;
updateAfterEvent();
} else {
delete onEnterFrame;
}
} else if (_x > xshow) {
_x = _x - 10;
updateAfterEvent();
} else {
delete onEnterFrame;
}
}
function shiftHide() {
if (_type == "left") {
if (_x > xhide) {
_x = _x - 10;
updateAfterEvent();
} else {
delete onEnterFrame;
}
} else if (_x < xhide) {
_x = _x + 10;
updateAfterEvent();
} else {
delete onEnterFrame;
}
}
function plusCount() {
if (count < maxcount) {
if (_global.stage.areaSel.addEnemy(_linkId)) {
count++;
count_txt.text = count.toString();
}
}
}
function minCount() {
if (count > 0) {
if (_global.stage.areaSel.removeEnemy(_linkId)) {
count--;
count_txt.text = count.toString();
}
}
}
}
Symbol 3376 MovieClip [__Packages.cr.level.AirUnitSelector] Frame 0
class cr.level.AirUnitSelector extends rr.BaseClip
{
var count, maxcount, image_mc, _linkId, name_txt, count_txt, min_btn, plus_btn, _alpha, _x, onEnterFrame;
function AirUnitSelector () {
super();
init();
}
function init() {
count = 0;
maxcount = 15;
image_mc.gotoAndStop(_linkId);
name_txt.text = rr.conf.Config.getObjectValue(_linkId, "displayname").toUpperCase();
count_txt.text = count.toString();
if (_linkId == "FockeWolf") {
min_btn.onPress = rr.utils.Delegate.create(this, minCount);
plus_btn.onPress = rr.utils.Delegate.create(this, plusCount);
} else {
_alpha = 50;
}
_global.stage.addEventListener("onObjectSelect", this);
_x = 150;
}
function get linkId() {
return(_linkId);
}
function set linkId(value) {
_linkId = value;
//return(linkId);
}
function onObjectSelect() {
count = 0;
if (_global.stage.objSel.linkId != "AirField") {
hide();
return(undefined);
}
var _local4 = _global.stage.objSel.enemies;
var _local5 = _local4.length;
var _local3 = 0;
while (_local3 < _local5) {
if (_local4[_local3] == _linkId) {
count++;
}
_local3++;
}
count_txt.text = count.toString();
show();
}
function show() {
onEnterFrame = rr.utils.Delegate.create(this, shiftShow);
}
function hide() {
onEnterFrame = rr.utils.Delegate.create(this, shiftHide);
}
function shiftShow() {
if (_x > 0) {
_x = _x - 10;
updateAfterEvent();
} else {
delete onEnterFrame;
}
}
function shiftHide() {
if (_x < 150) {
_x = _x + 10;
updateAfterEvent();
} else {
delete onEnterFrame;
}
}
function plusCount() {
if (count < maxcount) {
if (_global.stage.objSel.addEnemy(_linkId)) {
count++;
count_txt.text = count.toString();
}
}
}
function minCount() {
if (count > 0) {
if (_global.stage.objSel.removeEnemy(_linkId)) {
count--;
count_txt.text = count.toString();
}
}
}
}
Symbol 3377 MovieClip [__Packages.rr.control.MiniMap] Frame 0
class rr.control.MiniMap extends rr.BaseClip
{
var _visible, map_bmp, container_mc, margin, scale, w, h, railcolor, createEmptyMovieClip, getNextHighestDepth, map_mc, label_mc, legenda_mc, edge_mc, cam_mc, items_mc, icons_mc, onEnterFrame;
function MiniMap () {
super();
_global.minimap = this;
_visible = false;
}
function init() {
map_bmp.dispose();
delete map_bmp;
container_mc.removeMovieClip();
margin = 5;
var _local3 = _global.map.width;
var _local4 = _global.map.height;
scale = ((_local3 > _local4) ? ((640 - (2 * margin)) / _local3) : ((480 - (2 * margin)) / _local4));
w = _local3 * scale;
h = _local4 * scale;
railcolor = 13103871 /* 0xC7F2FF */;
if ((_global.map.mapId == 2) || (_global.map.mapId == 3)) {
railcolor = 11836;
}
container_mc = createEmptyMovieClip("container_mc", getNextHighestDepth());
map_mc = container_mc.createEmptyMovieClip("map_mc", container_mc.getNextHighestDepth());
map_bmp = new flash.display.BitmapData(w, h, true, 0);
map_mc.attachBitmap(map_bmp, map_mc.getNextHighestDepth());
label_mc = container_mc.attachMovie("MiniMapLabel", "label_mc", container_mc.getNextHighestDepth());
label_mc.mission_txt.autoSize = true;
label_mc.mission_txt.wordWrap = false;
setMissionText();
legenda_mc = container_mc.attachMovie("MiniMapLegenda", "legenda_mc", container_mc.getNextHighestDepth());
if (w > h) {
map_mc._y = label_mc._height;
label_mc._x = 0;
legenda_mc._x = w - legenda_mc._width;
legenda_mc._y = (label_mc._height - legenda_mc._height) - margin;
} else {
map_mc._y = 0;
label_mc._x = w;
legenda_mc._x = w;
legenda_mc._y = h - legenda_mc._height;
}
container_mc._y = ((480 - margin) - h) - map_mc._y;
edge_mc = container_mc.createEmptyMovieClip("edge_mc", container_mc.getNextHighestDepth());
edge_mc.lineStyle(1, 202014);
rr.utils.DrawUtils.drawRect(edge_mc, 0, map_mc._y, w, h);
cam_mc = container_mc.createEmptyMovieClip("cam_mc", container_mc.getNextHighestDepth());
cam_mc.lineStyle(1, 16711680);
rr.utils.DrawUtils.drawRect(cam_mc, 0, 0, 640 * scale, 480 * scale);
}
function showMap() {
trace("show MiniMap: ");
_global.sounds.stopAll();
_global.timer.stop();
_global.aim.hide(this);
cam_mc._x = _global.camera.left * scale;
cam_mc._y = (_global.camera.top * scale) + map_mc._y;
items_mc = container_mc.createEmptyMovieClip("items_mc", container_mc.getNextHighestDepth());
items_mc.lineStyle(1, 65280);
var _local9 = _global.train.segments.length;
var _local6 = 0;
while (_local6 < _local9) {
var _local7 = _global.train.segments[_local6];
rr.utils.DrawUtils.drawSquare(items_mc, (_local7.x * scale) - 2, (map_mc._y + (_local7.y * scale)) - 2, 4, 4, 65280);
_local6++;
}
icons_mc = container_mc.createEmptyMovieClip("icons_mc", container_mc.getNextHighestDepth());
_local9 = _global.map.cells.length;
_local6 = 0;
while (_local6 < _local9) {
var _local5 = _global.map["cell_" + _global.map.cells[_local6]];
var _local8 = _local5.statics.length;
var _local4 = 0;
while (_local4 < _local8) {
var _local3 = _local5.statics[_local4];
if (_local3 instanceof rr.train.Bonus) {
createIcon("b", _local3.x * scale, map_mc._y + (_local3.y * scale));
}
if (_local3 instanceof rr.train.Drop) {
createIcon(_local3.mode, _local3.x * scale, map_mc._y + (_local3.y * scale));
}
_local4++;
}
_local6++;
}
container_mc._x = 650 + margin;
_visible = true;
onEnterFrame = rr.utils.Delegate.create(this, shiftShow);
}
function createIcon(t, px, py) {
var _local2 = icons_mc.attachMovie("MiniMapIcon", rr.utils.StringUtils.getUniqueName(), icons_mc.getNextHighestDepth());
_local2.gotoAndPlay(t);
_local2._x = px;
_local2._y = py;
}
function shiftShow() {
if (container_mc._x > margin) {
container_mc._x = container_mc._x - 50;
updateAfterEvent();
} else {
delete onEnterFrame;
}
}
function closeMap() {
icons_mc.removeMovieClip();
items_mc.removeMovieClip();
_visible = false;
_global.aim.show(this);
_global.timer.start();
}
function setMissionText() {
if (_global.gameconf.missiontext) {
label_mc.mission_txt.text = _global.gameconf.missiontext.toUpperCase();
} else {
var _local16 = _global.gameconf.dp;
var _local17 = _local16.length;
if (_local17 == 0) {
label_mc.mission_txt.text = "JUST REACH THE OTHER SIDE";
} else {
var _local4 = "";
var _local9;
var _local6;
var _local14;
var _local10;
var _local15;
var _local12;
var _local11;
var _local7;
var _local13;
var _local8;
_local8 = 0;
_local13 = _local8;
_local7 = _local13;
_local11 = _local7;
_local12 = _local11;
_local15 = _local12;
_local10 = _local15;
_local14 = _local10;
_local6 = _local14;
_local9 = _local6;
var _local5 = 0;
while (_local5 < _local17) {
var _local3 = _local16[_local5];
if (_local3.m == "d") {
if (_local3.t == "f") {
_local6++;
}
if (_local3.t == "p") {
_local10++;
}
if (_local3.t == "a") {
_local12++;
}
if (_local3.t == "t") {
_local7++;
}
if (_local3.t == "b") {
_local8++;
}
}
if (_local3.m == "p") {
if (_local3.t == "f") {
_local9++;
}
if (_local3.t == "p") {
_local14++;
}
if (_local3.t == "a") {
_local15++;
}
if (_local3.t == "t") {
_local11++;
}
if (_local3.t == "b") {
_local13++;
}
}
_local5++;
}
if (_local6 > 0) {
_local4 = _local4 + (("Drop of " + _local6) + " Oiltank");
if (_local6 > 1) {
_local4 = _local4 + "s";
}
}
if (_local10 > 0) {
_local4 = _local4 + ((_local4 == "") ? "" : "\r");
_local4 = _local4 + (("Drop of " + _local10) + " Passenger wagon");
if (_local10 > 1) {
_local4 = _local4 + "s";
}
}
if (_local12 > 0) {
_local4 = _local4 + ((_local4 == "") ? "" : "\r");
_local4 = _local4 + (("Drop of " + _local12) + " Armored passenger wagon");
if (_local12 > 1) {
_local4 = _local4 + "s";
}
}
if (_local7 > 0) {
_local4 = _local4 + ((_local4 == "") ? "" : "\r");
_local4 = _local4 + (("Drop of " + _local7) + " Tanktrailer");
if (_local7 > 1) {
_local4 = _local4 + "s";
}
}
if (_local8 > 0) {
_local4 = _local4 + ((_local4 == "") ? "" : "\r");
_local4 = _local4 + (("Drop of " + _local8) + " Atomic bomb");
if (_local8 > 1) {
_local4 = _local4 + "s";
}
}
if (_local9 > 0) {
_local4 = _local4 + ((_local4 == "") ? "" : "\r");
_local4 = _local4 + (("Pick up " + _local9) + " Oiltank");
if (_local9 > 1) {
_local4 = _local4 + "s";
}
}
if (_local14 > 0) {
_local4 = _local4 + ((_local4 == "") ? "" : "\r");
_local4 = _local4 + (("Pick up " + _local14) + " Passenger wagon");
if (_local14 > 1) {
_local4 = _local4 + "s";
}
}
if (_local15 > 0) {
_local4 = _local4 + ((_local4 == "") ? "" : "\r");
_local4 = _local4 + (("Pick up " + _local15) + " Armored passenger wagon");
if (_local15 > 1) {
_local4 = _local4 + "s";
}
}
if (_local11 > 0) {
_local4 = _local4 + ((_local4 == "") ? "" : "\r");
_local4 = _local4 + (("Pick up " + _local11) + " Tanktrailer");
if (_local11 > 1) {
_local4 = _local4 + "s";
}
}
if (_local13 > 0) {
_local4 = _local4 + ((_local4 == "") ? "" : "\r");
_local4 = _local4 + (("Pick up " + _local13) + " Atomic bomb");
if (_local13 > 1) {
_local4 = _local4 + "s";
}
}
label_mc.mission_txt.text = _local4.toUpperCase();
}
}
}
}
Symbol 3378 MovieClip [__Packages.rr.utils.DrawUtils] Frame 0
class rr.utils.DrawUtils
{
function DrawUtils () {
}
static function drawSquare(mc, x, y, w, h, c) {
mc.moveTo(x, y);
mc.beginFill(c);
mc.lineTo(x + w, y);
mc.lineTo(x + w, y + h);
mc.lineTo(x, y + h);
mc.lineTo(x, y);
mc.endFill();
}
static function drawRect(mc, x, y, w, h) {
mc.moveTo(x, y);
mc.lineTo(x + w, y);
mc.lineTo(x + w, y + h);
mc.lineTo(x, y + h);
mc.lineTo(x, y);
}
static function drawFillRect(mc, x, y, w, h, fill_col, fill_alpha) {
mc.moveTo(x, y);
mc.beginFill(fill_col, fill_alpha);
mc.lineTo(x + w, y);
mc.lineTo(x + w, y + h);
mc.lineTo(x, y + h);
mc.lineTo(x, y);
mc.endFill();
}
static function drawCircle(mc, x, y, r, style) {
if (!mc.circle) {
mc.circle = mc.createEmptyMovieClip("circle", mc.getNextHighestDepth());
}
mc.circle.moveTo(x + r, y);
mc.circle.lineStyle(1, 0);
var _local7 = Math.tan((style * Math.PI) / 180);
var _local1 = 45;
while (_local1 <= 360) {
var _local4 = r * Math.cos((_local1 * Math.PI) / 180);
var _local3 = r * Math.sin((_local1 * Math.PI) / 180);
var _local6 = _local4 + ((r * _local7) * Math.cos(((_local1 - 90) * Math.PI) / 180));
var _local5 = _local3 + ((r * _local7) * Math.sin(((_local1 - 90) * Math.PI) / 180));
mc.circle.curveTo(_local6 + x, _local5 + y, _local4 + x, _local3 + y);
_local1 = _local1 + 45;
}
}
static function drawArc(mc, x, y, startAngle, arc, radius, colr) {
var _local18;
var _local1;
var _local3;
var _local4;
var _local13;
var _local7;
var _local6;
var _local12;
var _local10;
var _local11;
var _local9;
mc.lineStyle(1, colr, 100);
mc.beginFill(colr);
mc.moveTo(x, y);
if (Math.abs(arc) > 360) {
arc = 360;
}
_local13 = Math.ceil(Math.abs(arc) / 45);
_local18 = arc / _local13;
_local1 = (-(_local18 / 180)) * Math.PI;
_local3 = (-(startAngle / 180)) * Math.PI;
if (_local13 > 0) {
_local7 = x + (Math.cos((startAngle / 180) * Math.PI) * radius);
_local6 = y + (Math.sin(((-startAngle) / 180) * Math.PI) * radius);
mc.lineTo(_local7, _local6);
_local7 = x;
_local6 = y;
var _local5;
_local5 = 0;
while (_local5 < _local13) {
_local3 = _local3 + _local1;
_local4 = _local3 - (_local1 / 2);
_local12 = _local7 + (Math.cos(_local3) * radius);
_local10 = _local6 + (Math.sin(_local3) * radius);
_local11 = _local7 + (Math.cos(_local4) * (radius / Math.cos(_local1 / 2)));
_local9 = _local6 + (Math.sin(_local4) * (radius / Math.cos(_local1 / 2)));
mc.curveTo(_local11, _local9, _local12, _local10);
_local5++;
}
mc.lineTo(x, y);
mc.lineTo(_local7, _local6);
mc.endFill();
}
}
}
Symbol 3379 MovieClip [__Packages.rr.BaseClass] Frame 0
class rr.BaseClass
{
var events;
function BaseClass () {
}
function addEventListener(evt, listener) {
if (events == undefined) {
events = new mx.events.EventDispatcher();
}
events.addEventListener(evt, listener);
}
function removeEventListener(evt, listener) {
events.removeEventListener(evt, listener);
}
var pi = Math.PI;
var cos = Math.cos;
var acos = Math.acos;
var sin = Math.sin;
var asin = Math.asin;
var atan2 = Math.atan2;
var abs = Math.abs;
var round = Math.round;
}
Symbol 3380 MovieClip [__Packages.rr.train.Bonus] Frame 0
class rr.train.Bonus extends rr.BaseClass
{
var linkId, initObj, dfeel, uid, cellId, x, y, t, cash, mov, bonusAdded, typeSet, type;
function Bonus (iObj) {
super();
linkId = "Bonus";
initObj = iObj;
dfeel = 75;
init();
}
function init() {
uid = initObj.uid;
cellId = initObj.cellid;
x = initObj.x;
y = initObj.y;
t = initObj.t;
if (initObj.c) {
cash = initObj.c;
}
}
function update() {
if (rr.utils.MathUtils.getDistance(x, y, _global.loc.x, _global.loc.y) < dfeel) {
applyBonus();
}
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
render();
} else if (mov) {
clearMov();
}
}
function render() {
if (!mov) {
if (!bonusAdded) {
if (!typeSet) {
setType();
}
var _local3 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
mov = _global.stage.attachMovie(linkId + type, rr.utils.StringUtils.getUniqueName(), _local3);
trace(("linkId + type: " + linkId) + type);
if (cash) {
mov.cash_txt.text = cash.toString();
}
}
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
}
function clearMov() {
mov.removeMovieClip();
delete mov;
}
function setType() {
if (t == "m") {
type = "Money";
} else if (t == "r") {
type = "Repair";
} else {
if (_global.loc.fueltype == "coal") {
type = "Coal";
}
if (_global.loc.fueltype == "oil") {
type = "Oil";
}
if (_global.loc.fueltype == "electric") {
type = "Electric";
}
}
typeSet = true;
}
function applyBonus() {
if (_global.train.isCrashed) {
return(undefined);
}
if (bonusAdded) {
return(undefined);
}
bonusAdded = true;
if (type == "Money") {
_global.player.addBonus(cash);
_global.sounds.playSound("Cash Bonus.wav");
} else {
_global.train.setBonus(type);
}
if (type == "Coal") {
_global.sounds.playSound("Coal Bonus.wav");
}
if (type == "Electric") {
_global.sounds.playSound("Energy Bonus.wav");
}
if (type == "Oil") {
_global.sounds.playSound("Oil Bonus.wav");
}
if (type == "Repair") {
_global.sounds.playSound("Repair Bonus.wav");
}
clearMov();
_global.map["cell_" + cellId].deleteObject(this);
}
}
Symbol 3381 MovieClip [__Packages.rr.utils.MathUtils] Frame 0
class rr.utils.MathUtils
{
function MathUtils () {
}
static function formatDecimals(num, digits) {
if (digits <= 0) {
return(Math.round(num));
}
var _local4 = Math.pow(10, digits);
var _local2 = String(Math.round(num * _local4) / _local4);
if (_local2.indexOf(".") == -1) {
_local2 = _local2 + ".0";
}
var _local6 = _local2.split(".");
var _local3 = digits - _local6[1].length;
var _local1 = 1;
while (_local1 <= _local3) {
_local2 = _local2 + "0";
_local1++;
}
return(Number(_local2));
}
static function toScientific(num, sigDigs) {
num = Number(num);
if (isNaN(num)) {
return(num);
}
var _local2 = Math.floor(Math.log(Math.abs(num)) / Math.LN10);
if (num == 0) {
_local2 = 0;
}
var _local5 = Math.pow(10, _local2);
var _local3 = num / _local5;
_local3 = formatDecimals(_local3, sigDigs - 1);
var _local4 = _local3;
if (_local2 != 0) {
_local4 = _local4 + ("e" + _local2);
}
return(_local4);
}
static function getDistance(x1, y1, x2, y2) {
var _local1 = Math.abs(x1 - x2);
var _local2 = Math.abs(y1 - y2);
return(Math.sqrt(Math.pow(_local1, 2) + Math.pow(_local2, 2)));
}
static function getAngle(x1, y1, x2, y2) {
return(formatAngle2(Math.round((180 * Math.atan2(y2 - y1, x2 - x1)) / Math.PI)));
}
static function formatAngle(ang) {
if (ang > 0) {
return(ang - 360);
}
if (ang < -360) {
return(ang + 360);
}
return(ang);
}
static function formatAngle2(ang) {
if (ang < 0) {
return(ang + 360);
}
if (ang > 360) {
return(ang - 360);
}
return(ang);
}
static function formatAngle3(ang) {
if (ang < -180) {
return(ang + 360);
}
if (ang > 180) {
return(ang - 360);
}
return(ang);
}
static function angDiff(ang1, ang2) {
return(Math.abs(formatAngle3(ang1) - formatAngle3(ang2)));
}
static function angDiff2(ang1, ang2) {
return(formatAngle3(ang1) - formatAngle3(ang2));
}
}
Symbol 3382 MovieClip [__Packages.rr.utils.ClipUtils] Frame 0
class rr.utils.ClipUtils
{
function ClipUtils () {
}
static function getFreeDepth(mc, obj) {
var _local2 = rr.conf.ConfBaseDepths.getDepth(obj);
if (!_local2) {
_local2 = 1000;
}
var _local1 = 0;
while (mc.getInstanceAtDepth(_local2 + _local1)) {
_local1++;
}
return(_local2 + _local1);
}
static function setTint(mc, rgb, amount) {
var _local1 = new flash.geom.ColorTransform();
var _local2 = new flash.geom.Transform(mc);
com.robertpenner.utils.ColorTransformUtil.setTint2(_local1, rgb, amount);
_local2.colorTransform = _local1;
}
static function createFeeler(name, col, w) {
var _local2 = _global.stage.createEmptyMovieClip(name, _global.stage.getNextHighestDepth());
_local2.lineStyle(1, col);
_local2.beginFill(col);
_local2.moveTo(-w, -w);
_local2.lineTo(w, -w);
_local2.lineTo(w, w);
_local2.lineTo(-w, w);
_local2.lineTo(-w, -w);
_local2.endFill();
return(_local2);
}
}
Symbol 3383 MovieClip [__Packages.rr.conf.ConfBaseDepths] Frame 0
class rr.conf.ConfBaseDepths
{
function ConfBaseDepths () {
}
static function getDepth(obj) {
if (obj instanceof rr.Aim) {
return(200000);
}
if (obj instanceof rr.Clock) {
return(196000);
}
if (obj instanceof rr.train.weapons.EMPLoader) {
return(195000);
}
if (obj instanceof rr.rail.RailSwitch) {
return(190000);
}
if (obj instanceof rr.train.Drop) {
return(190000);
}
if (obj instanceof rr.train.Bonus) {
return(190000);
}
if (obj.linkId == "B2") {
return(110000);
}
if (obj instanceof rr.enemy.AirUnit) {
return(100000);
}
if (obj instanceof rr.enemy.Heli) {
return(90000);
}
if (obj.linkId == "BellHuey") {
return(90000);
}
if (obj instanceof rr.train.AirCrane) {
return(80000);
}
if (obj.linkId == "SmokeTrail") {
return(50000);
}
if (obj.linkId == "Heatseeker") {
return(42000);
}
if (obj.linkId == "Rocket") {
return(42000);
}
if (obj == "EMPPulse") {
return(41000);
}
if (obj == "StageForeground") {
return(40000);
}
if (obj instanceof rr.ammo.Ammo) {
return(30000);
}
if (obj == "Compound") {
return(25000);
}
if (obj instanceof rr.train.weapons.FixedWeapon) {
return(23000);
}
if (obj instanceof rr.train.weapons.StaticWeapon) {
return(23000);
}
if (obj instanceof rr.train.weapons.TrainWeapon) {
return(20000);
}
if (obj instanceof rr.train.Locomotive) {
return(18000);
}
if (obj instanceof rr.train.TrainLoad) {
return(15000);
}
if (obj instanceof rr.rail.RailBlock) {
return(14000);
}
if (obj.linkId == "BullDozer") {
return(12000);
}
if (obj instanceof rr.enemy.GroundUnit) {
return(10000);
}
if (obj instanceof rr.train.TrainWagon) {
return(1000);
}
}
}
Symbol 3384 MovieClip [__Packages.rr.Aim] Frame 0
class rr.Aim extends rr.BaseClass
{
var linkId, mov, hidden, mode, events, hiddenBy;
function Aim () {
super();
}
function init() {
linkId = "Aim";
showCrossHair();
var _local3 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
mov = _global.stage.attachMovie(linkId, rr.utils.StringUtils.getUniqueName(), _local3);
mov.cranewarning_mc._visible = false;
mov.onMouseDown = rr.utils.Delegate.create(this, setDown);
mov.onMouseUp = rr.utils.Delegate.create(this, setUp);
_global.timer.addEventListener("onTimerTick", this);
hidden = true;
show();
}
function onTimerTick() {
if (mov._y > _global.stage.height) {
if (mov._visible) {
hide();
}
} else if (!mov._visible) {
show();
}
}
function setDown() {
if (mov._visible) {
if (mode == "detach") {
checkWagonDetach();
} else {
events.dispatchEvent({type:"onAimDown", target:this});
}
}
}
function setUp() {
if (mov._visible) {
events.dispatchEvent({type:"onAimUp", target:this});
}
}
function show(obj) {
if (!mov) {
return(undefined);
}
if (!hidden) {
return(undefined);
}
if (obj) {
if (obj != hiddenBy) {
return(undefined);
}
delete hiddenBy;
} else if (hiddenBy) {
return(undefined);
}
hidden = false;
mov._visible = true;
Mouse.hide();
mov.startDrag(true);
}
function hide(obj) {
if (!mov) {
return(undefined);
}
if (hidden) {
return(undefined);
}
if (obj) {
hiddenBy = obj;
}
hidden = true;
setUp();
mov._visible = false;
Mouse.show();
}
function showIndicator() {
mode = "ind";
mov.gotoAndPlay("ind");
}
function showCrossHair() {
mode = "crosshair";
mov.gotoAndPlay("crosshair");
}
function showDetach() {
mode = "detach";
mov.gotoAndPlay("detach");
}
function checkWagonDetach() {
var _local3 = _global.loc;
while (_local3.next) {
_local3 = _local3.next;
if (_local3.mov.hitTest(_xmouse, _ymouse, true)) {
_local3.disconnect();
break;
}
}
showCrossHair();
}
function clear() {
mov.removeMovieClip();
delete mov;
_global.timer.removeEventListener("onTimerTick", this);
Mouse.show();
}
}
Symbol 3385 MovieClip [__Packages.rr.utils.StringUtils] Frame 0
class rr.utils.StringUtils
{
function StringUtils () {
}
static function getUniqueName() {
var _local3 = "";
var _local2 = 1;
while (_local2 <= 4) {
var _local1 = 1;
while (_local1 <= 4) {
_local3 = _local3 + getRandomChar();
_local1++;
}
if (_local2 < 4) {
_local3 = _local3 + "-";
}
_local2++;
}
return(_local3);
}
static function getRandomChar() {
switch (Math.round(Math.random() + 1)) {
case 1 :
return(String.fromCharCode(Math.round(Math.random() * 25) + 65));
case 2 :
return(String.fromCharCode(Math.round(Math.random() * 25) + 97));
}
}
static function scrambleArray(arr) {
var _local2 = [];
while (arr.length > 0) {
_local2.push(arr.splice(Math.round(Math.random() * (arr.length - 1)), 1));
}
return(_local2);
}
static function getTimeString(t) {
var _local1 = Math.round(t / 1000);
var _local2 = Math.floor(_local1 / 60);
var _local3 = Math.floor(_local2 / 60);
_local1 = _local1 % 60;
_local2 = _local2 % 60;
var _local4 = ((_local1 < 10) ? ("0" + _local1) : (_local1));
var _local5 = _local2 + ":";
var _local6 = ((_local3 > 0) ? (_local3 + ":") : "");
var _local7 = (_local6 + _local5) + _local4;
return(_local7);
}
static function getHighScoreTimeString(t) {
var _local2 = Math.round(t / 1000);
var _local1 = Math.floor(_local2 / 60);
var _local3 = Math.floor(_local1 / 60);
_local2 = _local2 % 60;
_local1 = _local1 % 60;
var _local6 = ((_local2 < 10) ? ("0" + _local2) : (_local2.toString()));
var _local4 = "00";
if (_local1 > 0) {
_local4 = ((_local1 < 10) ? ("0" + _local1) : (_local1.toString()));
}
var _local5 = "";
if (_local3 > 0) {
_local5 = ((_local3 < 10) ? ("0" + _local3) : (_local3.toString()));
}
var _local7 = (_local5 + _local4) + _local6;
return(_local7);
}
}
Symbol 3386 MovieClip [__Packages.rr.Clock] Frame 0
class rr.Clock extends rr.BaseClip
{
var linkId, mov;
function Clock () {
super();
linkId = "Clock";
}
function init() {
createMov();
_global.timer.addEventListener("onTimerTick", this);
}
function onTimerTick() {
if (_global.leveltime > 0) {
mov.time_txt.text = rr.utils.StringUtils.getTimeString(_global.leveltime);
var _local3 = (360 * (_global.leveltime % 1000)) / 1000;
trace("rot: " + _local3);
mov.hand_mc._rotation = _local3;
}
}
function createMov() {
var _local3 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
mov = _global.stage.attachMovie(linkId, rr.utils.StringUtils.getUniqueName(), _local3, {parent:this});
mov.time_txt.text = rr.utils.StringUtils.getTimeString(0);
mov.hand_mc._rotation = 0;
}
function clear() {
mov.removeMovieClip();
delete mov;
_global.timer.removeEventListener("onTimerTick", this);
}
}
Symbol 3387 MovieClip [__Packages.rr.train.weapons.EMPLoader] Frame 0
class rr.train.weapons.EMPLoader extends rr.BaseClip
{
var linkId, parent, tload, isLoaded, lastloaded, mov;
function EMPLoader (e) {
super();
linkId = "EMPLoader";
parent = e;
init();
}
function init() {
tload = rr.conf.Config.getObjectValue(parent.linkId, "loadTime");
isLoaded = false;
createMov();
load();
}
function load() {
isLoaded = false;
lastloaded = getTimer();
_global.timer.addEventListener("onTimerTick", this);
}
function onTimerTick() {
var _local3 = (getTimer() - lastloaded) / tload;
mov.lmov.clear();
rr.utils.DrawUtils.drawArc(mov.lmov, 0, 0, 0, 360 - (360 * _local3), 7, 3358282);
if (_local3 >= 1) {
isLoaded = true;
mov.gotoAndStop("ready");
mov.onPress = rr.utils.Delegate.create(this, fire);
mov.onRollOver = rr.utils.Delegate.create(_global.aim, _global.aim.hide, this);
mov.onRollOut = (mov.onDragOut = rr.utils.Delegate.create(_global.aim, _global.aim.show, this));
_global.timer.removeEventListener("onTimerTick", this);
}
}
function fire() {
delete mov.onPress;
parent.fire();
mov.gotoAndStop("loading");
load();
}
function createMov() {
var _local5 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
mov = _global.stage.attachMovie(linkId, rr.utils.StringUtils.getUniqueName(), _local5, {parent:this});
var _local4 = 0;
var _local3 = 0;
while (_local3 < _global.train.emps.length) {
if (_global.train.emps[_local3] == parent.uid) {
break;
}
_local4++;
_local3++;
}
mov._x = _local4 * (mov._width + 5);
mov._y = 480 - mov._height;
}
function destroy() {
mov.removeMovieClip();
}
}
Symbol 3388 MovieClip [__Packages.rr.train.weapons.TrainWeapon] Frame 0
class rr.train.weapons.TrainWeapon extends rr.BaseClass
{
var parent, initObj, uid, bobj, position, weight, linkId, price, mode, dfeel, dfire, dfiremin, tfire, rotspeed, killlevel, destroydelay, sound, gunsound, explodesound, rfire, lbarrel, x, xmargin, y, damage, isdead, rotBarrel, lastFired, lastTargeted, ttarget, conftargets, allTargets, targets, addEventListener, cos, pi, sin, tar, dtar, isShooting, mov, status, tarRot, atan2, events, isdestroyed;
function TrainWeapon () {
super();
}
function init() {
parent = initObj.parent;
parent.weapons.push(this);
uid = initObj.uid;
bobj = initObj.bobj;
position = initObj.position;
weight = rr.conf.Config.getObjectValue(linkId, "weight");
price = rr.conf.Config.getObjectValue(linkId, "price");
mode = rr.conf.Config.getObjectValue(linkId, "mode");
dfeel = rr.conf.Config.getObjectValue(linkId, "feelerradius");
dfire = rr.conf.Config.getObjectValue(linkId, "shootingDistance");
dfiremin = rr.conf.Config.getObjectValue(linkId, "shootingDistanceMin");
tfire = rr.conf.Config.getObjectValue(linkId, "shootingInterval");
rotspeed = rr.conf.Config.getObjectValue(linkId, "rotationSpeed");
killlevel = rr.conf.Config.getObjectValue(linkId, "killlevel");
destroydelay = rr.conf.Config.getObjectValue(linkId, "destroydelay");
sound = rr.conf.Config.getObjectValue(linkId, "sound");
gunsound = rr.conf.Config.getObjectValue(linkId, "gunsound");
explodesound = rr.conf.Config.getObjectValue(linkId, "explodesound");
rfire = rr.conf.Config.getObjectValue(linkId, "ammoAccuracy");
lbarrel = rr.conf.Config.getObjectValue(linkId, "barrellength");
rr.train.TrainUtils.setWeaponMargin(this);
x = (parent.x + (parent.length / 2)) - xmargin;
trace("xmargin: " + xmargin);
y = parent.y;
damage = 0;
isdead = false;
rotBarrel = 0;
lastFired = getTimer();
lastTargeted = getTimer();
ttarget = 5000;
parent.addEventListener("onUpdate", this);
if (mode == "automatic") {
conftargets = rr.conf.Config.getObjectValue(linkId, "targets");
if (!conftargets) {
conftargets = ["All"];
}
if (conftargets[0] == "All") {
allTargets = true;
}
targets = [];
_global.stage.addEventListener("onEnemyCreate", this);
} else {
_global.aim.addEventListener("onAimDown", this);
_global.aim.addEventListener("onAimUp", this);
}
addEventListener("onTrainObjectDestroy", _global.trainbuild);
}
function onUpdate() {
x = parent.x + (cos(((-(parent.rot + parent.fliprot)) * pi) / 180) * ((parent.length / 2) - xmargin));
y = parent.y - (sin(((-(parent.rot + parent.fliprot)) * pi) / 180) * ((parent.length / 2) - xmargin));
if (isdead) {
checkRender();
return(undefined);
}
aimAtTarget();
if (mode == "automatic") {
if (tar) {
if (dtar <= dfire) {
if (dtar >= dfiremin) {
fire();
}
} else {
tar = undefined;
}
}
} else if (isShooting) {
fire();
}
checkRender();
updateAfterEvent();
}
function render() {
if (!mov) {
createMov();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov.barrel_mc._rotation = rotBarrel;
}
function checkRender() {
if (parent.isRendered) {
render();
} else if (mov) {
clearMov();
}
}
function createMov() {
var _local3 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
mov = _global.stage.attachMovie(linkId, rr.utils.StringUtils.getUniqueName(), _local3, {parent:this});
checkNightMode();
}
function clearMov() {
mov.removeMovieClip();
delete mov;
}
function checkNightMode() {
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov.base_mc, 0, 90);
rr.utils.ClipUtils.setTint(mov.barrel_mc.base_mc, 0, 90);
}
}
function aimAtTarget() {
if (status == "collapse") {
tarRot = parent.rot;
} else if (mode == "automatic") {
if (!tar) {
getTarget();
if (!tar) {
return(undefined);
}
}
dtar = rr.utils.MathUtils.getDistance(x, y, tar.x, tar.y);
tarRot = (180 * atan2(tar.y - y, tar.x - x)) / pi;
} else {
tarRot = (180 * atan2(_global.aim.mov._y - (y - _global.camera.top), _global.aim.mov._x - (x - _global.camera.left))) / pi;
}
var _local3 = (rotBarrel + 360) % 360;
tarRot = (tarRot + 360) % 360;
if ((tarRot - _local3) > 180) {
tarRot = tarRot - 360;
} else if ((tarRot - _local3) < -180) {
tarRot = tarRot + 360;
}
_local3 = _local3 + ((rotspeed * (tarRot - _local3)) / 100);
rotBarrel = rr.utils.MathUtils.formatAngle2(_local3);
}
function getTarget() {
if ((getTimer() - lastTargeted) < ttarget) {
return(undefined);
}
lastTargeted = getTimer();
if (allTargets) {
var _local6 = _global.stage.enemies.length;
var _local4 = 0;
while (_local4 < _local6) {
var _local3 = _global.stage["enemy_" + _global.stage.enemies[_local4]];
if (!_local3.isdead) {
var _local5 = rr.utils.MathUtils.getDistance(x, y, _local3.x, _local3.y);
if (_local5 <= dfire) {
tar = _local3;
tar.addEventListener("onEnemyDie", this);
return(undefined);
}
}
_local4++;
}
}
var _local6 = targets.length;
var _local4 = 0;
while (_local4 < _local6) {
var _local3 = _global.stage["enemy_" + targets[_local4]];
if (_local3.isdead) {
} else {
var _local5 = rr.utils.MathUtils.getDistance(x, y, _local3.x, _local3.y);
if (_local5 <= dfire) {
tar = _local3;
tar.addEventListener("onEnemyDie", this);
return(undefined);
}
}
_local4++;
}
}
function fire() {
if ((getTimer() - lastFired) < tfire) {
return(undefined);
}
if ((mode == "automatic") && (Math.abs(tarRot - rotBarrel) > 20)) {
return(undefined);
}
lastFired = getTimer();
mov.barrel_mc.gotoAndPlay("shoot");
_global.sounds.playSound(gunsound);
var _local4 = x + (cos(((-rotBarrel) * pi) / 180) * lbarrel);
var _local3 = y - (sin(((-rotBarrel) * pi) / 180) * lbarrel);
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:_local4, y:_local3, rot:rotBarrel});
}
function addDamage(dmg) {
if (isdead) {
return(undefined);
}
if (!dmg) {
return(undefined);
}
damage = damage + dmg;
if (damage >= killlevel) {
damage = killlevel;
die();
}
events.dispatchEvent({type:"onDamage", target:this});
}
function die() {
if (isdead) {
return(undefined);
}
events.dispatchEvent({type:"onTrainTargetDie", target:this});
isdead = true;
render();
_global.sounds.playSound(explodesound);
mov.gotoAndPlay("explode");
rr.utils.Delegate.callDelayed(this, destroy, destroydelay);
}
function destroy() {
if (isdestroyed) {
return(undefined);
}
isdestroyed = true;
mov.removeMovieClip();
events.dispatchEvent({type:"onTrainObjectDestroy", target:this});
parent.removeWeapon(this);
}
function onAimDown() {
if (isdead) {
return(undefined);
}
if (_global.aim.mode != "crosshair") {
return(undefined);
}
isShooting = true;
}
function onAimUp() {
isShooting = false;
}
function onEnemyCreate(evtObj) {
var _local3 = evtObj.target;
var _local4 = conftargets.length;
var _local2 = 0;
while (_local2 < _local4) {
if (_local3.linkId == conftargets[_local2]) {
trace("adding target");
_local3.addEventListener("onEnemyDie", this);
targets.push(_local3.uid);
break;
}
_local2++;
}
}
function onEnemyDie(evtObj) {
if (tar == evtObj.target) {
tar = undefined;
}
var _local3 = targets.length;
var _local2 = 0;
while (_local2 < _local3) {
if (evtObj.target.uid == targets[_local2]) {
targets.splice(_local2, 1);
break;
}
_local2++;
}
}
}
Symbol 3389 MovieClip [__Packages.rr.train.TrainUtils] Frame 0
class rr.train.TrainUtils
{
function TrainUtils () {
}
static function updateRailPosition(obj) {
var _local5;
var _local3;
var _local6 = true;
_local3 = (((obj.speed * obj.rsfactor) >= 0) ? (obj.rs.rce) : (obj.rs.rcs));
obj.d = obj.d + (obj.speed * obj.rsfactor);
if (_local3.block) {
if (rr.utils.MathUtils.getDistance(obj.x, obj.y, _local3.block.x, _local3.block.y) < ((obj.length / 2) + 3)) {
obj.blockStop(_local3.block);
trace("blockstop");
} else {
obj.blocked = false;
}
}
if (obj.d < 0) {
_local3.updateObjectRail(obj);
_local6 = false;
} else if (obj.d > obj.rs.length) {
_local3.updateObjectRail(obj);
_local6 = false;
}
_local5 = obj.rs.getPoint(obj.d);
if (_local5) {
obj.x = _local5.x;
obj.y = _local5.y;
obj.rot = _local5.rot;
}
if (_local6) {
var _local4 = Math.abs((obj.oldRot - obj.rot) * _global.loc.speed);
if (_local4 > _global.loc.crashFactor) {
if (obj.oldRot > obj.rot) {
_local4 = Math.abs(((obj.oldRot - obj.rot) - 360) * _global.loc.speed);
} else {
_local4 = Math.abs(((obj.oldRot - obj.rot) + 360) * _global.loc.speed);
}
if (_local4 > _global.loc.crashFactor) {
_global.train.crash(-_global.loc.rs.dir, null);
}
}
}
if (obj.oldX) {
obj.xspeed = obj.x - obj.oldX;
obj.yspeed = obj.y - obj.oldY;
}
obj.oldX = obj.x;
obj.oldY = obj.y;
obj.oldRot = obj.rot;
obj.hdir = ((obj.xspeed > 0) ? "right" : (((obj.xspeed < 0) ? "left" : "none")));
obj.vdir = ((obj.yspeed > 0) ? "down" : (((obj.yspeed < 0) ? "up" : "none")));
obj.checkRender();
}
static function updateCrashPosition(obj) {
if (!obj.mov) {
obj.createMov();
}
if (obj == _global.loc) {
obj.rot = obj.rot + (_global.train.crashRotDir * _global.train.crashRotSpeed);
_global.train.crashRotSpeed = _global.train.crashRotSpeed * 0.95;
obj.x = obj.x + obj.xspeed;
obj.y = obj.y + obj.yspeed;
obj.xspeed = obj.xspeed * 0.95;
obj.yspeed = obj.yspeed * 0.95;
if (Math.abs(obj.xspeed) < 0.05) {
obj.xspeed = 0;
}
if (Math.abs(obj.yspeed) < 0.05) {
obj.yspeed = 0;
}
if ((obj.xspeed == 0) && (obj.yspeed == 0)) {
_global.train.crashEnded = true;
}
} else if (!obj.prev) {
obj.x = obj.x + obj.xspeed;
obj.y = obj.y + obj.yspeed;
obj.xspeed = obj.xspeed * 0.95;
obj.yspeed = obj.yspeed * 0.95;
if (Math.abs(obj.xspeed) < 0.05) {
obj.xspeed = 0;
}
if (Math.abs(obj.yspeed) < 0.05) {
obj.yspeed = 0;
}
} else {
var _local3 = obj.prev;
var _local8 = _local3.x + ((Math.cos(((-(_local3.rot + _local3.fliprot)) * Math.PI) / 180) * _local3.length) / 2);
var _local7 = _local3.y - ((Math.sin(((-(_local3.rot + _local3.fliprot)) * Math.PI) / 180) * _local3.length) / 2);
var _local10 = _local3.x + ((Math.cos(((-(_local3.rot + _local3.fliprot)) * Math.PI) / 180) * (-_local3.length)) / 2);
var _local9 = _local3.y - ((Math.sin(((-(_local3.rot + _local3.fliprot)) * Math.PI) / 180) * (-_local3.length)) / 2);
var _local4;
if (rr.utils.MathUtils.getDistance(_local10, _local9, obj.x, obj.y) <= rr.utils.MathUtils.getDistance(_local8, _local7, obj.x, obj.y)) {
_local4 = {x:_local10, y:_local9};
} else {
_local4 = {x:_local8, y:_local7};
}
if (_global.train.crashdir == 1) {
var _local12 = 0.98 * (_local4.x - obj.x);
} else {
var _local12 = 1.2 * (_local4.x - obj.x);
}
var _local11 = _local4.y - obj.y;
var _local6 = (180 * Math.atan2(_local11, _local12)) / Math.PI;
var _local5 = rr.utils.MathUtils.angDiff(obj.rot, _local6);
if ((_local5 < 90) || ((360 - _local5) < 90)) {
obj.rot = rr.utils.MathUtils.formatAngle2(_local6);
} else {
obj.rot = rr.utils.MathUtils.formatAngle2(_local6 + 180);
}
_local5 = rr.utils.MathUtils.angDiff(obj.rot, _local3.rot);
if ((_local5 > 90) && ((360 - _local5) > 90)) {
obj.die();
}
obj.x = _local4.x + ((Math.cos(((-_local6) * Math.PI) / 180) * (-obj.length)) / 2);
obj.y = _local4.y - ((Math.sin(((-_local6) * Math.PI) / 180) * (-obj.length)) / 2);
obj.xspeed = obj.x - obj.oldX;
obj.yspeed = obj.y - obj.oldY;
}
obj.render();
obj.oldX = obj.x;
obj.oldY = obj.y;
obj.oldRot = obj.rot;
obj.hdir = ((obj.xspeed > 0) ? "right" : (((obj.xspeed < 0) ? "left" : "none")));
obj.vdir = ((obj.yspeed > 0) ? "down" : (((obj.yspeed < 0) ? "up" : "none")));
}
static function createLoc(initObj) {
switch (initObj.type) {
case "SaddleTank" :
new rr.train.SaddleTank(initObj);
break;
case "BulpFrog" :
new rr.train.BulpFrog(initObj);
}
}
static function createWagon(initObj) {
switch (initObj.type) {
case "Wagon1" :
new rr.train.Wagon1(initObj);
break;
case "Wagon2" :
new rr.train.Wagon2(initObj);
break;
case "Wagon3" :
new rr.train.Wagon3(initObj);
break;
case "Wagon4" :
new rr.train.Wagon4(initObj);
break;
case "HugeCannon" :
new rr.train.Wagon4(initObj);
break;
case "FuelTank" :
new rr.train.FuelTank(initObj);
break;
case "Passenger" :
new rr.train.Passenger(initObj);
break;
case "PassengerArmored" :
new rr.train.PassengerArmored(initObj);
break;
case "TankTrailer" :
new rr.train.TankTrailer(initObj);
break;
case "ABomb" :
new rr.train.ABomb(initObj);
}
}
static function createWeapon(initObj) {
trace("initObj.type: " + initObj.type);
switch (initObj.type) {
case "SmallCannon" :
new rr.train.weapons.SmallCannon(initObj);
break;
case "MediumCannon" :
new rr.train.weapons.MediumCannon(initObj);
break;
case "LargeCannon" :
new rr.train.weapons.LargeCannon(initObj);
break;
case "HugeCannon" :
new rr.train.weapons.HugeCannon(initObj);
break;
case "ColeCart" :
new rr.train.ColeCart(initObj);
break;
case "OilTank" :
new rr.train.OilTank(initObj);
break;
case "PowerGenerator" :
new rr.train.PowerGenerator(initObj);
break;
case "BunkerBuster" :
new rr.train.weapons.BunkerBuster(initObj);
break;
case "RailRockets" :
new rr.train.weapons.RailRockets(initObj);
break;
case "EMP" :
new rr.train.weapons.EMP(initObj);
break;
case "SmallFastCannon" :
new rr.train.weapons.SmallFastCannon(initObj);
break;
case "RocketLauncher" :
new rr.train.weapons.RocketLauncher(initObj);
}
}
static function setWeaponMargin(obj) {
var _local2 = obj.parent.length / rr.conf.Config.getObjectValue(obj.parent.linkId, "spaces");
obj.xmargin = (obj.position * _local2) + ((rr.conf.Config.getObjectValue(obj.linkId, "spaces") * _local2) / 2);
}
static function drawWeaponRange(obj, p1, p2, p3) {
var _local2 = obj.range_mc;
if (Key.isDown(32)) {
if (!_local2) {
_local2 = (obj.range_mc = _global.stage.createEmptyMovieClip("range_" + obj.uid, _global.stage.getNextHighestDepth()));
_local2.blendMode = "overlay";
_local2._alpha = 50;
}
_local2.clear();
_local2.lineStyle(1, 16776960);
_local2.moveTo(p1.x - _global.camera.left, p1.y - _global.camera.top);
_local2.beginFill(16776960);
_local2.lineTo(p2.x - _global.camera.left, p2.y - _global.camera.top);
_local2.lineTo(p3.x - _global.camera.left, p3.y - _global.camera.top);
_local2.moveTo(p1.x - _global.camera.left, p1.y - _global.camera.top);
_local2.endFill();
_local2._visible = true;
} else {
_local2._visible = false;
}
}
static function drawLocLight(obj) {
var _local2 = obj.light_mc;
if (!_local2) {
return(undefined);
}
_local2._x = obj.x - _global.camera.left;
_local2._y = obj.y - _global.camera.top;
var _local4 = {x:0, y:0};
var _local6 = {x:Math.cos(((-(obj.rotLight - 10)) * Math.PI) / 180) * 500, y:Math.sin(((-(obj.rotLight - 10)) * Math.PI) / 180) * 500};
var _local5 = {x:Math.cos(((-(obj.rotLight + 10)) * Math.PI) / 180) * 500, y:Math.sin(((-(obj.rotLight + 10)) * Math.PI) / 180) * 500};
_local2.clear();
_local2.lineStyle(1, 16776960);
_local2.moveTo(_local4.x, _local4.y);
_local2.beginFill(16776960);
_local2.lineTo(_local6.x, _local6.y);
_local2.lineTo(_local5.x, _local5.y);
_local2.moveTo(_local4.x, _local4.y);
_local2.endFill();
}
}
Symbol 3390 MovieClip [__Packages.rr.rail.RailConnection] Frame 0
class rr.rail.RailConnection extends rr.BaseClass
{
var id, x, y, ang, s, ins, outs, curin, curout, rswitch, block;
function RailConnection (initObj) {
super();
id = initObj.id;
x = initObj.x;
y = initObj.y;
ang = initObj.a;
s = initObj.s;
ins = [];
outs = [];
}
function init() {
curin = ins[0];
curout = outs[0];
if (s) {
rswitch = new rr.rail.RailSwitch(this);
delete s;
}
var _local3 = ins.length;
var _local2 = 0;
while (_local2 < _local3) {
_local2++;
}
_local3 = outs.length;
_local2 = 0;
while (_local2 < _local3) {
_local2++;
}
}
function get railin() {
if ((!rswitch) || (rswitch.inpositions.length <= 1)) {
return(_global.map["rs" + curin]);
}
return(rswitch.__get__railin());
}
function get railout() {
if ((!rswitch) || (rswitch.outpositions.length <= 1)) {
return(_global.map["rs" + curout]);
}
return(rswitch.__get__railout());
}
function checkBlocks() {
if (ins.length == 0) {
block = new rr.rail.RailBlock(this, "in");
var _local4 = outs.length;
var _local3 = 0;
while (_local3 < _local4) {
_global.map["rs" + outs[_local3]].inblock = true;
_local3++;
}
return(undefined);
}
if (outs.length == 0) {
block = new rr.rail.RailBlock(this, "out");
var _local4 = ins.length;
var _local3 = 0;
while (_local3 < _local4) {
_global.map["rs" + ins[_local3]].outblock = true;
_local3++;
}
}
}
function updateObjectRail(obj, checkprev) {
var _local4 = getNextRail(obj, checkprev);
obj.rsprev = obj.rs;
obj.rsfactorprev = obj.rsfactor;
obj.rs = _local4.rs;
obj.d = _local4.d;
if (_local4.changefactor) {
obj.rsfactor = -obj.rsfactor;
obj.flip = !obj.flip;
obj.fliprot = (obj.flip ? 180 : 0);
}
if ((obj == _global.loc) || (obj == _global.train.lastsegment)) {
if (_global.loc != _global.train.lastsegment) {
if (obj.rsprev.rcs != obj.rsprev.rce) {
if (isOut(obj.rsprev)) {
if (rswitch) {
rswitch.setOutPosition(obj.rsprev);
} else {
curout = obj.rsprev.id;
}
} else if (rswitch) {
rswitch.setInPosition(obj.rsprev);
} else {
curin = obj.rsprev.id;
}
}
if (rswitch) {
rswitch.toggleLock();
}
}
}
}
function getNextRail(obj, checkprev) {
var _local3;
var _local4;
var _local6;
var _local5;
var _local8;
var _local10;
var _local7 = ((obj.d > obj.rs.length) ? (obj.d - obj.rs.length) : (Math.abs(obj.d)));
_local6 = obj.rs.rcs == this;
if (obj.rs.rcs == obj.rs.rce) {
if (obj.d < 0) {
_local6 = true;
_local4 = (obj.rs.eo ? false : true);
} else {
_local6 = false;
_local4 = (obj.rs.eo ? true : false);
}
} else {
_local4 = isOut(obj.rs);
}
_local3 = (_local4 ? (railin) : (railout));
if (_local3.rcs == _local3.rce) {
if (_local4) {
_local5 = (_local3.eo ? true : false);
} else {
_local5 = (_local3.eo ? false : true);
}
} else {
_local5 = _local3.rcs == this;
}
if (_local5) {
_local8 = _local7;
} else {
_local8 = _local3.length - _local7;
}
if (_local3.rcs != _local3.rce) {
if (_local6 == _local5) {
_local10 = true;
}
}
return({rs:_local3, d:_local8, changefactor:_local10});
}
function isOut(rs) {
var _local3 = outs.length;
var _local2 = 0;
while (_local2 < _local3) {
if (outs[_local2] == rs.id) {
return(true);
}
_local2++;
}
return(false);
}
}
Symbol 3391 MovieClip [__Packages.rr.rail.RailSwitch] Frame 0
class rr.rail.RailSwitch
{
var linkId, rc, dfeel, inpos, inpositions, outpos, outpositions, x, y, view, forceview, locked, mov;
function RailSwitch (prc) {
linkId = "RailSwitch";
rc = prc;
dfeel = 25;
init();
}
function get railin() {
return(_global.map["rs" + inpositions[inpos].rsid]);
}
function get railout() {
return(_global.map["rs" + outpositions[outpos].rsid]);
}
function init() {
var _local9 = [];
x = rc.s.x;
y = rc.s.y;
inpos = (outpos = 0);
inpositions = [];
outpositions = [];
var _local7 = rc.ins.length;
var _local4 = 0;
while (_local4 < _local7) {
var _local3 = 0;
while (_local3 <= 7) {
if (rc.s.p[_local3] > 0) {
if (rc.ins[_local4] == rc.s.p[_local3]) {
inpositions.push({dir:getDir(_local3), rsid:rc.s.p[_local3]});
}
}
_local3++;
}
_local4++;
}
_local7 = rc.outs.length;
_local4 = 0;
while (_local4 < _local7) {
var _local3 = 0;
while (_local3 <= 7) {
if (rc.s.p[_local3] > 0) {
if (rc.outs[_local4] == rc.s.p[_local3]) {
outpositions.push({dir:getDir(_local3), rsid:rc.s.p[_local3]});
}
}
_local3++;
}
_local4++;
}
view = ((outpositions.length > 0) ? "out" : "in");
forceview = false;
locked = false;
var _local8 = _global.map.getCellByPos(x, y);
_local8.statics.push(this);
}
function setOutPosition(rs) {
var _local3 = outpositions.length;
var _local2 = 0;
while (_local2 < _local3) {
if (outpositions[_local2].rsid == rs.id) {
outpos = _local2;
break;
}
_local2++;
}
if (view == "out") {
setArrow();
}
}
function setInPosition(rs) {
var _local3 = inpositions.length;
var _local2 = 0;
while (_local2 < _local3) {
if (inpositions[_local2].rsid == rs.id) {
inpos = _local2;
break;
}
_local2++;
}
if (view == "in") {
setArrow();
}
}
function toggleLock() {
locked = !locked;
setArrow();
if (locked) {
rr.utils.Delegate.callDelayed(this, checkLock, 1500);
}
}
function checkLock() {
if (!locked) {
return(undefined);
}
if (_global.game.levelended) {
return(undefined);
}
if (_global.train.isInRange(rc.x, rc.y, dfeel)) {
rr.utils.Delegate.callDelayed(this, checkLock, 1500);
return(undefined);
}
locked = false;
setArrow();
}
function toggle() {
if (locked) {
return(undefined);
}
if (rc.id == 6) {
_global.guide.showGuide(15);
}
if (view == "out") {
outpos = outpos + 1;
if (outpos >= outpositions.length) {
outpos = 0;
if (!forceview) {
if (inpositions.length > 0) {
view = "in";
inpos = 0;
}
}
}
} else {
inpos = inpos + 1;
if (inpos >= inpositions.length) {
inpos = 0;
if (!forceview) {
if (outpositions.length > 0) {
view = "out";
outpos = 0;
}
}
}
}
setArrow();
}
function setArrow() {
if (locked) {
mov.arrow_mc.gotoAndStop("locked");
} else if (view == "out") {
mov.arrow_mc.gotoAndStop(outpositions[outpos].dir);
} else {
mov.arrow_mc.gotoAndStop(inpositions[inpos].dir);
}
}
function getDir(i) {
switch (i) {
case 0 :
return("n");
case 1 :
return("ne");
case 2 :
return("e");
case 3 :
return("se");
case 4 :
return("s");
case 5 :
return("sw");
case 6 :
return("w");
case 7 :
return("nw");
}
}
function update() {
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 425) {
render();
} else {
clearMov();
}
}
function render() {
if (!mov) {
var _local3 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
mov = _global.stage.attachMovie(linkId, rr.utils.StringUtils.getUniqueName(), _local3);
mov._alpha = 80;
setArrow();
mov.onRelease = rr.utils.Delegate.create(this, toggle);
mov.onRollOver = rr.utils.Delegate.create(_global.aim, _global.aim.hide, this);
mov.onRollOut = (mov.onDragOut = rr.utils.Delegate.create(_global.aim, _global.aim.show, this));
locked = false;
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
}
function clearMov() {
mov.removeMovieClip();
delete mov;
}
}
Symbol 3392 MovieClip [__Packages.rr.rail.RailSegment] Frame 0
class rr.rail.RailSegment
{
var id, type, rcs, rce, eo, t, ang, length, radius, dir;
function RailSegment (initObj) {
id = initObj.id;
type = (initObj.r ? "arc" : "line");
rcs = _global.map["rc" + initObj.s];
rce = _global.map["rc" + initObj.e];
eo = initObj.eo;
t = initObj.t;
if (t) {
rcs.ins.push(id);
ang = rcs.ang + 180;
} else {
rcs.outs.push(id);
ang = rcs.ang;
}
if (eo) {
rce.outs.push(id);
} else {
rce.ins.push(id);
}
if (type == "line") {
length = rr.utils.MathUtils.getDistance(rcs.x, rcs.y, rce.x, rce.y);
}
if (type == "arc") {
radius = initObj.r;
dir = initObj.d;
length = initObj.l;
}
}
function getPoint(d) {
if (d > length) {
d = length;
}
if (d < 0) {
d = 0;
}
if (type == "line") {
var _local5 = rr.utils.MathUtils.formatAngle(ang);
var _local9 = rcs.x + (cos((_local5 * pi) / 180) * d);
var _local8 = rcs.y - (sin((_local5 * pi) / 180) * d);
var _local7 = -_local5;
return({x:_local9, y:_local8, rot:_local7});
}
if (type == "arc") {
var _local5 = rr.utils.MathUtils.formatAngle(ang - 90);
var _local4 = new flash.geom.Point((-dir) * (radius * cos((_local5 * pi) / 180)), dir * (radius * sin((_local5 * pi) / 180)));
var _local6 = (rr.utils.MathUtils.formatAngle(ang - 90) * pi) / 180;
var _local3 = _local6 - (((-dir) * d) / radius);
var _local9 = (rcs.x + _local4.x) + ((dir * radius) * cos(_local3));
var _local8 = (rcs.y + _local4.y) - ((dir * radius) * sin(_local3));
var _local7 = -rr.utils.MathUtils.formatAngle((_local3 / (pi / 180)) + 90);
return({x:_local9, y:_local8, rot:_local7});
}
}
function getCatchPoint(obj, dcast) {
var _local4 = (((obj.speed * obj.rsfactor) > 0) ? (obj.d + dcast) : (obj.d - dcast));
var _local1 = {rs:obj.rs, d:_local4, rsfactor:obj.rsfactor, speed:obj.speed};
while ((_local1.d > _local1.rs.length) || (_local1.d < 0)) {
var _local2 = (((_local1.speed * _local1.rsfactor) > 0) ? (_local1.rs.rce) : (_local1.rs.rcs));
_local2.updateObjectRail(_local1);
}
return(_local1.rs.getPoint(_local1.d));
}
var pi = Math.PI;
var cos = Math.cos;
var acos = Math.acos;
var sin = Math.sin;
var asin = Math.asin;
var atan2 = Math.atan2;
}
Symbol 3393 MovieClip [__Packages.rr.rail.RailBlock] Frame 0
class rr.rail.RailBlock
{
var linkId, rc, dir, dfeel, x, y, rot, iscrashed, crashrotspeed, crashdir, xspeed, yspeed, mov;
function RailBlock (prc, pdir) {
linkId = "RailBlock";
rc = prc;
dir = pdir;
dfeel = 15;
init();
}
function init() {
x = rc.x;
y = rc.y;
if (rc.id == 10000) {
_global.endblock = this;
}
rot = -rr.utils.MathUtils.formatAngle(rc.ang);
if (dir == "out") {
rot = rot + 180;
}
var _local3 = _global.map.getCellByPos(x, y);
_local3.statics.push(this);
}
function update() {
if (iscrashed) {
rot = rot + (crashdir * crashrotspeed);
crashrotspeed = crashrotspeed * 0.95;
x = x + xspeed;
y = y + yspeed;
xspeed = xspeed * 0.95;
yspeed = yspeed * 0.95;
if (Math.abs(xspeed) < 0.05) {
xspeed = 0;
}
if (Math.abs(yspeed) < 0.05) {
yspeed = 0;
}
if ((xspeed == 0) && (yspeed == 0)) {
iscrashed = false;
}
}
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
render();
} else if (mov) {
clearMov();
}
}
function render() {
if (!mov) {
var _local4 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
var _local3 = linkId;
if (_global.map.nightmap) {
_local3 = _local3 + "Night";
} else if (_global.endblock == this) {
_local3 = _local3 + "Light";
}
mov = _global.stage.attachMovie(_local3, rr.utils.StringUtils.getUniqueName(), _local4);
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov._rotation = rot;
}
function clearMov() {
mov.removeMovieClip();
delete mov;
}
function crash(obj) {
xspeed = obj.xspeed;
yspeed = obj.yspeed;
crashdir = -_global.train.crashRotDir;
crashrotspeed = _global.train.crashRotSpeed;
iscrashed = true;
}
}
Symbol 3394 MovieClip [__Packages.rr.train.TrainSegment] Frame 0
class rr.train.TrainSegment extends rr.BaseClass
{
var uid, initObj, bobj, length, linkId, price, weight, killlevel, destroydelay, explodesound, fliprot, addEventListener, mov, x, y, rot, isRendered, isdead, damage, events, isexploded, speed, tspeed, prev, d, rs, rsfactor, oldX, oldY, oldRot, affirmed, next;
function TrainSegment () {
super();
}
function init() {
uid = initObj.uid;
bobj = initObj.bobj;
length = rr.conf.Config.getObjectValue(linkId, "length");
price = rr.conf.Config.getObjectValue(linkId, "price");
weight = rr.conf.Config.getObjectValue(linkId, "weight");
killlevel = rr.conf.Config.getObjectValue(linkId, "killlevel");
destroydelay = rr.conf.Config.getObjectValue(linkId, "destroydelay");
explodesound = rr.conf.Config.getObjectValue(linkId, "explodesound");
fliprot = 0;
addEventListener("onTrainObjectDestroy", _global.trainbuild);
}
function render() {
if (!mov) {
createMov();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov.base_mc._rotation = rot + fliprot;
}
function checkRender() {
isRendered = false;
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
isRendered = true;
render();
} else if (mov) {
clearMov();
}
}
function createMov() {
var _local3 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
mov = _global.stage.attachMovie(linkId, rr.utils.StringUtils.getUniqueName(), _local3, {parent:this});
checkNightMode();
}
function clearMov() {
mov.removeMovieClip();
delete mov;
}
function checkNightMode() {
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov.base_mc, 0, 90);
}
}
function addDamage(dmg) {
if (isdead) {
return(undefined);
}
if (!dmg) {
return(undefined);
}
damage = damage + dmg;
if (damage < 0) {
damage = 0;
}
if (damage >= killlevel) {
die();
}
events.dispatchEvent({type:"onDamage", target:this});
}
function die() {
}
function explode() {
if (isexploded) {
return(undefined);
}
isexploded = true;
_global.sounds.playSound(explodesound);
render();
mov.gotoAndPlay("explode");
rr.utils.Delegate.callDelayed(this, destroy, destroydelay);
}
function destroy() {
trace("destroy: " + linkId);
mov.removeMovieClip();
events.dispatchEvent({type:"onTrainObjectDestroy", target:this});
_global.train.removeSegment(this);
}
function blockStop(b) {
if (_global.train.isCrashed) {
return(undefined);
}
if (Math.abs(speed) > 1.6) {
if (speed < 0) {
_global.train.crash(null, 0.5);
} else {
_global.train.crash(null, 2);
}
b.crash(this);
return(undefined);
}
speed = (tspeed = (_global.loc.speed = (_global.loc.tspeed = 0)));
_global.control.fullStop();
if (prev) {
prev.blockStop();
}
if (b == _global.endblock) {
_global.game.checkEndLevel();
}
}
function reAffirm() {
if (prev) {
d = prev.d - (prev.rsfactor * (((prev.length / 2) + (length / 2)) - 1));
rs = prev.rs;
rsfactor = prev.rsfactor;
var _local3;
if (d < 0) {
_local3 = rs.rcs;
_local3.updateObjectRail(this, true);
} else if (d > rs.length) {
_local3 = rs.rce;
_local3.updateObjectRail(this, true);
}
var _local2 = rs.getPoint(d);
if (_local2) {
x = (oldX = _local2.x);
y = (oldY = _local2.y);
rot = (oldRot = _local2.rot);
}
affirmed = true;
}
if (next) {
next.reAffirm();
}
}
function getWagonPointBehind(len) {
var _local2 = new Object();
_local2.d = d - (rsfactor * (((length / 2) + (len / 2)) - 1));
_local2.rs = rs;
_local2.rsfactor = rsfactor;
var _local3;
if (_local2.d < 0) {
_local3 = _local2.rs.rcs;
_local3.updateObjectRail(_local2, true);
} else if (_local2.d > _local2.rs.length) {
_local3 = _local2.rs.rce;
_local3.updateObjectRail(_local2, true);
}
var _local4 = _local2.rs.getPoint(_local2.d);
return(_local4);
}
}
Symbol 3395 MovieClip [__Packages.rr.train.Locomotive] Frame 0
class rr.train.Locomotive extends rr.train.TrainSegment
{
var segmentType, rs, d, length, rsfactor, speedmax, linkId, speedmin, maxload, adef, afullstop, crashFactor, fueltype, fueldef, fuelcons, fuelprice, rotspeed, tfire, gunsounds, hornsound, dfeel, speed, tspeed, xspeed, yspeed, prevspeed, stepidx, x, y, a, damage, rot, rotBarrel, fuel, stepsounds, loopsoundid, laststepped, bcount, isShooting, events, loopsound, loclight_mc, rotLight, fliprot, mov, cos, pi, sin, atan2, killlevel, dmgwarningplayed, isdead, explode;
function Locomotive () {
super();
}
function init() {
_global.loc = this;
segmentType = "loc";
super.init();
rs = _global.map.rs1;
d = length / 2;
rsfactor = 1;
speedmax = rr.conf.Config.getObjectValue(linkId, "maxspeed");
speedmin = rr.conf.Config.getObjectValue(linkId, "minspeed");
maxload = rr.conf.Config.getObjectValue(linkId, "maxload");
adef = rr.conf.Config.getObjectValue(linkId, "acceleration");
afullstop = rr.conf.Config.getObjectValue(linkId, "accelerationfullstop");
crashFactor = rr.conf.Config.getObjectValue(linkId, "crashfactor");
fueltype = rr.conf.Config.getObjectValue(linkId, "fueltype");
fueldef = rr.conf.Config.getObjectValue(linkId, "fuel");
fuelcons = rr.conf.Config.getObjectValue(linkId, "fuelconsumption");
fuelprice = rr.conf.Config.getObjectValue(linkId, "fuelprice");
rotspeed = rr.conf.Config.getObjectValue(linkId, "rotationspeed");
tfire = rr.conf.Config.getObjectValue(linkId, "shootinginterval");
gunsounds = rr.conf.Config.getObjectValue(linkId, "gunsounds");
hornsound = rr.conf.Config.getObjectValue(linkId, "hornsound");
dfeel = length / 2;
speed = (tspeed = (xspeed = (yspeed = (prevspeed = (stepidx = 0)))));
x = (y = 0);
a = adef;
damage = 0;
rot = (rotBarrel = 0);
fuel = fueldef;
if (fueltype == "electric") {
stepsounds = ["Train 1and2 step 2.wav"];
loopsoundid = "Train 5min.wav";
} else {
stepsounds = ["Train 1and2 step 1.wav", "Train 1and2 step 2.wav"];
}
laststepped = getTimer();
var _local4 = 1;
while (_local4 <= bcount) {
this["rotbarrel" + _local4] = 0;
this["bs" + _local4] = rr.conf.Config.getObjectValue(linkId, "rotationspeed" + _local4);
this["tf" + _local4] = rr.conf.Config.getObjectValue(linkId, "shootinginterval" + _local4);
this["lf" + _local4] = getTimer();
_local4++;
}
_global.aim.addEventListener("onAimDown", this);
_global.aim.addEventListener("onAimUp", this);
_global.map.addCompoundListeners();
_global.train.segments.push(this);
_global.train.onConnectionChanged();
}
function update() {
if (_global.leveltime) {
_global.leveltime = _global.leveltime + 40;
}
aimAtTarget();
if (isShooting) {
fire();
}
if (speed != tspeed) {
speed = ((Math.abs(speed - tspeed) <= a) ? (tspeed) : (((tspeed > speed) ? (speed + a) : (speed - a))));
events.dispatchEvent({target:this, type:"onLocAccel"});
}
_global.control.displayspeed = speed;
if (speed == 0) {
if (loopsound.isplaying) {
loopsound.isplaying = false;
loopsound.sound.setVolume(0);
loopsound.sound.stop();
}
if (prevspeed != 0) {
trace("onLocStop: ");
events.dispatchEvent({target:this, type:"onLocStop"});
rr.utils.Delegate.callDelayed(this, checkEnabled, 1000);
}
} else {
if (!_global.leveltime) {
_global.leveltime = 40;
_global.guide.showGuide(14);
}
if (!_global.train.isCrashed) {
var _local3;
if (fueltype == "electric") {
_local3 = Math.min(Math.abs(1200 / speed), 1000);
_local3 = Math.round(Math.max(_local3, 250));
} else {
_local3 = Math.min(Math.abs(450 / speed), 1000);
_local3 = Math.max(_local3, 100);
}
if ((getTimer() - laststepped) > _local3) {
laststepped = getTimer();
if (fueltype == "electric") {
_global.sounds.playSound(stepsounds[0]);
} else {
_global.sounds.playSound(stepsounds[stepidx]);
stepidx = ((stepidx == 0) ? 1 : 0);
}
}
}
}
if (_global.train.crashEnded) {
_global.game.endLevel(false);
render();
} else if (_global.train.isCrashed) {
rr.train.TrainUtils.updateCrashPosition(this);
} else {
rr.train.TrainUtils.updateRailPosition(this);
}
prevspeed = speed;
fuel = fuel - Math.abs(((fuelcons * _global.train.load) / 1000) * speed);
if (fuel <= 0) {
fuel = 0;
tspeed = 0;
_global.control.selectLight(0);
}
events.dispatchEvent({target:this, type:"onFuelUpdate"});
events.dispatchEvent({target:this, type:"onUpdate"});
if (loclight_mc) {
rotLight = rr.utils.MathUtils.formatAngle(rotLight + 2);
}
}
function render() {
super.render();
mov.lights_mc._rotation = rot + fliprot;
var _local3 = 1;
while (_local3 <= bcount) {
mov[("barrel" + _local3) + "_mc"]._x = cos(((-(rot + fliprot)) * pi) / 180) * this["bxdef" + _local3];
mov[("barrel" + _local3) + "_mc"]._y = (-sin(((-(rot + fliprot)) * pi) / 180)) * this["bxdef" + _local3];
mov[("barrel" + _local3) + "_mc"]._rotation = this["rotbarrel" + _local3];
_local3++;
}
}
function aimAtTarget() {
var _local3 = 1;
while (_local3 <= bcount) {
this["bx" + _local3] = x + (cos(((-(rot + fliprot)) * pi) / 180) * this["bxdef" + _local3]);
this["by" + _local3] = y - (sin(((-(rot + fliprot)) * pi) / 180) * this["bxdef" + _local3]);
var _local4 = (180 * atan2(_global.aim.mov._y - (this["by" + _local3] - _global.camera.top), _global.aim.mov._x - (this["bx" + _local3] - _global.camera.left))) / pi;
var _local5 = (this["rotbarrel" + _local3] + 360) % 360;
_local4 = (_local4 + 360) % 360;
if ((_local4 - _local5) > 180) {
_local4 = _local4 - 360;
} else if ((_local4 - _local5) < -180) {
_local4 = _local4 + 360;
}
_local5 = _local5 + ((this["bs" + _local3] * (_local4 - _local5)) / 100);
this["rotbarrel" + _local3] = rr.utils.MathUtils.formatAngle2(_local5);
_local3++;
}
}
function setTargetSpeed(ts) {
a = adef;
tspeed = ts;
if (speed == 0) {
if (tspeed != 0) {
events.dispatchEvent({target:this, type:"onLocAccel"});
}
}
}
function onFullStop(evtObj) {
a = afullstop;
tspeed = 0;
}
function addDamage(dmg) {
super.addDamage(dmg);
var _local4 = (100 * damage) / killlevel;
if (_local4 < 80) {
dmgwarningplayed = false;
}
if (!dmgwarningplayed) {
if (_local4 > 90) {
_global.sounds.playSound("Warning Critical Damage.wav");
}
dmgwarningplayed = true;
}
}
function die() {
if (isdead) {
return(undefined);
}
isdead = true;
isShooting = false;
onFullStop();
damage = killlevel;
events.dispatchEvent({type:"onTrainTargetDie", target:this});
explode();
}
function destroy() {
_global.game.endLevel(false);
}
function onAimDown() {
if (isdead) {
return(undefined);
}
if (_global.aim.mode != "crosshair") {
return(undefined);
}
isShooting = true;
}
function onAimUp() {
isShooting = false;
}
function fire() {
var _local3 = 1;
while (_local3 <= bcount) {
if ((getTimer() - this["lf" + _local3]) >= this["tf" + _local3]) {
this["lf" + _local3] = getTimer();
mov[("barrel" + _local3) + "_mc"].gotoAndPlay("shoot");
_global.sounds.playSound(gunsounds[Math.round(Math.random() * (gunsounds.length - 1))]);
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:this["bx" + _local3], y:this["by" + _local3], rot:this["rotbarrel" + _local3]});
}
_local3++;
}
}
function addFuel(f) {
fuel = fuel + f;
if (fuel < 0) {
fuel = 0;
}
}
function checkNightMode() {
if (_global.map.nightmap) {
var _local4 = 1;
while (_local4 <= bcount) {
rr.utils.ClipUtils.setTint(mov[("barrel" + _local4) + "_mc"].base_mc, 0, 90);
_local4++;
}
super.checkNightMode();
} else {
mov.lights_mc._visible = false;
}
}
function checkEnabled() {
if (!_global.control.compound_mc._visible) {
if (fuel <= 0) {
var _local4 = rr.conf.Config.getObjectValue("Wagon2", "weight");
var _local3 = rr.conf.Config.getObjectValue("Wagon2", "price");
switch (fueltype) {
case "oil" :
_local4 = _local4 + rr.conf.Config.getObjectValue("OilTank", "weight");
_local3 = _local3 + rr.conf.Config.getObjectValue("OilTank", "price");
break;
case "coal" :
_local4 = _local4 + rr.conf.Config.getObjectValue("ColeCart", "weight");
_local3 = _local3 + rr.conf.Config.getObjectValue("ColeCart", "price");
break;
case "electric" :
_local4 = _local4 + rr.conf.Config.getObjectValue("PowerGenerator", "weight");
_local3 = _local3 + rr.conf.Config.getObjectValue("PowerGenerator", "price");
}
if ((maxload - _global.train.buildload) < _local4) {
_global.control.showDisabledMenu("nocap");
} else if (_global.player.cash < _local3) {
_global.control.showDisabledMenu("nocash");
}
}
}
}
}
Symbol 3396 MovieClip [__Packages.rr.ammo.AmmoUtils] Frame 0
class rr.ammo.AmmoUtils
{
function AmmoUtils () {
}
static function createAmmo(initObj) {
var _local2 = rr.utils.StringUtils.getUniqueName();
initObj.uid = _local2;
switch (initObj.type) {
case "SaddleTank" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoSaddleTank(initObj);
break;
case "BulpFrog" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoBulpFrog(initObj);
break;
case "Rhino" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoRhino(initObj);
break;
case "Loewy" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoLoewy(initObj);
break;
case "SuperChief" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoSuperChief(initObj);
break;
case "Dragon" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoDragon(initObj);
break;
case "ICE" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoICE(initObj);
break;
case "Pennsylvania" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoPennsylvania(initObj);
break;
case "SmallCannon" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoSmallCannon(initObj);
break;
case "MediumCannon" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoMediumCannon(initObj);
break;
case "LargeCannon" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoLargeCannon(initObj);
break;
case "HugeCannon" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoHugeCannon(initObj);
break;
case "BunkerBuster" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoBunkerBuster(initObj);
break;
case "RailRockets" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoRailRockets(initObj);
break;
case "SmallFastCannon" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoSmallFastCannon(initObj);
break;
case "RocketLauncher" :
_global.stage["ammo_" + _local2] = new rr.ammo.Heatseeker(initObj);
break;
case "PotTank" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoPotTank(initObj);
break;
case "OldJeep" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoOldJeep(initObj);
break;
case "GunTruck" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoGunTruck(initObj);
break;
case "ArmoredJeep" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoArmoredJeep(initObj);
break;
case "Basilisk" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoBasilisk(initObj);
break;
case "Bunker" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoBunker(initObj);
break;
case "GatlingSingle" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoGatlingSingle(initObj);
break;
case "GatlingDouble" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoGatlingDouble(initObj);
break;
case "Abrahams" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoAbrahams(initObj);
break;
case "Elephant" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoElephant(initObj);
break;
case "Panther" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoPanther(initObj);
break;
case "Rocketeer" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoRocketeer(initObj);
break;
case "FockeWolf" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoFockeWolf(initObj);
break;
case "B2" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoB2(initObj);
break;
case "C47" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoC47(initObj);
break;
case "WartHog" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoWartHog(initObj);
break;
case "MesserSchmidt" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoMesserSchmidt(initObj);
break;
case "BellHuey" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoBellHuey(initObj);
break;
case "Apache" :
_global.stage["ammo_" + _local2] = new rr.ammo.AmmoApache(initObj);
}
}
}
Symbol 3397 MovieClip [__Packages.rr.ammo.Ammo] Frame 0
class rr.ammo.Ammo extends rr.BaseClass
{
var uid, initObj, rot, x, mov, y, linkId;
function Ammo () {
super();
}
function init() {
uid = initObj.uid;
rot = initObj.rot;
_global.stage.ammo.push(uid);
}
function render() {
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov._rotation = rot;
}
function createMov() {
var _local3 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
mov = _global.stage.attachMovie(linkId, rr.utils.StringUtils.getUniqueName(), _local3, {parent:this});
render();
}
function clearMov() {
mov.removeMovieClip();
delete mov;
}
function destroy() {
mov.removeMovieClip();
_global.stage.removeAmmo(this);
}
}
Symbol 3398 MovieClip [__Packages.rr.ammo.AmmoBullet] Frame 0
class rr.ammo.AmmoBullet extends rr.ammo.Ammo
{
var x, sx, initObj, y, sy, cellId, speed, parentLinkId, range, damage, exploded, createMov, render, cos, pi, rot, sin, destroy, mov, dfeel;
function AmmoBullet () {
super();
}
function init() {
super.init();
x = (sx = initObj.x);
y = (sy = initObj.y);
var _local4 = _global.map.getCellByPos(x, y);
cellId = _local4.id;
speed = rr.conf.Config.getObjectValue(parentLinkId, "ammospeed");
range = rr.conf.Config.getObjectValue(parentLinkId, "ammorange");
damage = rr.conf.Config.getObjectValue(parentLinkId, "ammodamage");
exploded = false;
createMov();
}
function update() {
if (exploded) {
render();
return(undefined);
}
x = x + (cos(((-rot) * pi) / 180) * speed);
y = y - (sin(((-rot) * pi) / 180) * speed);
var _local5 = _global.map["cell_" + cellId];
if (((x < _local5.left) || (x >= _local5.right)) || ((y < _local5.top) | (y >= _local5.bottom))) {
_local5 = _global.map.getCellByPos(x, y);
cellId = _local5.id;
}
var _local6 = _local5.enemies.length;
var _local4 = 0;
while (_local4 < _local6) {
var _local3 = _global.stage["enemy_" + _local5.enemies[_local4]];
if (_local3.isdead) {
} else if (checkHit(_local3)) {
_local3.addDamage(damage);
destroy();
return(undefined);
}
_local4++;
}
_local6 = _global.stage.enemies_dyn.length;
_local4 = 0;
while (_local4 < _local6) {
var _local3 = _global.stage["enemy_" + _global.stage.enemies_dyn[_local4]];
if (_local3.isdead) {
} else if (checkHit(_local3)) {
_local3.addDamage(damage);
destroy();
return(undefined);
}
_local4++;
}
_local6 = _global.stage.afs.length;
_local4 = 0;
while (_local4 < _local6) {
var _local3 = _global.stage["enemy_" + _global.stage.afs[_local4]];
if (_local3.isdead) {
} else if (checkHit(_local3)) {
_local3.addDamage(damage);
destroy();
return(undefined);
}
_local4++;
}
_local6 = _global.stage.rbs.length;
_local4 = 0;
while (_local4 < _local6) {
var _local3 = _global.stage["enemy_" + _global.stage.rbs[_local4]];
if (_local3.isdead) {
} else if (checkHit(_local3)) {
_local3.addDamage(damage);
destroy();
return(undefined);
}
_local4++;
}
if (rr.utils.MathUtils.getDistance(x, y, sx, sy) >= range) {
exploded = true;
mov.gotoAndPlay("explode");
var _local7 = rr.conf.Config.getObjectValue(parentLinkId, "ammoduration");
rr.utils.Delegate.callDelayed(this, destroy, _local7);
}
render();
}
function checkHit(e) {
if (e.isdead) {
}
if (rr.utils.MathUtils.getDistance(x, y, e.x, e.y) < (e.dfeel + dfeel)) {
e.render();
return(e.mov.hitTest(x - _global.camera.left, y - _global.camera.top, true));
}
}
}
Symbol 3399 MovieClip [__Packages.rr.ammo.AmmoSaddleTank] Frame 0
class rr.ammo.AmmoSaddleTank extends rr.ammo.AmmoBullet
{
var linkId, parentLinkId, initObj, dfeel, init;
function AmmoSaddleTank (iObj) {
super();
linkId = "AmmoSaddleTank";
parentLinkId = "SaddleTank";
initObj = iObj;
dfeel = 3.5;
init();
}
}
Symbol 3400 MovieClip [__Packages.rr.ammo.AmmoBulpFrog] Frame 0
class rr.ammo.AmmoBulpFrog extends rr.ammo.AmmoBullet
{
var linkId, parentLinkId, initObj, dfeel, init;
function AmmoBulpFrog (iObj) {
super();
linkId = "AmmoBulpFrog";
parentLinkId = "BulpFrog";
initObj = iObj;
dfeel = 3.5;
init();
}
}
Symbol 3401 MovieClip [__Packages.rr.ammo.AmmoRhino] Frame 0
class rr.ammo.AmmoRhino extends rr.ammo.AmmoBullet
{
var linkId, parentLinkId, initObj, dfeel, init;
function AmmoRhino (iObj) {
super();
linkId = "AmmoRhino";
parentLinkId = "Rhino";
initObj = iObj;
dfeel = 3.5;
init();
}
}
Symbol 3402 MovieClip [__Packages.rr.ammo.AmmoLoewy] Frame 0
class rr.ammo.AmmoLoewy extends rr.ammo.AmmoBullet
{
var linkId, parentLinkId, initObj, dfeel, init;
function AmmoLoewy (iObj) {
super();
linkId = "AmmoLoewy";
parentLinkId = "Loewy";
initObj = iObj;
dfeel = 3.5;
init();
}
}
Symbol 3403 MovieClip [__Packages.rr.ammo.AmmoSuperChief] Frame 0
class rr.ammo.AmmoSuperChief extends rr.ammo.AmmoBullet
{
var linkId, parentLinkId, initObj, dfeel, init;
function AmmoSuperChief (iObj) {
super();
linkId = "AmmoSuperChief";
parentLinkId = "SuperChief";
initObj = iObj;
dfeel = 4.5;
init();
}
}
Symbol 3404 MovieClip [__Packages.rr.ammo.AmmoDragon] Frame 0
class rr.ammo.AmmoDragon extends rr.ammo.AmmoBullet
{
var linkId, parentLinkId, initObj, dfeel, init;
function AmmoDragon (iObj) {
super();
linkId = "AmmoDragon";
parentLinkId = "Dragon";
initObj = iObj;
dfeel = 3.5;
init();
}
}
Symbol 3405 MovieClip [__Packages.rr.ammo.AmmoICE] Frame 0
class rr.ammo.AmmoICE extends rr.ammo.AmmoBullet
{
var linkId, parentLinkId, initObj, dfeel, init;
function AmmoICE (iObj) {
super();
linkId = "AmmoICE";
parentLinkId = "ICE";
initObj = iObj;
dfeel = 4.5;
init();
}
}
Symbol 3406 MovieClip [__Packages.rr.ammo.AmmoPennsylvania] Frame 0
class rr.ammo.AmmoPennsylvania extends rr.ammo.AmmoBullet
{
var linkId, parentLinkId, initObj, dfeel, init;
function AmmoPennsylvania (iObj) {
super();
linkId = "AmmoPennsylvania";
parentLinkId = "Pennsylvania";
initObj = iObj;
dfeel = 3.5;
init();
}
}
Symbol 3407 MovieClip [__Packages.rr.ammo.AmmoSmallCannon] Frame 0
class rr.ammo.AmmoSmallCannon extends rr.ammo.AmmoBullet
{
var linkId, parentLinkId, initObj, dfeel, init;
function AmmoSmallCannon (iObj) {
super();
linkId = "AmmoSmallCannon";
parentLinkId = "SmallCannon";
initObj = iObj;
dfeel = 3.5;
init();
}
}
Symbol 3408 MovieClip [__Packages.rr.ammo.AmmoMediumCannon] Frame 0
class rr.ammo.AmmoMediumCannon extends rr.ammo.AmmoBullet
{
var linkId, parentLinkId, initObj, dfeel, init;
function AmmoMediumCannon (iObj) {
super();
linkId = "AmmoMediumCannon";
parentLinkId = "MediumCannon";
initObj = iObj;
dfeel = 3.5;
init();
}
}
Symbol 3409 MovieClip [__Packages.rr.ammo.AmmoPlayerDefault] Frame 0
class rr.ammo.AmmoPlayerDefault extends rr.ammo.Ammo
{
var d, initObj, x, cos, pi, rot, y, sin, cell, damage, parentLinkId, rexplode, created, createMov, destroy;
function AmmoPlayerDefault () {
super();
}
function init() {
super.init();
d = initObj.d;
x = initObj.x + (cos((rot * pi) / 180) * d);
y = initObj.y - (sin((rot * pi) / 180) * d);
cell = _global.map.getCellByPos(x, y);
damage = rr.conf.Config.getObjectValue(parentLinkId, "ammodamage");
rexplode = rr.conf.Config.getObjectValue(parentLinkId, "explosionradius");
var _local4 = (40 * d) / rr.conf.Config.getObjectValue(parentLinkId, "ammospeed");
rr.utils.Delegate.callDelayed(this, createDelayed, _local4);
}
function update() {
if (!created) {
return(undefined);
}
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
super.render();
}
}
function createDelayed() {
created = true;
_global.sounds.playSound(rr.conf.Config.getObjectValue(parentLinkId, "ammosound"));
checkHit();
createMov();
var _local3 = rr.conf.Config.getObjectValue(parentLinkId, "ammoduration");
rr.utils.Delegate.callDelayed(this, destroy, _local3);
}
function checkHit() {
var _local4 = _global.stage.enemies.length;
var _local3 = 0;
while (_local3 < _local4) {
checkObjectHit(_global.stage["enemy_" + _global.stage.enemies[_local3]]);
_local3++;
}
if (cell) {
_local4 = cell.enemies.length;
_local3 = 0;
while (_local3 < _local4) {
checkObjectHit(_global.stage["enemy_" + cell.enemies[_local3]]);
_local3++;
}
}
_local4 = _global.stage.enemies_dyn.length;
_local3 = 0;
while (_local3 < _local4) {
checkObjectHit(_global.stage["enemy_" + _global.stage.enemies_dyn[_local3]]);
_local3++;
}
}
function checkObjectHit(obj) {
if (obj.isdead) {
return(undefined);
}
var _local3 = rr.utils.MathUtils.getDistance(obj.x, obj.y, x, y);
if (_local3 < rexplode) {
obj.addDamage(Math.round(damage / (1 + (_local3 / 25))));
}
}
}
Symbol 3410 MovieClip [__Packages.rr.MapCell] Frame 0
class rr.MapCell extends rr.BaseClass
{
var colId, rowId, width, height, id, left, right, top, bottom, center, statics, enemies, hasEnemies, bg_bmp, fg_bmp, hasfg, nb, da, rectX, rectY, rectW, rectH, pX, pY, isFocused, eiObjects;
function MapCell (cId, rId) {
super();
colId = cId;
rowId = rId;
init();
}
function init() {
width = 640;
height = 480;
id = (colId + "_") + rowId;
left = (colId - 1) * width;
right = colId * width;
top = (rowId - 1) * height;
bottom = rowId * height;
center = new flash.geom.Point(left + (width / 2), top + (height / 2));
statics = new Array();
enemies = new Array();
hasEnemies = true;
_global.camera.addEventListener("onCameraCellChange", this);
}
function createBackground() {
var _local4 = new flash.geom.Rectangle(left, top, width, height);
var _local3 = new flash.geom.Point(0, 0);
bg_bmp = new flash.display.BitmapData(width, height, true, 0);
bg_bmp.copyPixels(_global.map.map_bmp, _local4, _local3);
}
function createForeground() {
var _local4 = new flash.geom.Rectangle(left, top, width, height);
var _local3 = new flash.geom.Point(0, 0);
fg_bmp = new flash.display.BitmapData(width, height, true, 0);
fg_bmp.copyPixels(_global.map.fg_bmp, _local4, _local3);
hasfg = true;
}
function createNeighbours() {
nb = [];
nb[1] = (((colId > 1) && (rowId > 1)) ? (_global.map.getCell(((colId - 1) + "_") + (rowId - 1))) : undefined);
nb[2] = ((rowId > 1) ? (_global.map.getCell((colId + "_") + (rowId - 1))) : undefined);
nb[3] = (((colId < _global.map.cols) && (rowId > 1)) ? (_global.map.getCell(((colId + 1) + "_") + (rowId - 1))) : undefined);
nb[4] = ((colId > 1) ? (_global.map.getCell(((colId - 1) + "_") + rowId)) : undefined);
nb[5] = ((colId < _global.map.cols) ? (_global.map.getCell(((colId + 1) + "_") + rowId)) : undefined);
nb[6] = (((colId > 1) && (rowId < _global.map.rows)) ? (_global.map.getCell(((colId - 1) + "_") + (rowId + 1))) : undefined);
nb[7] = ((rowId < _global.map.rows) ? (_global.map.getCell((colId + "_") + (rowId + 1))) : undefined);
nb[8] = (((colId < _global.map.cols) && (rowId < _global.map.rows)) ? (_global.map.getCell(((colId + 1) + "_") + (rowId + 1))) : undefined);
}
function drawMiniMap() {
var _local4 = bg_bmp.clone();
var _local5 = new flash.geom.Matrix();
var _local3 = _global.minimap.scale;
_local5.scale(_local3, _local3);
_local5.translate(left * _local3, top * _local3);
_global.minimap.map_bmp.draw(_local4, _local5);
_local4.dispose();
}
function update() {
var _local7 = _global.camera.left;
var _local9 = _global.camera.right;
var _local8 = _global.camera.top;
var _local10 = _global.camera.bottom;
if ((((_local9 < left) || (_local7 > right)) || (_local10 < top)) || (_local8 > bottom)) {
da = undefined;
} else {
rectX = ((left > _local7) ? 0 : (_local7 - left));
rectY = ((top < _local8) ? 0 : (_local8 - top));
rectW = ((rectX == 0) ? (_local9 - left) : (right - _local7));
rectH = ((rectY == 0) ? (_local10 - top) : (bottom - _local8));
pX = ((rectX == 0) ? (_global.stage.width - rectW) : 0);
pY = ((rectY == 0) ? (_global.stage.height - rectH) : 0);
da = {rect:new flash.geom.Rectangle(rectX, rectY, rectW, rectH), point:new flash.geom.Point(pX, pY)};
_global.stage.bg_bmp.copyPixels(bg_bmp, da.rect, da.point, null, null, true);
if (hasfg) {
_global.stage.fg_bmp.copyPixels(fg_bmp, da.rect, da.point);
}
}
var _local11 = rr.utils.MathUtils.getDistance(center.x, center.y, _global.camera.x, _global.camera.y);
if (_local11 < 810) {
var _local6 = enemies.length;
var _local5 = 0;
while (_local5 < _local6) {
var _local3 = _global.stage["enemy_" + enemies[_local5]];
if (rr.utils.MathUtils.getDistance(_local3.x, _local3.y, _global.camera.x, _global.camera.y) < 550) {
_local3.update();
}
_local5++;
}
_local6 = statics.length;
_local5 = 0;
while (_local5 < _local6) {
var _local4 = statics[_local5];
if (rr.utils.MathUtils.getDistance(_local4.x, _local4.y, _global.camera.x, _global.camera.y) < 550) {
_local4.update();
}
_local5++;
}
}
if (isFocused) {
var _local6 = nb.length;
var _local5 = 0;
while (_local5 < _local6) {
nb[_local5].update();
_local5++;
}
}
}
function onCameraCellChange() {
if (isFocused) {
if (!hasEnemies) {
createEnemies();
}
return(undefined);
}
var _local3 = false;
var _local4 = nb.length;
var _local2 = 0;
while (_local2 < _local4) {
if (nb[_local2].isFocused) {
_local3 = true;
break;
}
_local2++;
}
if (_local3) {
if (!hasEnemies) {
createEnemies();
}
} else if (hasEnemies) {
removeEnemies();
}
}
function checkFocus(x, y) {
if ((((x >= left) && (x < right)) && (y >= top)) && (y < bottom)) {
return(undefined);
}
isFocused = false;
}
function isInCell(x, y) {
if ((((x >= left) && (x < right)) && (y >= top)) && (y < bottom)) {
return(true);
}
return(false);
}
function addCompound(iObj) {
iObj.uid = rr.utils.StringUtils.getUniqueName();
this["cp" + iObj.uid] = new rr.train.Compound(iObj);
this["cp" + iObj.uid].addToMapBackground();
statics.push(this["cp" + iObj.uid]);
}
function addBonus(iObj) {
iObj.uid = rr.utils.StringUtils.getUniqueName();
iObj.cellid = id;
this["bs" + iObj.uid] = new rr.train.Bonus(iObj);
statics.push(this["bs" + iObj.uid]);
}
function addDrop(iObj) {
iObj.uid = rr.utils.StringUtils.getUniqueName();
iObj.cellid = id;
this["dp" + iObj.uid] = new rr.train.Drop(iObj);
statics.push(this["dp" + iObj.uid]);
}
function createEnemies() {
enemies = new Array();
var _local3 = eiObjects.length;
var _local2 = 0;
while (_local2 < _local3) {
rr.enemy.EnemyUtils.createEnemy(eiObjects[_local2]);
_local2++;
}
hasEnemies = true;
delete eiObjects;
}
function removeEnemies() {
var _local6 = new Array();
var _local3 = 0;
while (_local3 < enemies.length) {
_local6.push(enemies[_local3]);
_local3++;
}
eiObjects = new Array();
var _local7 = _local6.length;
_local3 = 0;
while (_local3 < _local7) {
var _local4 = _global.stage["enemy_" + _local6[_local3]];
var _local5 = _local4.getInitObj();
eiObjects.push(_local5);
_local4.destroy();
_local3++;
}
delete enemies;
hasEnemies = false;
}
function removeEnemy(obj) {
var _local3 = enemies.length;
var _local2 = 0;
while (_local2 < _local3) {
if (enemies[_local2] == obj.uid) {
enemies.splice(_local2, 1);
break;
}
_local2++;
}
}
function deleteObject(obj) {
var _local4 = statics.length;
var _local2 = 0;
while (_local2 < _local4) {
if (statics[_local2] == obj) {
statics.splice(_local2, 1);
break;
}
_local2++;
}
if (obj instanceof rr.train.Bonus) {
delete this["bs" + obj.uid];
}
if (obj instanceof rr.train.Drop) {
delete this["dp" + obj.uid];
}
}
function addCompoundListeners() {
var _local4 = statics.length;
var _local3 = 0;
while (_local3 < _local4) {
if (statics[_local3] instanceof rr.train.Compound) {
_global.loc.addEventListener("onLocStop", statics[_local3]);
}
_local3++;
}
}
function getCompounds(includeNeigh) {
var _local3 = new Array();
var _local4 = statics.length;
var _local2 = 0;
while (_local2 < _local4) {
if (statics[_local2] instanceof rr.train.Compound) {
_local3.push(statics[_local2]);
}
_local2++;
}
if (includeNeigh) {
_local4 = nb.length;
_local2 = 0;
while (_local2 < _local4) {
_local3.concat(nb[_local2].getCompounds(false));
_local2++;
}
}
return(_local3);
}
}
Symbol 3411 MovieClip [__Packages.rr.train.Compound] Frame 0
class rr.train.Compound extends rr.BaseClass
{
var linkId, initObj, uid, id, type, x, y, rot, pi, mov;
function Compound (iObj) {
super();
linkId = "Compound";
initObj = iObj;
init();
}
function init() {
uid = initObj.uid;
id = initObj.id;
type = _global.map.maptype + Math.round(1 + Math.random()).toString();
x = initObj.x;
y = initObj.y;
rot = initObj.rot;
_global.map.collapsepoints.push({x:x, y:y});
}
function addToMapBackground() {
var _local3 = flash.display.BitmapData.loadBitmap(type + "_base");
var _local4 = new flash.display.BitmapData(500, 500, true, 0);
var _local6 = new flash.geom.Rectangle(0, 0, 500, 500);
var _local5 = new flash.geom.Matrix();
_local5.translate((-_local3.width) / 2, (-_local3.height) / 2);
_local5.rotate((rr.utils.MathUtils.formatAngle(rot) / 180) * pi);
_local5.translate((_local3.width / 2) + 250, (_local3.height / 2) + 250);
_local4.draw(_local3, _local5);
_global.map.map_bmp.copyPixels(_local4, _local6, new flash.geom.Point((x - 250) - (_local3.width / 2), (y - 250) - (_local3.height / 2)), null, null, true);
_local3.dispose();
_local4.dispose();
}
function update() {
checkRender();
}
function onLocStop() {
if (_global.loc.isdead) {
return(undefined);
}
if (_global.train.isCrashed) {
return(undefined);
}
if (_global.train.isInRange(x, y, 20)) {
_global.control.showCompoundMenu(this);
}
}
function render() {
if (!mov) {
createMov();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov._rotation = rot;
}
function checkRender() {
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
render();
} else if (mov) {
clearMov();
}
}
function createMov() {
var _local3 = rr.utils.ClipUtils.getFreeDepth(_global.stage, linkId);
mov = _global.stage.attachMovie(linkId, rr.utils.StringUtils.getUniqueName(), _local3, {parent:this});
mov.gotoAndStop(type);
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov, 0, 80);
}
}
function clearMov() {
mov.removeMovieClip();
delete mov;
}
function remove() {
_global.loc.removeEventListener("onLocStop", this);
clearMov();
}
}
Symbol 3412 MovieClip [__Packages.rr.train.Drop] Frame 0
class rr.train.Drop extends rr.BaseClass
{
var linkId, initObj, dfeel, uid, cellId, x, y, t, mode, type, mov, dropDone;
function Drop (iObj) {
super();
linkId = "Drop";
initObj = iObj;
dfeel = 75;
init();
}
function init() {
uid = initObj.uid;
cellId = initObj.cellid;
x = initObj.x;
y = initObj.y;
t = initObj.t;
mode = initObj.m;
if (t == "f") {
type = "FuelTank";
}
if (t == "p") {
type = "Passenger";
}
if (t == "a") {
type = "PassengerArmored";
}
if (t == "t") {
type = "TankTrailer";
}
if (t == "b") {
type = "ABomb";
}
}
function update() {
if (mode == "d") {
if (_global.train.isInRange(x, y, dfeel)) {
var _local3 = _global.loc;
while (_local3.next) {
_local3 = _local3.next;
if (_local3.linkId == type) {
applyDrop(_local3);
break;
}
}
}
}
if (mode == "p") {
if (rr.utils.MathUtils.getDistance(x, y, _global.loc.x, _global.loc.y) < dfeel) {
applyPickup();
}
}
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
render();
} else if (mov) {
clearMov();
}
}
function render() {
if (!mov) {
if (!dropDone) {
var _local3 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
mov = _global.stage.attachMovie(linkId + type, rr.utils.StringUtils.getUniqueName(), _local3);
if (mode == "d") {
mov.gotoAndPlay(2);
}
}
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
}
function clearMov() {
mov.removeMovieClip();
delete mov;
}
function applyDrop(s) {
if (_global.train.isCrashed) {
return(undefined);
}
if (dropDone) {
return(undefined);
}
dropDone = true;
if (type == "FuelTank") {
_global.sounds.playSound("Fuel Wagon Dropped.wav");
}
if (type == "Passenger") {
_global.guide.showGuide(16);
_global.sounds.playSound("Passenger Wagon Dropped.wav");
}
if (type == "PassengerArmored") {
_global.sounds.playSound("Armor Passenger Wagon Dropped.wav");
}
if (type == "TankTrailer") {
_global.sounds.playSound("Tank Trailer Dropped.wav");
}
if (type == "ABomb") {
_global.sounds.playSound("Atomic Bomb Dropped.wav");
}
var _local4 = _global.game.dropoffs.length;
var _local3 = 0;
while (_local3 < _local4) {
if (_global.game.dropoffs[_local3] == s.linkId) {
_global.game.dropoffs.splice(_local3, 1);
break;
}
_local3++;
}
s.remove();
clearMov();
_global.map["cell_" + cellId].deleteObject(this);
}
function applyPickup() {
if (_global.train.isCrashed) {
return(undefined);
}
if (dropDone) {
return(undefined);
}
dropDone = true;
if (type == "FuelTank") {
_global.sounds.playSound("Fuel Wagon Attached.wav");
}
if (type == "Passenger") {
_global.sounds.playSound("Passenger Wagon Attached.wav");
}
if (type == "PassengerArmored") {
_global.sounds.playSound("Armor Passenger Wagon Attached.wav");
}
if (type == "TankTrailer") {
_global.sounds.playSound("Tank Trailer Attached.wav");
}
if (type == "ABomb") {
_global.sounds.playSound("Atomic Bomb Attached.wav");
}
_global.train.addPickup(type);
clearMov();
_global.map["cell_" + cellId].deleteObject(this);
}
}
Symbol 3413 MovieClip [__Packages.rr.enemy.EnemyUtils] Frame 0
class rr.enemy.EnemyUtils
{
function EnemyUtils () {
}
static function createEnemy(initObj) {
if (!initObj.uid) {
initObj.uid = rr.utils.StringUtils.getUniqueName();
}
var _local2 = initObj.uid;
var _local4;
if (initObj.cellid) {
_local4 = _global.map["cell_" + initObj.cellid];
} else {
_local4 = _global.map.getCellByPos(initObj.x, initObj.y);
initObj.cellid = _local4.id;
}
switch (initObj.linkid) {
case "OldJeep" :
_global.stage["enemy_" + _local2] = new rr.enemy.OldJeep(initObj);
_local4.enemies.push(_local2);
break;
case "ArmoredJeep" :
_global.stage["enemy_" + _local2] = new rr.enemy.ArmoredJeep(initObj);
_local4.enemies.push(_local2);
break;
case "GunTruck" :
_global.stage["enemy_" + _local2] = new rr.enemy.GunTruck(initObj);
_local4.enemies.push(_local2);
break;
case "PotTank" :
_global.stage["enemy_" + _local2] = new rr.enemy.PotTank(initObj);
_local4.enemies.push(_local2);
break;
case "Abrahams" :
_global.stage["enemy_" + _local2] = new rr.enemy.Abrahams(initObj);
_local4.enemies.push(_local2);
break;
case "Elephant" :
_global.stage["enemy_" + _local2] = new rr.enemy.Elephant(initObj);
_local4.enemies.push(_local2);
break;
case "BullDozer" :
_global.stage["enemy_" + _local2] = new rr.enemy.BullDozer(initObj);
_local4.enemies.push(_local2);
break;
case "Basilisk" :
_global.stage["enemy_" + _local2] = new rr.enemy.Basilisk(initObj);
_local4.enemies.push(_local2);
break;
case "Bunker" :
_global.stage["enemy_" + _local2] = new rr.enemy.Bunker(initObj);
_local4.enemies.push(_local2);
break;
case "GatlingSingle" :
_global.stage["enemy_" + _local2] = new rr.enemy.GatlingSingle(initObj);
_local4.enemies.push(_local2);
break;
case "GatlingDouble" :
_global.stage["enemy_" + _local2] = new rr.enemy.GatlingDouble(initObj);
_local4.enemies.push(_local2);
break;
case "AirField" :
_global.stage["enemy_" + _local2] = new rr.enemy.AirField(initObj);
break;
case "FockeWolf" :
_global.stage["enemy_" + _local2] = new rr.enemy.FockeWolf(initObj);
break;
case "C47" :
_global.stage["enemy_" + _local2] = new rr.enemy.C47(initObj);
break;
case "BellHuey" :
_global.stage["enemy_" + _local2] = new rr.enemy.BellHuey(initObj);
}
_global.stage.events.dispatchEvent({type:"onEnemyCreate", target:_global.stage["enemy_" + _local2]});
return(_global.stage["enemy_" + _local2]);
}
static function checkAreaRails(a) {
a.areaoverlap = false;
var _local10 = _global.map.rs.length;
var _local8 = 0;
while (_local8 < _local10) {
var _local7 = _global.map["rs" + _global.map.rs[_local8]];
var _local5 = 5;
while (_local5 < _local7.length) {
var _local4 = _local7.getPoint(_local5);
if ((((_local4.x >= a.rect.x) && (_local4.x <= (a.rect.x + a.rect.width))) && (_local4.y >= a.rect.y)) && (_local4.y <= (a.rect.y + a.rect.heigth))) {
a.areaoverlap = true;
break;
}
_local5 = _local5 + 5;
}
if (a.rsoverlaps) {
break;
}
_local8++;
}
a.statics = [];
_local10 = _global.map.cells.length;
_local8 = 0;
while (_local8 < _local10) {
var _local6 = _global.map["cell_" + _global.map.cells[_local8]];
var _local9 = _local6.statics.length;
var _local5 = 0;
while (_local5 < _local9) {
if (_local6.statics[_local5] instanceof rr.rail.RailBlock) {
var _local3 = _local6.statics[_local5];
if ((((_local3.x >= a.rect.x) && (_local3.x <= (a.rect.x + a.rect.width))) && (_local3.y >= a.rect.y)) && (_local3.y <= (a.rect.y + a.rect.heigth))) {
a.statics.push(_local3);
}
}
_local5++;
}
_local8++;
}
}
}
Symbol 3414 MovieClip [__Packages.rr.enemy.EnemyUnit] Frame 0
class rr.enemy.EnemyUnit extends rr.BaseClass
{
var uid, initObj, mode, loopsoundid, linkId, loopsound, x, y, isdead, isexploded, mov, rot, isSoundPlaying, events, tstun, laststunned, isstunned;
function EnemyUnit () {
super();
}
function init() {
uid = initObj.uid;
_global.stage.enemies.push(uid);
if (!mode) {
mode = "static";
}
loopsoundid = rr.conf.Config.getObjectValue(linkId, "sound");
if (loopsoundid) {
loopsound = _global.sounds.addLoopSound(this);
}
}
function checkRender() {
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
if (loopsound) {
if (!isdead) {
playLoopSound();
}
}
render();
} else if (isexploded) {
destroy();
} else if (mov) {
_global.sounds.stopLoopSound(this);
clearMov();
}
}
function playLoopSound() {
if ((!loopsound.isplaying) || (loopsound.vol < 100)) {
_global.sounds.playLoopSound(this);
}
}
function render() {
if (!mov) {
createMov();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov._rotation = rot;
}
function createMov() {
var _local3 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
mov = _global.stage.attachMovie(linkId, uid, _local3, {parent:this});
checkNightMode();
}
function clearMov() {
mov.removeMovieClip();
delete mov;
}
function die() {
if (isdead) {
return(undefined);
}
isdead = true;
_global.sounds.stopLoopSound(this, true);
isSoundPlaying = false;
events.dispatchEvent({type:"onRemoveLoopSound", target:this});
events.dispatchEvent({type:"onEnemyDie", target:this});
}
function destroy() {
mov.removeMovieClip();
_global.stage.removeEnemy(this);
}
function checkNightMode() {
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov, 0, 80);
}
}
function stun(t) {
tstun = t;
trace("tstun: " + tstun);
laststunned = getTimer();
isstunned = true;
}
function checkStun() {
if ((getTimer() - laststunned) > tstun) {
isstunned = false;
}
}
}
Symbol 3415 MovieClip [__Packages.rr.enemy.GroundUnit] Frame 0
class rr.enemy.GroundUnit extends rr.enemy.EnemyUnit
{
var cellId, initObj, area, ea, x, y, rot, damage, rect, mode, maxspeed, linkId, curve, a, ddetect, dfire, tfire, rotspeed, killlevel, destroydelay, gunsound, explodesound, rfire, status, isdead, rotBarrel, speed, tspeed, lastFired, addEventListener, checkRender, isstunned, checkStun, tar, dtar, paused, dfeel, retreat, cos, pi, sin, uid, mov, loopsound, atan2, movetar, isexploded, removeEventListener, clearMov;
function GroundUnit () {
super();
}
function init() {
cellId = initObj.cellid;
area = initObj.area;
ea = initObj.ea;
x = initObj.x;
y = initObj.y;
rot = (initObj.rot ? (initObj.rot) : (Math.random() * 180));
damage = (initObj.damage ? (initObj.damage) : 0);
rect = ea.rect;
super.init();
if (mode != "static") {
mode = ((Math.random() > 0.6) ? "dynamic" : "static");
}
maxspeed = rr.conf.Config.getObjectValue(linkId, "maxSpeed");
curve = rr.conf.Config.getObjectValue(linkId, "curve");
a = rr.conf.Config.getObjectValue(linkId, "acceleration");
ddetect = rr.conf.Config.getObjectValue(linkId, "detectionDistance");
dfire = rr.conf.Config.getObjectValue(linkId, "shootingDistance");
tfire = rr.conf.Config.getObjectValue(linkId, "shootingInterval");
rotspeed = rr.conf.Config.getObjectValue(linkId, "rotationSpeed");
killlevel = rr.conf.Config.getObjectValue(linkId, "killlevel");
destroydelay = rr.conf.Config.getObjectValue(linkId, "destroydelay");
gunsound = rr.conf.Config.getObjectValue(linkId, "gunsound");
explodesound = rr.conf.Config.getObjectValue(linkId, "explodesound");
rfire = rr.conf.Config.getObjectValue(linkId, "ammoAccuracy");
status = "watch";
isdead = false;
rotBarrel = Math.random() * 180;
speed = (tspeed = 0);
lastFired = getTimer();
area.addEventListener("onAreaDetect", this);
addEventListener("onEnemyDie", area);
}
function getInitObj() {
initObj.x = x;
initObj.y = y;
initObj.rot = rot;
initObj.damage = damage;
initObj.cellid = cellId;
return(initObj);
}
function update() {
if (isdead) {
checkRender();
return(undefined);
}
if (isstunned) {
checkStun();
checkRender();
return(undefined);
}
if (status == "watch") {
if (_global.train.isInRange(x, y, ddetect)) {
area.setDetected();
}
}
if (status == "attack") {
if (!tar) {
getTarget();
}
dtar = rr.utils.MathUtils.getDistance(x, y, tar.x, tar.y);
aimAtTarget();
if (dtar <= dfire) {
fire();
}
if (mode == "dynamic") {
if (speed != tspeed) {
speed = ((Math.abs(speed - tspeed) <= a) ? (tspeed) : (((tspeed > speed) ? (speed + a) : (speed - a))));
}
if (!paused) {
if (dtar < (dfeel * 5)) {
pause();
}
if (retreat) {
if (rr.utils.MathUtils.getDistance(x, y, rect.left + (rect.width / 2), rect.top + (rect.height / 2)) < 20) {
retreat = false;
reapproach();
}
}
checkFeelers();
if (speed != 0) {
rotateToTarget();
}
x = x + (cos(((-rot) * pi) / 180) * speed);
y = y - (sin(((-rot) * pi) / 180) * speed);
var _local3 = _global.map["cell_" + cellId];
if (((x < _local3.left) || (x >= _local3.right)) || ((y < _local3.top) | (y >= _local3.bottom))) {
_local3.removeEnemy(this);
_local3 = _global.map.getCellByPos(x, y);
cellId = _local3.id;
trace("groundunit new cell: " + _local3.id);
_local3.enemies.push(uid);
}
}
}
if (ea.areaoverlap) {
var _local4 = _global.train.checkObjectHit(this);
if (_local4) {
die();
explode();
}
}
}
checkRender();
}
function render() {
super.render();
mov.barrel_mc._rotation = rr.utils.MathUtils.formatAngle(rotBarrel - rot);
}
function playLoopSound() {
if ((mode != "static") && (speed != 0)) {
if ((!loopsound.isplaying) || (loopsound.vol < 100)) {
_global.sounds.playLoopSound(this);
}
}
}
function aimAtTarget() {
var _local2 = (180 * atan2(tar.y - y, tar.x - x)) / pi;
var _local3 = (rotBarrel + 360) % 360;
_local2 = (_local2 + 360) % 360;
if ((_local2 - _local3) > 180) {
_local2 = _local2 - 360;
} else if ((_local2 - _local3) < -180) {
_local2 = _local2 + 360;
}
_local3 = _local3 + ((rotspeed * (_local2 - _local3)) / 100);
rotBarrel = rr.utils.MathUtils.formatAngle2(_local3);
}
function rotateToTarget() {
var _local4;
_local4 = rr.utils.MathUtils.getAngle(x, y, movetar.x, movetar.y);
var _local2 = _local4;
var _local3 = (rot + 360) % 360;
_local2 = (_local2 + 360) % 360;
if ((_local2 - _local3) > 180) {
_local2 = _local2 - 360;
} else if ((_local2 - _local3) < -180) {
_local2 = _local2 + 360;
}
if ((_local2 - _local3) > 0) {
rot = rr.utils.MathUtils.formatAngle2(_local3 + curve);
} else {
rot = rr.utils.MathUtils.formatAngle2(_local3 - curve);
}
var _local5 = rr.utils.MathUtils.angDiff(rot, _local4);
if ((_local5 <= (curve + 1)) || ((360 - _local5) <= (curve + 1))) {
rot = _local4;
}
}
function getTarget() {
tar = _global.train.getTargetSegment();
tar.addEventListener("onTrainTargetDie", this);
movetar = tar;
}
function onTrainTargetDie(evtObj) {
if (evtObj.target == tar) {
tar.removeEventListener("onTrainTargetDie", this);
tar = undefined;
}
}
function onAreaDetect() {
getTarget();
tspeed = maxspeed;
status = "attack";
}
function checkFeelers() {
var _local5 = 0;
var _local7 = 0;
var _local6 = 0;
var _local8 = 0;
var _local12 = x + (cos(((-rr.utils.MathUtils.formatAngle2(rot + 315)) * pi) / 180) * (dfeel + 5));
var _local11 = y - (sin(((-rr.utils.MathUtils.formatAngle2(rot + 315)) * pi) / 180) * (dfeel + 5));
var _local10 = x + (cos(((-rr.utils.MathUtils.formatAngle2(rot + 45)) * pi) / 180) * (dfeel + 5));
var _local9 = y - (sin(((-rr.utils.MathUtils.formatAngle2(rot + 45)) * pi) / 180) * (dfeel + 5));
var _local15 = x + (cos(((-rr.utils.MathUtils.formatAngle2(rot + 225)) * pi) / 180) * (dfeel + 5));
var _local14 = y - (sin(((-rr.utils.MathUtils.formatAngle2(rot + 225)) * pi) / 180) * (dfeel + 5));
var _local17 = x + (cos(((-rr.utils.MathUtils.formatAngle2(rot + 135)) * pi) / 180) * (dfeel + 5));
var _local16 = y - (sin(((-rr.utils.MathUtils.formatAngle2(rot + 135)) * pi) / 180) * (dfeel + 5));
if (!retreat) {
if ((((_local12 < rect.left) || (_local12 > rect.right)) || (_local11 < rect.top)) || (_local11 > rect.bottom)) {
_local5 = 1;
speed = ((speed > 0) ? 0 : (speed));
tspeed = -maxspeed;
movetar = {x:_local12, y:_local11};
rr.utils.Delegate.callDelayed(this, setRetreat, 1500);
} else if ((((_local15 < rect.left) || (_local15 > rect.right)) || (_local14 < rect.top)) || (_local14 > rect.bottom)) {
_local6 = 1;
speed = ((speed < 0) ? 0 : (speed));
tspeed = maxspeed;
movetar = {x:_local10, y:_local9};
rr.utils.Delegate.callDelayed(this, setRetreat, 1500);
} else if ((((_local10 < rect.left) || (_local10 > rect.right)) || (_local9 < rect.top)) || (_local9 > rect.bottom)) {
_local7 = 1;
speed = ((speed > 0) ? 0 : (speed));
tspeed = -maxspeed;
movetar = {x:_local10, y:_local9};
rr.utils.Delegate.callDelayed(this, setRetreat, 1500);
} else if ((((_local17 < rect.left) || (_local17 > rect.right)) || (_local16 < rect.top)) || (_local16 > rect.bottom)) {
_local8 = 1;
speed = ((speed < 0) ? 0 : (speed));
tspeed = maxspeed;
movetar = {x:_local12, y:_local11};
rr.utils.Delegate.callDelayed(this, setRetreat, 1500);
}
}
var _local18 = ea.enemies.length;
var _local13 = 0;
while (_local13 < _local18) {
var _local3 = _global.stage["enemy_" + ea.enemies[_local13]];
if ((_local3 && (_local3 != this)) && (!_local3.isdead)) {
if (rr.utils.MathUtils.getDistance(x, y, _local3.x, _local3.y) < (dfeel + _local3.dfeel)) {
pause();
return(undefined);
}
if (rr.utils.MathUtils.getDistance(_local12, _local11, _local3.x, _local3.y) < _local3.dfeel) {
_local5 = 1;
speed = ((speed > 0) ? 0 : (speed));
tspeed = -maxspeed;
movetar = {x:_local10, y:_local9};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
if (rr.utils.MathUtils.getDistance(_local10, _local9, _local3.x, _local3.y) < _local3.dfeel) {
_local7 = 1;
speed = ((speed > 0) ? 0 : (speed));
tspeed = -maxspeed;
movetar = {x:_local12, y:_local11};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
if (rr.utils.MathUtils.getDistance(_local17, _local16, _local3.x, _local3.y) < _local3.dfeel) {
_local8 = 1;
speed = ((speed < 0) ? 0 : (speed));
tspeed = maxspeed;
movetar = {x:_local12, y:_local11};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
if (rr.utils.MathUtils.getDistance(_local15, _local14, _local3.x, _local3.y) < _local3.dfeel) {
_local6 = 1;
speed = ((speed < 0) ? 0 : (speed));
tspeed = maxspeed;
movetar = {x:_local10, y:_local9};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
}
_local13++;
}
_local18 = ea.statics.length;
_local13 = 0;
while (_local13 < _local18) {
var _local4 = ea.statics[_local13];
if (rr.utils.MathUtils.getDistance(x, y, _local4.x, _local4.y) < (dfeel + _local4.dfeel)) {
pause();
return(undefined);
}
if (rr.utils.MathUtils.getDistance(_local12, _local11, _local4.x, _local4.y) < _local4.dfeel) {
_local5 = 1;
speed = ((speed > 0) ? 0 : (speed));
tspeed = -maxspeed;
movetar = {x:_local10, y:_local9};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
if (rr.utils.MathUtils.getDistance(_local10, _local9, _local4.x, _local4.y) < _local4.dfeel) {
_local7 = 1;
speed = ((speed > 0) ? 0 : (speed));
tspeed = -maxspeed;
movetar = {x:_local12, y:_local11};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
if (rr.utils.MathUtils.getDistance(_local17, _local16, _local4.x, _local4.y) < _local4.dfeel) {
_local8 = 1;
speed = ((speed < 0) ? 0 : (speed));
tspeed = maxspeed;
movetar = {x:_local12, y:_local11};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
if (rr.utils.MathUtils.getDistance(_local15, _local14, _local4.x, _local4.y) < _local4.dfeel) {
_local6 = 1;
speed = ((speed < 0) ? 0 : (speed));
tspeed = maxspeed;
movetar = {x:_local10, y:_local9};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
_local13++;
}
}
function setRetreat() {
tspeed = maxspeed;
retreat = true;
movetar = {x:rect.left + (rect.width / 2), y:rect.top + (rect.height / 2)};
}
function pause() {
paused = true;
rr.utils.Delegate.callDelayed(this, reapproach, 5000);
}
function reapproach() {
if (retreat) {
movetar = {x:rect.left + (rect.width / 2), y:rect.top + (rect.height / 2)};
} else {
movetar = tar;
}
tspeed = maxspeed;
paused = false;
}
function fire() {
if ((getTimer() - lastFired) < tfire) {
return(undefined);
}
lastFired = getTimer();
mov.barrel_mc.gotoAndPlay("shoot");
mov.barrel_mc.base_mc.gotoAndPlay("shoot");
_global.sounds.playSound(gunsound);
var _local3 = ((Math.random() < 0.5) ? (dtar - (Math.random() * rfire)) : (dtar + (Math.random() * rfire)));
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:x, y:y, rot:rotBarrel, d:_local3});
}
function addDamage(dmg) {
if (isdead) {
return(undefined);
}
if (!dmg) {
return(undefined);
}
damage = damage + dmg;
if (damage >= killlevel) {
die();
explode();
}
}
function die() {
if (isdead) {
return(undefined);
}
_global.landshot++;
super.die();
}
function explode() {
if (isexploded) {
return(undefined);
}
isexploded = true;
status = "";
_global.sounds.playSound(explodesound);
render();
mov.gotoAndPlay("explode");
rr.utils.Delegate.callDelayed(this, destroy, destroydelay);
}
function remove() {
area.removeEventListener("onAreaDetect", this);
removeEventListener("onEnemyDie", area);
clearMov();
}
function destroy() {
remove();
super.destroy();
}
function checkNightMode() {
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov.base_mc, 0, 80);
rr.utils.ClipUtils.setTint(mov.barrel_mc.base_mc, 0, 80);
}
}
}
Symbol 3416 MovieClip [__Packages.rr.enemy.EnemyArea] Frame 0
class rr.enemy.EnemyArea extends rr.BaseClass
{
var initObj, id, areas, iscombined, events;
function EnemyArea (iObj) {
super();
initObj = iObj;
}
function init() {
id = initObj.id;
trace("init area: " + id);
areas = new Array();
if (initObj.a) {
iscombined = true;
var _local2 = 0;
while (_local2 < initObj.a.length) {
addArea(new flash.geom.Rectangle(initObj.a[_local2].x, initObj.a[_local2].y, initObj.a[_local2].w, initObj.a[_local2].h));
_local2++;
}
} else {
addArea(new flash.geom.Rectangle(initObj.x, initObj.y, initObj.w, initObj.h));
}
var _local4 = rr.conf.Config.translateEnemyCodes(initObj.e);
var _local6 = _local4.length;
var _local2 = 0;
while (_local2 < _local6) {
var _local3 = getFreeArea();
_local3.edefs.push(_local4[_local2]);
_local3.tmpenemies.push({linkid:_local4[_local2]});
_local2++;
}
distributeEnemies();
createEnemies();
}
function addArea(r) {
var _local2 = new Object();
_local2.rect = r;
_local2.maxenemies = Math.floor((r.width * r.height) / 7000);
_local2.edefs = new Array();
_local2.tmpenemies = new Array();
_local2.enemies = new Array();
rr.enemy.EnemyUtils.checkAreaRails(_local2);
areas.push(_local2);
}
function getFreeArea() {
var _local2 = [];
var _local3 = 0;
while (_local3 < areas.length) {
if (areas[_local3].tmpenemies.length < areas[_local3].maxenemies) {
_local2.push(areas[_local3]);
}
_local3++;
}
_local3 = Math.round(Math.random() * (_local2.length - 1));
return(_local2[_local3]);
}
function distributeEnemies() {
var _local7 = areas.length;
var _local5 = 0;
while (_local5 < _local7) {
var _local3 = areas[_local5];
var _local6 = _local3.tmpenemies.length;
var _local2 = 0;
while (_local2 < _local6) {
var _local4 = _local3.tmpenemies[_local2];
setEnemyPosition(_local4, _local3);
_local2++;
}
_local5++;
}
}
function setEnemyPosition(e, a) {
var _local10 = a.tmpenemies.length;
var _local11 = a.statics.length;
var _local9 = 0;
while (_local9 < 1000) {
var _local6 = false;
e.x = a.rect.x + (Math.random() * a.rect.width);
e.y = a.rect.y + (Math.random() * a.rect.height);
var _local4 = 0;
while (_local4 < _local10) {
var _local3 = a.tmpenemies[_local4];
if ((_local3 != e) && (_local3.x)) {
var _local8 = rr.utils.MathUtils.getDistance(e.x, e.y, _local3.x, _local3.y);
if (_local8 < 70) {
_local6 = true;
break;
}
}
_local4++;
}
if (!_local6) {
_local4 = 0;
while (_local4 < _local11) {
var _local7 = a.statics[_local4];
var _local8 = rr.utils.MathUtils.getDistance(e.x, e.y, _local7.x, _local7.y);
if (_local8 < 70) {
_local6 = true;
break;
}
_local4++;
}
}
if (!_local6) {
break;
}
_local9++;
}
if (_local6) {
trace("failed enemy placement loop: " + _local9);
trace("a.rect: " + a.rect);
setEnemyPosition(e, a);
}
}
function createEnemies() {
var _local13 = areas.length;
var _local6 = 0;
while (_local6 < _local13) {
var _local4 = areas[_local6];
var _local7 = _local4.tmpenemies.length;
var _local3 = 0;
while (_local3 < _local7) {
var _local5 = rr.enemy.EnemyUtils.createEnemy({linkid:_local4.tmpenemies[_local3].linkid, area:this, ea:_local4, x:_local4.tmpenemies[_local3].x, y:_local4.tmpenemies[_local3].y});
_local4.enemies.push(_local5.uid);
_local3++;
}
_local6++;
}
_global.stage.onAreaInit(this);
}
function setDetected() {
events.dispatchEvent({type:"onAreaDetect"});
}
function onEnemyDie(evtObj) {
var _local7 = areas.length;
var _local4 = 0;
while (_local4 < _local7) {
var _local3 = areas[_local4];
var _local5 = _local3.enemies.length;
var _local2 = 0;
while (_local2 < _local5) {
if (_local3.enemies[_local2] == evtObj.target.uid) {
_local3.enemies.splice(_local4, 1);
break;
}
_local2++;
}
_local4++;
}
}
}
Symbol 3417 MovieClip [__Packages.rr.enemy.OldJeep] Frame 0
class rr.enemy.OldJeep extends rr.enemy.GroundUnit
{
var linkId, initObj, mode, dfeel, init;
function OldJeep (iObj) {
super();
linkId = "OldJeep";
initObj = iObj;
mode = "dynamic";
dfeel = 15;
init();
}
}
Symbol 3418 MovieClip [__Packages.rr.enemy.ArmoredJeep] Frame 0
class rr.enemy.ArmoredJeep extends rr.enemy.GroundUnit
{
var linkId, initObj, mode, dfeel, init;
function ArmoredJeep (iObj) {
super();
linkId = "ArmoredJeep";
initObj = iObj;
mode = "dynamic";
dfeel = 18;
init();
}
}
Symbol 3419 MovieClip [__Packages.rr.enemy.GunTruck] Frame 0
class rr.enemy.GunTruck extends rr.enemy.GroundUnit
{
var linkId, initObj, mode, dfeel, init;
function GunTruck (iObj) {
super();
linkId = "GunTruck";
initObj = iObj;
mode = "dynamic";
dfeel = 23;
init();
}
}
Symbol 3420 MovieClip [__Packages.rr.enemy.PotTank] Frame 0
class rr.enemy.PotTank extends rr.enemy.GroundUnit
{
var linkId, initObj, mode, dfeel, init;
function PotTank (iObj) {
super();
linkId = "PotTank";
initObj = iObj;
mode = "dynamic";
dfeel = 22;
init();
}
}
Symbol 3421 MovieClip [__Packages.rr.enemy.Abrahams] Frame 0
class rr.enemy.Abrahams extends rr.enemy.GroundUnit
{
var linkId, initObj, mode, dfeel, init;
function Abrahams (iObj) {
super();
linkId = "Abrahams";
initObj = iObj;
mode = "dynamic";
dfeel = 22;
init();
}
}
Symbol 3422 MovieClip [__Packages.rr.enemy.Elephant] Frame 0
class rr.enemy.Elephant extends rr.enemy.GroundUnit
{
var linkId, initObj, mode, dfeel, init, mov, createMov, x, y, rotBarrel, tfire, lastFired, gunsound, rfire, dtar;
function Elephant (iObj) {
super();
linkId = "Elephant";
initObj = iObj;
mode = "static";
dfeel = 23;
init();
}
function render() {
if (!mov) {
createMov();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov.barrel_mc._rotation = rr.utils.MathUtils.formatAngle(rotBarrel);
}
function fire() {
if ((getTimer() - lastFired) < tfire) {
return(undefined);
}
lastFired = getTimer();
mov.barrel_mc.gotoAndPlay("shoot");
mov.barrel_mc.base_mc.gotoAndPlay("shoot");
_global.sounds.playSound(gunsound);
var _local3 = ((Math.random() < 0.5) ? (dtar - (Math.random() * rfire)) : (dtar + (Math.random() * rfire)));
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:x, y:y, rot:rotBarrel, d:_local3});
}
}
Symbol 3423 MovieClip [__Packages.rr.enemy.BullDozer] Frame 0
class rr.enemy.BullDozer extends rr.enemy.EnemyUnit
{
var linkId, initObj, mode, dfeel, area, ea, x, y, rot, damage, rect, maxspeed, curve, a, ddetect, killlevel, destroydelay, explodesound, status, isdead, speed, tspeed, addEventListener, cellId, checkRender, isstunned, checkStun, iscrashed, crashrotspeed, crashdir, xspeed, yspeed, tar, dtar, paused, retreat, cos, pi, sin, uid, movetar, mov, isexploded, render, destroy;
function BullDozer (iObj) {
super();
linkId = "BullDozer";
initObj = iObj;
mode = "dynamic";
dfeel = 30;
init();
}
function init() {
area = initObj.area;
ea = initObj.ea;
x = initObj.x;
y = initObj.y;
rot = (initObj.rot ? (initObj.rot) : (Math.random() * 180));
damage = (initObj.damage ? (initObj.damage) : 0);
rect = ea.rect;
super.init();
dfeel = rr.conf.Config.getObjectValue(linkId, "feelerradius");
maxspeed = rr.conf.Config.getObjectValue(linkId, "maxSpeed");
curve = rr.conf.Config.getObjectValue(linkId, "curve");
a = rr.conf.Config.getObjectValue(linkId, "acceleration");
ddetect = rr.conf.Config.getObjectValue(linkId, "detectionDistance");
killlevel = rr.conf.Config.getObjectValue(linkId, "killlevel");
destroydelay = rr.conf.Config.getObjectValue(linkId, "destroydelay");
explodesound = rr.conf.Config.getObjectValue(linkId, "explodesound");
status = "watch";
isdead = false;
speed = (tspeed = 0);
area.addEventListener("onAreaDetect", this);
addEventListener("onEnemyDie", area);
}
function getInitObj() {
initObj.x = x;
initObj.y = y;
initObj.rot = rot;
initObj.damage = damage;
initObj.cellid = cellId;
return(initObj);
}
function update() {
if (isdead) {
checkRender();
return(undefined);
}
if (isstunned) {
checkStun();
checkRender();
return(undefined);
}
if (iscrashed) {
rot = rot + (crashdir * crashrotspeed);
crashrotspeed = crashrotspeed * 0.95;
x = x + xspeed;
y = y + yspeed;
xspeed = xspeed * 0.95;
yspeed = yspeed * 0.95;
if (Math.abs(xspeed) < 0.05) {
xspeed = 0;
}
if (Math.abs(yspeed) < 0.05) {
yspeed = 0;
}
if ((xspeed == 0) && (yspeed == 0)) {
iscrashed = false;
}
checkRender();
return(undefined);
}
if (status == "watch") {
if (_global.train.isInRange(x, y, ddetect)) {
area.setDetected();
}
}
if (status == "attack") {
if (!tar) {
getTarget();
}
dtar = rr.utils.MathUtils.getDistance(x, y, tar.x, tar.y);
if (speed != tspeed) {
speed = ((Math.abs(speed - tspeed) <= a) ? (tspeed) : (((tspeed > speed) ? (speed + a) : (speed - a))));
}
if (!paused) {
if (retreat) {
if (rr.utils.MathUtils.getDistance(x, y, rect.left + (rect.width / 2), rect.top + (rect.height / 2)) < 20) {
retreat = false;
reapproach();
}
}
checkFeelers();
if (speed != 0) {
rotateToTarget();
}
x = x + (cos(((-rot) * pi) / 180) * speed);
y = y - (sin(((-rot) * pi) / 180) * speed);
var _local3 = _global.map["cell_" + cellId];
if (((x < _local3.left) || (x >= _local3.right)) || ((y < _local3.top) | (y >= _local3.bottom))) {
_local3.removeEnemy(this);
_local3 = _global.map.getCellByPos(x, y);
cellId = _local3.id;
trace("Bulldozer new cell: " + _local3.id);
_local3.enemies.push(uid);
}
if (ea.enemies.length > 1) {
checkEnemyHit();
}
}
if (ea.areaoverlap) {
var _local4 = _global.train.checkObjectHit(this);
if (_local4) {
crash(_local4);
}
}
}
checkRender();
}
function checkFeelers() {
var _local5 = 0;
var _local7 = 0;
var _local6 = 0;
var _local8 = 0;
var _local20 = x + (cos(((-rot) * pi) / 180) * (dfeel + 5));
var _local19 = y - (sin(((-rot) * pi) / 180) * (dfeel + 5));
var _local12 = x + (cos(((-rr.utils.MathUtils.formatAngle2(rot + 315)) * pi) / 180) * (dfeel + 5));
var _local11 = y - (sin(((-rr.utils.MathUtils.formatAngle2(rot + 315)) * pi) / 180) * (dfeel + 5));
var _local10 = x + (cos(((-rr.utils.MathUtils.formatAngle2(rot + 45)) * pi) / 180) * (dfeel + 5));
var _local9 = y - (sin(((-rr.utils.MathUtils.formatAngle2(rot + 45)) * pi) / 180) * (dfeel + 5));
var _local15 = x + (cos(((-rr.utils.MathUtils.formatAngle2(rot + 225)) * pi) / 180) * (dfeel + 5));
var _local14 = y - (sin(((-rr.utils.MathUtils.formatAngle2(rot + 225)) * pi) / 180) * (dfeel + 5));
var _local17 = x + (cos(((-rr.utils.MathUtils.formatAngle2(rot + 135)) * pi) / 180) * (dfeel + 5));
var _local16 = y - (sin(((-rr.utils.MathUtils.formatAngle2(rot + 135)) * pi) / 180) * (dfeel + 5));
if (!retreat) {
if ((((_local12 < rect.left) || (_local12 > rect.right)) || (_local11 < rect.top)) || (_local11 > rect.bottom)) {
_local5 = 1;
speed = ((speed > 0) ? 0 : (speed));
tspeed = -maxspeed;
movetar = {x:_local12, y:_local11};
rr.utils.Delegate.callDelayed(this, setRetreat, 1500);
} else if ((((_local15 < rect.left) || (_local15 > rect.right)) || (_local14 < rect.top)) || (_local14 > rect.bottom)) {
_local6 = 1;
speed = ((speed < 0) ? 0 : (speed));
tspeed = maxspeed;
movetar = {x:_local10, y:_local9};
rr.utils.Delegate.callDelayed(this, setRetreat, 1500);
} else if ((((_local10 < rect.left) || (_local10 > rect.right)) || (_local9 < rect.top)) || (_local9 > rect.bottom)) {
_local7 = 1;
speed = ((speed > 0) ? 0 : (speed));
tspeed = -maxspeed;
movetar = {x:_local10, y:_local9};
rr.utils.Delegate.callDelayed(this, setRetreat, 1500);
} else if ((((_local17 < rect.left) || (_local17 > rect.right)) || (_local16 < rect.top)) || (_local16 > rect.bottom)) {
_local8 = 1;
speed = ((speed < 0) ? 0 : (speed));
tspeed = maxspeed;
movetar = {x:_local12, y:_local11};
rr.utils.Delegate.callDelayed(this, setRetreat, 1500);
}
}
var _local18 = ea.enemies.length;
var _local13 = 0;
while (_local13 < _local18) {
var _local3 = _global.stage["enemy_" + ea.enemies[_local13]];
if ((_local3.linkId == "BullDozer") && (_local3 != this)) {
if (rr.utils.MathUtils.getDistance(x, y, _local3.x, _local3.y) < (dfeel + _local3.dfeel)) {
pause();
return(undefined);
}
if ((rr.utils.MathUtils.getDistance(_local12, _local11, _local3.x, _local3.y) < _local3.dfeel) || (rr.utils.MathUtils.getDistance(_local20, _local19, _local3.x, _local3.y) < _local3.dfeel)) {
_local5 = 1;
speed = ((speed > 0) ? 0 : (speed));
tspeed = -maxspeed;
movetar = {x:_local10, y:_local9};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
if (rr.utils.MathUtils.getDistance(_local10, _local9, _local3.x, _local3.y) < _local3.dfeel) {
_local7 = 1;
speed = ((speed > 0) ? 0 : (speed));
tspeed = -maxspeed;
movetar = {x:_local12, y:_local11};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
if (rr.utils.MathUtils.getDistance(_local17, _local16, _local3.x, _local3.y) < _local3.dfeel) {
_local8 = 1;
speed = ((speed < 0) ? 0 : (speed));
tspeed = maxspeed;
movetar = {x:_local12, y:_local11};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
if (rr.utils.MathUtils.getDistance(_local15, _local14, _local3.x, _local3.y) < _local3.dfeel) {
_local6 = 1;
speed = ((speed < 0) ? 0 : (speed));
tspeed = maxspeed;
movetar = {x:_local10, y:_local9};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
}
_local13++;
}
_local18 = ea.statics.length;
_local13 = 0;
while (_local13 < _local18) {
var _local4 = ea.statics[_local13];
if (rr.utils.MathUtils.getDistance(x, y, _local4.x, _local4.y) < (dfeel + _local4.dfeel)) {
pause();
return(undefined);
}
if ((rr.utils.MathUtils.getDistance(_local12, _local11, _local4.x, _local4.y) < _local4.dfeel) || (rr.utils.MathUtils.getDistance(_local20, _local19, _local4.x, _local4.y) < _local4.dfeel)) {
_local5 = 1;
speed = ((speed > 0) ? 0 : (speed));
tspeed = -maxspeed;
movetar = {x:_local10, y:_local9};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
if (rr.utils.MathUtils.getDistance(_local10, _local9, _local4.x, _local4.y) < _local4.dfeel) {
_local7 = 1;
speed = ((speed > 0) ? 0 : (speed));
tspeed = -maxspeed;
movetar = {x:_local12, y:_local11};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
if (rr.utils.MathUtils.getDistance(_local17, _local16, _local4.x, _local4.y) < _local4.dfeel) {
_local8 = 1;
speed = ((speed < 0) ? 0 : (speed));
tspeed = maxspeed;
movetar = {x:_local12, y:_local11};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
if (rr.utils.MathUtils.getDistance(_local15, _local14, _local4.x, _local4.y) < _local4.dfeel) {
_local6 = 1;
speed = ((speed < 0) ? 0 : (speed));
tspeed = maxspeed;
movetar = {x:_local10, y:_local9};
rr.utils.Delegate.callDelayed(this, reapproach, 1500);
if ((((_local5 + _local7) + _local8) + _local6) > 2) {
pause();
return(undefined);
}
}
_local13++;
}
}
function rotateToTarget() {
var _local4;
_local4 = rr.utils.MathUtils.getAngle(x, y, movetar.x, movetar.y);
var _local2 = _local4;
var _local3 = (rot + 360) % 360;
_local2 = (_local2 + 360) % 360;
if ((_local2 - _local3) > 180) {
_local2 = _local2 - 360;
} else if ((_local2 - _local3) < -180) {
_local2 = _local2 + 360;
}
if ((_local2 - _local3) > 0) {
rot = rr.utils.MathUtils.formatAngle2(_local3 + curve);
} else {
rot = rr.utils.MathUtils.formatAngle2(_local3 - curve);
}
var _local5 = rr.utils.MathUtils.angDiff(rot, _local4);
if ((_local5 <= (curve + 1)) || ((360 - _local5) <= (curve + 1))) {
rot = _local4;
}
}
function getTarget() {
tar = _global.loc;
movetar = tar;
}
function onAreaDetect() {
getTarget();
tspeed = maxspeed;
status = "attack";
}
function crash(obj) {
if (iscrashed) {
return(undefined);
}
_global.train.crash(null, 2);
mov.base_mc.gotoAndPlay("bullup");
xspeed = obj.xspeed;
yspeed = obj.yspeed;
crashdir = -_global.train.crashRotDir;
crashrotspeed = _global.train.crashRotSpeed;
iscrashed = true;
}
function checkEnemyHit() {
var _local6 = x + (cos(((-rot) * pi) / 180) * 25);
var _local5 = y - (sin(((-rot) * pi) / 180) * 25);
var _local7 = ea.enemies.length;
var _local4 = 0;
while (_local4 < _local7) {
var _local3 = _global.stage["enemy_" + ea.enemies[_local4]];
if ((_local3 != this) && (!_local3.isdead)) {
if (rr.utils.MathUtils.getDistance(_local6, _local5, _local3.x, _local3.y) <= (15 + _local3.dfeel)) {
if (rr.utils.HitTest.isShapeHit(mov, _local3.mov)) {
_local3.die();
_local3.explode();
break;
}
}
}
_local4++;
}
}
function setRetreat() {
tspeed = maxspeed;
retreat = true;
movetar = {x:rect.left + (rect.width / 2), y:rect.top + (rect.height / 2)};
}
function pause() {
paused = true;
rr.utils.Delegate.callDelayed(this, reapproach, 5000);
}
function reapproach() {
if (retreat) {
movetar = {x:rect.left + (rect.width / 2), y:rect.top + (rect.height / 2)};
} else {
movetar = tar;
}
tspeed = maxspeed;
paused = false;
}
function addDamage(dmg) {
if (isdead) {
return(undefined);
}
if (!dmg) {
return(undefined);
}
damage = damage + dmg;
if (damage >= killlevel) {
die();
explode();
}
}
function die() {
if (isdead) {
return(undefined);
}
_global.landshot++;
super.die();
}
function explode() {
if (isexploded) {
return(undefined);
}
isexploded = true;
status = "";
_global.sounds.playSound(explodesound);
render();
mov.gotoAndPlay("explode");
rr.utils.Delegate.callDelayed(this, destroy, destroydelay);
}
function checkNightMode() {
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov.base_mc, 0, 80);
}
}
}
Symbol 3424 MovieClip [__Packages.rr.utils.HitTest] Frame 0
class rr.utils.HitTest
{
function HitTest () {
}
static function isShapeHit(p_clip1, p_clip2, p_alphaTolerance, p_scope) {
if (p_alphaTolerance == undefined) {
p_alphaTolerance = 0;
}
if (p_scope == undefined) {
p_scope = _root;
}
var _local4 = p_clip1.getBounds(p_scope);
var _local3 = p_clip2.getBounds(p_scope);
if (((_local4.xMax < _local3.xMin) || (_local3.xMax < _local4.xMin)) || ((_local4.yMax < _local3.yMin) || (_local3.yMax < _local4.yMin))) {
return(null);
}
var _local2 = {};
_local2.xMin = Math.max(_local4.xMin, _local3.xMin);
_local2.xMax = Math.min(_local4.xMax, _local3.xMax);
_local2.yMin = Math.max(_local4.yMin, _local3.yMin);
_local2.yMax = Math.min(_local4.yMax, _local3.yMax);
var _local7 = new flash.display.BitmapData(_local2.xMax - _local2.xMin, _local2.yMax - _local2.yMin, false);
var _local6 = p_clip1.transform.matrix;
var _local5 = {x:0, y:0};
p_clip1.localToGlobal(_local5);
_local6.tx = _local5.x - _local2.xMin;
_local6.ty = _local5.y - _local2.yMin;
_local7.draw(p_clip1, _local6, new flash.geom.ColorTransform(1, 1, 1, 1, 255, -255, -255, p_alphaTolerance));
_local6 = p_clip2.transform.matrix;
_local5 = {x:0, y:0};
p_clip2.localToGlobal(_local5);
_local6.tx = _local5.x - _local2.xMin;
_local6.ty = _local5.y - _local2.yMin;
_local7.draw(p_clip2, _local6, new flash.geom.ColorTransform(1, 1, 1, 1, 255, 255, 255, p_alphaTolerance), "difference");
var _local11 = _local7.getColorBoundsRect(4294967295, 4278255615);
if ((_local11.width > 0) || (_local11.height > 0)) {
return(true);
}
return(false);
}
static function drawBounds(bounds, bname, col) {
_root["bounds" + bname].removeMovieClip();
_root.createEmptyMovieClip("bounds" + bname, _root.getNextHighestDepth());
with (_root["bounds" + bname]) {
lineStyle(1, col, 100);
moveTo(bounds.xMin, bounds.yMin);
lineTo(bounds.xMax, bounds.yMin);
lineTo(bounds.xMax, bounds.yMax);
lineTo(bounds.xMin, bounds.yMax);
lineTo(bounds.xMin, bounds.yMin);
}
}
static function drawRectangle(rect, bounds) {
_root.rect.removeMovieClip();
_root.createEmptyMovieClip("rect", _root.getNextHighestDepth(), {_x:bounds.xMin, _y:bounds.yMin});
_root.rect.lineStyle(1, 39168, 100);
_root.rect.moveTo(rect.x, rect.y);
_root.rect.lineTo(rect.x + rect.width, rect.y);
_root.rect.lineTo(rect.x + rect.width, rect.y + rect.height);
_root.rect.lineTo(rect.x, rect.y + rect.height);
_root.rect.lineTo(rect.x, rect.y);
}
}
Symbol 3425 MovieClip [__Packages.rr.enemy.Basilisk] Frame 0
class rr.enemy.Basilisk extends rr.enemy.GroundUnit
{
var linkId, initObj, mode, dfeel, init, isexploded, status, explodesound, render, mov, destroydelay, isdead;
function Basilisk (iObj) {
super();
linkId = "Basilisk";
initObj = iObj;
mode = "static";
dfeel = 45;
init();
}
function die() {
super.die();
}
function explode() {
if (isexploded) {
return(undefined);
}
isexploded = true;
status = "";
_global.sounds.playSound(explodesound);
render();
mov.gotoAndPlay("explode");
rr.utils.Delegate.callDelayed(this, showBroken, destroydelay);
}
function showBroken() {
mov.gotoAndStop("dead");
mov.base_mc.gotoAndStop("broken");
}
function createMov() {
super.createMov();
if (isdead) {
showBroken();
}
}
}
Symbol 3426 MovieClip [__Packages.rr.enemy.Bunker] Frame 0
class rr.enemy.Bunker extends rr.enemy.GroundUnit
{
var linkId, initObj, mode, dfeel, scale, rot, rotBarrel, status, mov, checkNightMode, isdead, checkRender, x, y, ddetect, tar, getTarget, dtar, validangle, dfire, fire;
function Bunker (iObj) {
super();
linkId = "Bunker";
initObj = iObj;
mode = "static";
dfeel = 30;
init();
}
function init() {
super.init();
scale = initObj.s;
rot = initObj.r;
rotBarrel = rot;
status = "watch";
}
function createMov() {
var _local3 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
mov = _global.stage.attachMovie(linkId, rr.utils.StringUtils.getUniqueName(), _local3, {_xscale:scale, _yscale:scale, parent:this});
checkNightMode();
}
function update() {
if (isdead) {
checkRender();
return(undefined);
}
if (status == "watch") {
if (_global.train.isInRange(x, y, ddetect)) {
status = "attack";
}
}
if (status == "attack") {
if (!tar) {
getTarget();
}
dtar = rr.utils.MathUtils.getDistance(x, y, tar.x, tar.y);
aimAtTarget();
if (validangle) {
if (dtar <= dfire) {
fire();
}
}
}
checkRender();
}
function aimAtTarget() {
if (!tar) {
getTarget();
}
super.aimAtTarget();
validangle = false;
var _local3 = rr.utils.MathUtils.angDiff(rotBarrel, rot);
if ((_local3 < 30) || ((360 - _local3) < 30)) {
validangle = true;
return(undefined);
}
if (rr.utils.MathUtils.formatAngle2(rotBarrel) > rr.utils.MathUtils.formatAngle2(rot)) {
rotBarrel = rr.utils.MathUtils.formatAngle2(rot + 30);
} else {
rotBarrel = rr.utils.MathUtils.formatAngle2(rot - 30);
}
}
}
Symbol 3427 MovieClip [__Packages.rr.enemy.GatlingSingle] Frame 0
class rr.enemy.GatlingSingle extends rr.enemy.GroundUnit
{
var linkId, initObj, mode, dfeel, init, tfire, lastFired, mov, gunsound, rfire, dtar, rotBarrel, y, x;
function GatlingSingle (iObj) {
super();
linkId = "GatlingSingle";
initObj = iObj;
mode = "static";
dfeel = 28;
init();
}
function fire() {
if ((getTimer() - lastFired) < tfire) {
return(undefined);
}
lastFired = getTimer();
mov.barrel_mc.gotoAndPlay("shoot");
mov.barrel_mc.base_mc.gotoAndPlay("shoot");
_global.sounds.playSound(gunsound);
var _local3 = ((Math.random() < 0.5) ? (dtar - (Math.random() * rfire)) : (dtar + (Math.random() * rfire)));
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:x, y:y, rot:rotBarrel, d:_local3});
}
function checkNightMode() {
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov.barrel_mc.base_mc, 0, 80);
}
}
}
Symbol 3428 MovieClip [__Packages.rr.enemy.GatlingDouble] Frame 0
class rr.enemy.GatlingDouble extends rr.enemy.GroundUnit
{
var linkId, initObj, mode, dfeel, init, tfire, lastFired, mov, gunsound, rfire, dtar, rotBarrel, y, x;
function GatlingDouble (iObj) {
super();
linkId = "GatlingDouble";
initObj = iObj;
mode = "static";
dfeel = 28;
init();
}
function fire() {
if ((getTimer() - lastFired) < tfire) {
return(undefined);
}
lastFired = getTimer();
mov.barrel_mc.barrel1_mc.gotoAndPlay("shoot");
mov.barrel_mc.barrel1_mc.base_mc.gotoAndPlay("shoot");
mov.barrel_mc.barrel2_mc.gotoAndPlay("shoot");
mov.barrel_mc.barrel2_mc.base_mc.gotoAndPlay("shoot");
_global.sounds.playSound(gunsound);
var _local3 = ((Math.random() < 0.5) ? (dtar - (Math.random() * rfire)) : (dtar + (Math.random() * rfire)));
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:x, y:y, rot:rotBarrel, d:_local3});
}
function checkNightMode() {
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov.barrel_mc.barrel1_mc.base_mc, 0, 80);
rr.utils.ClipUtils.setTint(mov.barrel_mc.barrel2_mc.base_mc, 0, 80);
}
}
}
Symbol 3429 MovieClip [__Packages.rr.enemy.AirField] Frame 0
class rr.enemy.AirField extends rr.enemy.EnemyUnit
{
var linkId, mode, initObj, x, y, rot, planes, activeranges, dfeel, dranges, launchtime, sound, killlevel, destroydelay, explodesound, planesAdded, planecount, damage, actcount, uid, tlaunch, isdead, checkRender, mov, isexploded, render;
function AirField (iObj) {
super();
linkId = "AirField";
mode = "static";
initObj = iObj;
init();
}
function init() {
x = initObj.x;
y = initObj.y;
rot = initObj.r;
planes = rr.utils.StringUtils.scrambleArray(rr.conf.Config.translateEnemyCodes(initObj.e));
trace("planes: " + planes.length);
activeranges = new Array();
super.init();
dfeel = rr.conf.Config.getObjectValue(linkId, "feelerradius");
dranges = rr.conf.Config.getObjectValue(linkId, "detectionRanges");
launchtime = rr.conf.Config.getObjectValue(linkId, "launchtime");
sound = rr.conf.Config.getObjectValue(linkId, "startsound");
killlevel = rr.conf.Config.getObjectValue(linkId, "killlevel");
destroydelay = rr.conf.Config.getObjectValue(linkId, "destroydelay");
explodesound = rr.conf.Config.getObjectValue(linkId, "explodesound");
planesAdded = 0;
planecount = planes.length;
damage = 0;
actcount = 0;
setRanges();
_global.stage.afs.push(uid);
tlaunch = getTimer();
}
function update() {
if (isdead) {
checkRender();
return(undefined);
}
if (actcount != dranges.length) {
var _local5 = dranges.length;
var _local3 = 0;
while (_local3 < _local5) {
var _local4 = dranges[_local3];
if (!_local4.active) {
if (_global.train.isInRange(x, y, _local4.d)) {
_local4.active = true;
actcount++;
activeranges.push(_local3);
}
}
_local3++;
}
}
if (planesAdded < planecount) {
if ((getTimer() - tlaunch) > launchtime) {
addPlane();
}
}
checkRender();
}
function setRanges() {
var _local2 = 0;
while (_local2 < dranges.length) {
dranges[_local2].active = false;
dranges[_local2].planes = new Array();
var _local5 = Math.round((planecount * dranges[_local2].perc) / 100);
var _local4 = 0;
while (_local4 < _local5) {
var _local3 = planes.pop();
if (_local3) {
dranges[_local2].planes.push(_local3);
}
_local4++;
}
_local2++;
}
if (planes.length > 0) {
dranges[dranges.length - 1].planes.concat(planes);
}
}
function createMov() {
super.createMov();
mov.base_mc.gotoAndStop(_global.map.maptype);
}
function addPlane() {
if (isdead) {
return(undefined);
}
tlaunch = getTimer();
var _local3 = getRandomPlane();
if (!_local3) {
return(undefined);
}
trace("addPlane: " + _local3);
_global.sounds.playSound(sound);
rr.enemy.EnemyUtils.createEnemy({linkid:_local3, base:this});
planesAdded++;
}
function getRandomPlane() {
if (activeranges.length <= 0) {
return(undefined);
}
var _local2 = Math.round(Math.random() * (activeranges.length - 1));
var _local3 = dranges[activeranges[_local2]];
var _local4 = _local3.planes.pop();
if (_local3.planes.length == 0) {
activeranges.splice(_local2, 1);
}
return(_local4.toString());
}
function addDamage(dmg) {
if (isdead) {
return(undefined);
}
if (!dmg) {
return(undefined);
}
damage = damage + dmg;
if (damage >= killlevel) {
die();
explode();
}
}
function die() {
if (isdead) {
return(undefined);
}
_global.landshot++;
super.die();
}
function explode() {
if (isexploded) {
return(undefined);
}
isexploded = true;
_global.sounds.playSound(explodesound);
render();
mov.gotoAndPlay("explode");
rr.utils.Delegate.callDelayed(this, destroy, destroydelay);
}
function destroy() {
mov.base_mc.gotoAndStop(_global.map.maptype + "dead");
}
}
Symbol 3430 MovieClip [__Packages.rr.enemy.AirUnit] Frame 0
class rr.enemy.AirUnit extends rr.enemy.EnemyUnit
{
var mode, uid, base, initObj, dfeel, linkId, speedmax, altmax, mincurve, maxcurve, a, dlaunch, ddetect, dfire, tfire, killlevel, destroydelay, gunsound, explodesound, rot, speed, tspeed, alt, damage, lastFired, roll, troll, x, xstart, cos, pi, y, ystart, sin, status, movetar, checkRender, mov, createMov, curve, rolldir, maxroll, minroll, patrolpoint, tar, isdead, isexploded, destroy;
function AirUnit () {
super();
}
function init() {
mode = "dynamic";
super.init();
_global.stage.enemies_dyn.push(uid);
base = initObj.base;
dfeel = rr.conf.Config.getObjectValue(linkId, "feelerradius");
speedmax = rr.conf.Config.getObjectValue(linkId, "maxSpeed");
altmax = rr.conf.Config.getObjectValue(linkId, "altitude");
mincurve = rr.conf.Config.getObjectValue(linkId, "minCurve");
maxcurve = rr.conf.Config.getObjectValue(linkId, "maxCurve");
a = rr.conf.Config.getObjectValue(linkId, "acceleration");
dlaunch = rr.conf.Config.getObjectValue(linkId, "launchDistance");
ddetect = rr.conf.Config.getObjectValue(linkId, "detectionDistance");
dfire = rr.conf.Config.getObjectValue(linkId, "shootingDistance");
tfire = rr.conf.Config.getObjectValue(linkId, "shootingInterval");
killlevel = rr.conf.Config.getObjectValue(linkId, "killlevel");
destroydelay = rr.conf.Config.getObjectValue(linkId, "destroydelay");
gunsound = rr.conf.Config.getObjectValue(linkId, "gunsound");
explodesound = rr.conf.Config.getObjectValue(linkId, "explodesound");
rot = base.rot - 20;
speed = (tspeed = 0);
alt = 0;
damage = 0;
lastFired = getTimer();
roll = (troll = 0);
var _local5 = rr.utils.MathUtils.getAngle(0, 0, -81, -27) + base.rot;
var _local4 = rr.utils.MathUtils.getDistance(0, 0, -81, -27);
x = (xstart = base.x + (cos(((-_local5) * pi) / 180) * _local4));
trace("base.x: " + base.x);
y = (ystart = base.y - (sin(((-_local5) * pi) / 180) * _local4));
}
function update() {
if (speed != tspeed) {
speed = ((Math.abs(speed - tspeed) <= a) ? (tspeed) : (((tspeed > speed) ? (speed + a) : (speed - a))));
}
if (status != "suicide") {
if (alt < altmax) {
alt = alt + 0.5;
}
}
if (status == "launch") {
if (rr.utils.MathUtils.getDistance(x, y, xstart, ystart) > dlaunch) {
status = "approach";
getTargetPoint();
}
} else if (status == "patrol") {
if (rr.utils.MathUtils.getDistance(x, y, movetar.x, movetar.y) < 50) {
getTargetPoint();
}
if (_global.train.isInRange(x, y, ddetect)) {
status = "approach";
getTargetPoint();
}
} else if (status == "approach") {
checkFire();
if (rr.utils.MathUtils.getDistance(x, y, movetar.x, movetar.y) < 50) {
status = "reapproach";
getTargetPoint();
}
} else if (status == "reapproach") {
if (rr.utils.MathUtils.getDistance(x, y, movetar.x, movetar.y) < speed) {
status = "approach";
getTargetPoint();
}
}
rotateToTarget();
x = x + (cos(((-rot) * pi) / 180) * speed);
y = y - (sin(((-rot) * pi) / 180) * speed);
if (roll != troll) {
roll = roll + ((roll < troll) ? 1 : -1);
}
checkRender();
}
function render() {
if (!mov) {
createMov();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov._xscale = (mov._yscale = 70 + ((30 * alt) / altmax));
var _local3 = new flash.geom.Point(mov._x + alt, mov._y + alt);
mov.globalToLocal(_local3);
mov.shadow_mc._x = _local3.x;
mov.shadow_mc._y = _local3.y;
mov.base_mc.gotoAndStop("r" + roll.toString());
mov.base_mc._rotation = (mov.shadow_mc._rotation = rr.utils.MathUtils.formatAngle2(rot));
}
function launch() {
status = "launch";
getTargetPoint();
tspeed = speedmax;
}
function rotateToTarget() {
var _local5 = rr.utils.MathUtils.getAngle(x, y, movetar.x, movetar.y);
var _local2 = _local5;
var _local3 = (rot + 360) % 360;
_local2 = (_local2 + 360) % 360;
if ((_local2 - _local3) > 180) {
_local2 = _local2 - 360;
} else if ((_local2 - _local3) < -180) {
_local2 = _local2 + 360;
}
if ((_local2 - _local3) > 0) {
rot = rr.utils.MathUtils.formatAngle2(_local3 + curve);
rolldir = 1;
} else {
rot = rr.utils.MathUtils.formatAngle2(_local3 - curve);
if (status != "suicide") {
rolldir = -1;
}
}
var _local4 = rr.utils.MathUtils.angDiff(rot, _local5);
if ((_local4 <= curve) || ((360 - _local4) <= curve)) {
rot = _local5;
if (status != "suicide") {
troll = 0;
}
} else if (status != "suicide") {
var _local6 = ((rolldir < 0) ? (minroll) : (maxroll));
var _local7 = Math.min(Math.abs((100 * _local4) / 180), 100);
troll = Math.round((_local6 * _local7) / 100);
}
}
function getTargetPoint() {
var _local3;
var _local4;
curve = mincurve + (Math.random() * (maxcurve - mincurve));
if (status == "launch") {
_local3 = x + ((cos(((-rot) * pi) / 180) * dlaunch) * 2);
_local4 = y - ((sin(((-rot) * pi) / 180) * dlaunch) * 2);
movetar = {x:_local3, y:_local4};
}
if (status == "patrol") {
patrolpoint = ((!patrolpoint) ? "left" : (((patrolpoint == "left") ? "right" : "left")));
if (patrolpoint == "left") {
_local3 = Math.random() * _global.stage.width;
} else {
_local3 = _global.map.width - (Math.random() * _global.stage.width);
}
_local4 = Math.random() * _global.map.height;
movetar = {x:_local3, y:_local4};
}
if ((status == "approach") || (status == "suicide")) {
tar = (movetar = _global.train.getTargetSegment());
tar.addEventListener("onTrainTargetDie", this);
}
if (status == "reapproach") {
_local3 = x + (cos(((-rot) * pi) / 180) * dlaunch);
_local4 = y - (sin(((-rot) * pi) / 180) * dlaunch);
movetar = {x:_local3, y:_local4};
}
}
function onTrainTargetDie(evtObj) {
if (evtObj.target == tar) {
tar.removeEventListener("onTrainTargetDie", this);
tar = undefined;
status = "patrol";
getTargetPoint();
}
}
function addDamage(dmg) {
if (isdead) {
return(undefined);
}
if (!dmg) {
return(undefined);
}
damage = damage + dmg;
if (damage >= killlevel) {
die();
render();
}
}
function die() {
if (isdead) {
return(undefined);
}
_global.airshot++;
super.die();
}
function explode() {
if (isexploded) {
return(undefined);
}
status = "";
_global.sounds.playSound(explodesound);
isexploded = true;
render();
mov.gotoAndPlay("explode");
rr.utils.Delegate.callDelayed(this, destroy, destroydelay);
}
function checkNightMode() {
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov.base_mc, 0, 80);
rr.utils.ClipUtils.setTint(mov.barrel_mc.base_mc, 0, 80);
}
}
function checkFire() {
}
}
Symbol 3431 MovieClip [__Packages.rr.enemy.FockeWolf] Frame 0
class rr.enemy.FockeWolf extends rr.enemy.AirUnit
{
var linkId, initObj, minroll, maxroll, ygunroll1, ygunroll2, launch, isFiring, roll, mov, rot, status, y, x, rolldir, troll, alt, explode, dfire, sin, pi, cos, tfire, lastFired, gunsound, isdead, getTargetPoint;
function FockeWolf (iObj) {
super();
linkId = "FockeWolf";
initObj = iObj;
init();
}
function init() {
super.init();
minroll = -7;
maxroll = 7;
ygunroll1 = [12, 11, 10, 8, 6, 4, 1, 0, 0, 0, 0, 0];
ygunroll2 = [12, 12.5, 13, 13.5, 13.5, 13, 12, 11, 9, 6, 4, 4];
launch();
}
function render() {
super.render();
if (isFiring) {
if (roll >= 0) {
mov.guns_mc.gunleft_mc._y = -ygunroll2[Math.abs(roll)];
mov.guns_mc.gunright_mc._y = ygunroll1[Math.abs(roll)];
} else {
mov.guns_mc.gunleft_mc._y = -ygunroll1[Math.abs(roll)];
mov.guns_mc.gunright_mc._y = ygunroll2[Math.abs(roll)];
}
mov.guns_mc._rotation = rr.utils.MathUtils.formatAngle2(rot);
}
}
function update() {
if (status == "suicide") {
var _local5 = rr.utils.ClipUtils.getFreeDepth(_global.stage, "SmokeTrail");
var _local4 = _global.stage.attachMovie("SmokeTrail", "smoke" + rr.utils.StringUtils.getUniqueName(), _local5, {x:x, y:y});
_local4._x = x - _global.camera.left;
_local4._y = y - _global.camera.top;
_local4._rotation = Math.round(Math.random() * 360);
roll = roll + rolldir;
if (roll > 12) {
roll = -12;
}
if (roll < -12) {
roll = 12;
}
troll = roll;
if (alt > 15) {
alt = alt - 1;
} else {
_global.sounds.stopSound("planecrash.wav");
explode();
}
}
super.update();
}
function checkFire() {
var _local3 = {x:x + (cos(((-rot) * pi) / 180) * dfire), y:y - (sin(((-rot) * pi) / 180) * dfire)};
if (_global.train.isInRange(_local3.x, _local3.y, 100)) {
isFiring = true;
fire();
} else {
isFiring = false;
}
}
function fire() {
if ((getTimer() - lastFired) < tfire) {
return(undefined);
}
mov.guns_mc.gunleft_mc.gotoAndPlay("shoot");
mov.guns_mc.gunright_mc.gotoAndPlay("shoot");
lastFired = getTimer();
_global.sounds.playSound(gunsound);
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:x, y:y, rot:rot + 5, d:dfire, playsound:true});
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:x, y:y, rot:rot - 5, d:dfire});
}
function die() {
if (isdead) {
return(undefined);
}
_global.sounds.playSound("planecrash.wav");
status = "suicide";
super.die();
getTargetPoint();
}
}
Symbol 3432 MovieClip [__Packages.rr.enemy.C47] Frame 0
class rr.enemy.C47 extends rr.enemy.AirUnit
{
var linkId, initObj, minroll, maxroll, launch, x, y, dfire, isFiring, tfire, lastFired, gunsound, cos, pi, sin, rot, isdead, explode;
function C47 (iObj) {
super();
linkId = "C47";
initObj = iObj;
init();
}
function init() {
super.init();
minroll = -7;
maxroll = 7;
launch();
}
function checkFire() {
if (_global.train.isInRange(x, y, dfire)) {
fire();
} else {
isFiring = false;
}
}
function fire() {
isFiring = false;
if ((getTimer() - lastFired) < tfire) {
return(undefined);
}
isFiring = true;
lastFired = getTimer();
_global.sounds.playSound(gunsound);
var _local3 = Math.random() * 360;
var _local4 = 20 + (Math.random() * 50);
var _local6 = x + (cos(((-_local3) * pi) / 180) * _local4);
var _local5 = y - (sin(((-_local3) * pi) / 180) * _local4);
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:_local6, y:_local5, rot:rot});
}
function die() {
if (isdead) {
return(undefined);
}
super.die();
explode();
}
}
Symbol 3433 MovieClip [__Packages.rr.enemy.Heli] Frame 0
class rr.enemy.Heli extends rr.enemy.EnemyUnit
{
var mode, uid, base, initObj, dfire, linkId, tfire, dhover, speedmax, altmax, mincurve, maxcurve, a, destroydelay, gunsound, explodesound, rot, speed, tspeed, alt, damage, lastFired, roll, troll, pitch, tpitch, x, xstart, cos, pi, y, ystart, sin, movetar, dtar, tar, dmovetar, status, thover, checkRender, mov, createMov, maxpitch, curve, rolldir, minroll, maxroll, isdead, killlevel, isexploded, destroy;
function Heli () {
super();
}
function init() {
mode = "dynamic";
super.init();
_global.stage.enemies_dyn.push(uid);
base = initObj.base;
dfire = rr.conf.Config.getObjectValue(linkId, "shootingDistance");
tfire = rr.conf.Config.getObjectValue(linkId, "shootingInterval");
dhover = rr.conf.Config.getObjectValue(linkId, "hoverDistance");
speedmax = rr.conf.Config.getObjectValue(linkId, "maxSpeed");
altmax = rr.conf.Config.getObjectValue(linkId, "altitude");
mincurve = rr.conf.Config.getObjectValue(linkId, "minCurve");
maxcurve = rr.conf.Config.getObjectValue(linkId, "maxCurve");
a = rr.conf.Config.getObjectValue(linkId, "acceleration");
destroydelay = rr.conf.Config.getObjectValue(linkId, "destroydelay");
gunsound = rr.conf.Config.getObjectValue(linkId, "gunsound");
explodesound = rr.conf.Config.getObjectValue(linkId, "explodesound");
rot = base.rot - 20;
speed = (tspeed = 0);
alt = 0;
damage = 0;
lastFired = getTimer();
roll = (troll = 0);
pitch = (tpitch = 0);
var _local5 = rr.utils.MathUtils.getAngle(0, 0, -81, -27) + base.rot;
var _local4 = rr.utils.MathUtils.getDistance(0, 0, -81, -27);
x = (xstart = base.x + (cos(((-_local5) * pi) / 180) * _local4));
y = (ystart = base.y - (sin(((-_local5) * pi) / 180) * _local4));
lastFired = getTimer();
launch();
}
function update() {
tspeed = speedmax * Math.min(rr.utils.MathUtils.getDistance(x, y, movetar.x, movetar.y) / 100, 1);
if (speed != tspeed) {
speed = ((Math.abs(speed - tspeed) <= a) ? (tspeed) : (((tspeed > speed) ? (speed + a) : (speed - a))));
}
if (alt < altmax) {
alt = alt + 0.5;
}
dtar = rr.utils.MathUtils.getDistance(x, y, tar.x, tar.y);
dmovetar = rr.utils.MathUtils.getDistance(x, y, movetar.x, movetar.y);
rotateToTarget();
if (status == "approach") {
var _local2 = rr.utils.MathUtils.formatAngle2(rr.utils.MathUtils.getAngle(x, y, movetar.x, movetar.y));
x = x + (cos(((-_local2) * pi) / 180) * speed);
y = y - (sin(((-_local2) * pi) / 180) * speed);
if (movetar == tar) {
if (dtar < dhover) {
getMoveTarget();
}
}
if (dmovetar <= 100) {
if ((dtar <= dhover) && (dtar > (dhover / 2))) {
status = "hover";
movetar = tar;
thover = getTimer();
} else {
getMoveTarget();
}
}
}
if (status == "hover") {
if ((getTimer() - thover) > 4000) {
if (dtar > dhover) {
getMoveTarget();
} else {
thover = getTimer();
}
}
}
if (dtar <= dfire) {
fire();
}
if (roll != troll) {
roll = roll + ((roll < troll) ? 1 : -1);
}
if (pitch != tpitch) {
pitch = pitch + ((pitch < tpitch) ? 1 : -1);
}
checkRender();
}
function render() {
if (!mov) {
createMov();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov._xscale = (mov._yscale = 70 + ((30 * alt) / altmax));
var _local3 = new flash.geom.Point(mov._x + alt, mov._y + alt);
mov.globalToLocal(_local3);
mov.shadow_mc._x = _local3.x;
mov.shadow_mc._y = _local3.y;
var _local4 = ((pitch > (maxpitch / 2)) ? "roll" : "pitch");
if (_local4 == "roll") {
mov.base_mc.mc.gotoAndStop("r" + roll.toString());
} else {
mov.base_mc.mc.gotoAndStop("s" + pitch.toString());
}
mov.base_mc._rotation = (mov.shadow_mc._rotation = rr.utils.MathUtils.formatAngle2(rot));
}
function launch() {
status = "approach";
getTarget();
tspeed = speedmax;
}
function getTarget() {
tar = _global.train.getTargetSegment();
tar.addEventListener("onTrainTargetDie", this);
getMoveTarget();
}
function getMoveTarget() {
if (!tar) {
return(undefined);
}
if (dtar > (dhover * 2)) {
movetar = tar;
} else {
var _local2 = Math.random() * 360;
movetar = {x:tar.x + (cos(((-_local2) * pi) / 180) * (dhover - 20)), y:tar.y - (sin(((-_local2) * pi) / 180) * (dhover - 20))};
}
status = "approach";
}
function onTrainTargetDie(evtObj) {
if (evtObj.target == tar) {
tar.removeEventListener("onTrainTargetDie", this);
getTarget();
}
}
function rotateToTarget() {
curve = mincurve + ((maxcurve - mincurve) * (1 - Math.min(dmovetar / 150, 1)));
var _local5 = rr.utils.MathUtils.getAngle(x, y, movetar.x, movetar.y);
var _local2 = _local5;
var _local3 = (rot + 360) % 360;
_local2 = (_local2 + 360) % 360;
if ((_local2 - _local3) > 180) {
_local2 = _local2 - 360;
} else if ((_local2 - _local3) < -180) {
_local2 = _local2 + 360;
}
if ((_local2 - _local3) > 0) {
rot = rr.utils.MathUtils.formatAngle2(_local3 + curve);
rolldir = 1;
} else {
rot = rr.utils.MathUtils.formatAngle2(_local3 - curve);
rolldir = -1;
}
var _local4 = rr.utils.MathUtils.angDiff(rot, _local5);
if ((_local4 <= (curve + 1)) || ((360 - _local4) <= (curve + 1))) {
rot = _local5;
troll = 0;
} else {
var _local6 = ((rolldir < 0) ? (maxroll) : (minroll));
var _local7 = Math.min(Math.abs((100 * _local4) / 180), 100);
troll = Math.round((_local6 * _local7) / 100);
}
tpitch = Math.min(Math.round((maxpitch * speed) / speedmax), maxpitch);
}
function fire() {
if ((getTimer() - lastFired) < tfire) {
return(undefined);
}
lastFired = getTimer();
_global.sounds.playSound(gunsound);
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:x, y:y, rot:rot, tar:tar});
}
function addDamage(dmg) {
if (isdead) {
return(undefined);
}
if (!dmg) {
return(undefined);
}
damage = damage + dmg;
if (damage >= killlevel) {
die();
render();
}
}
function die() {
if (isdead) {
return(undefined);
}
_global.airshot++;
super.die();
explode();
}
function explode() {
if (isexploded) {
return(undefined);
}
status = "";
_global.sounds.playSound(explodesound);
isexploded = true;
render();
mov.gotoAndPlay("explode");
rr.utils.Delegate.callDelayed(this, destroy, destroydelay);
}
}
Symbol 3434 MovieClip [__Packages.rr.enemy.BellHuey] Frame 0
class rr.enemy.BellHuey extends rr.enemy.Heli
{
var linkId, initObj, minroll, maxroll, maxpitch, dfeel, init;
function BellHuey (iObj) {
super();
linkId = "BellHuey";
initObj = iObj;
minroll = -9;
maxroll = 9;
maxpitch = 10;
dfeel = 21;
init();
}
}
Symbol 3435 MovieClip [__Packages.rr.ammo.AmmoLargeCannon] Frame 0
class rr.ammo.AmmoLargeCannon extends rr.ammo.AmmoPlayerDefault
{
var linkId, parentLinkId, initObj, init;
function AmmoLargeCannon (iObj) {
super();
linkId = "AmmoLargeCannon";
parentLinkId = "LargeCannon";
initObj = iObj;
init();
}
}
Symbol 3436 MovieClip [__Packages.rr.ammo.AmmoHugeCannon] Frame 0
class rr.ammo.AmmoHugeCannon extends rr.ammo.AmmoPlayerDefault
{
var linkId, parentLinkId, initObj, init;
function AmmoHugeCannon (iObj) {
super();
linkId = "AmmoHugeCannon";
parentLinkId = "HugeCannon";
initObj = iObj;
init();
}
}
Symbol 3437 MovieClip [__Packages.rr.ammo.AmmoBunkerBuster] Frame 0
class rr.ammo.AmmoBunkerBuster extends rr.ammo.AmmoPlayerDefault
{
var linkId, parentLinkId, initObj, init;
function AmmoBunkerBuster (iObj) {
super();
linkId = "AmmoBunkerBuster";
parentLinkId = "BunkerBuster";
initObj = iObj;
init();
}
}
Symbol 3438 MovieClip [__Packages.rr.ammo.AmmoRailRockets] Frame 0
class rr.ammo.AmmoRailRockets extends rr.ammo.Ammo
{
var linkId, parentLinkId, initObj, dfeel, dir, x, y, minrange, maxrange, speedmax, mincurve, maxcurve, a, startsound, loopsoundid, explodesound, damage, rexplode, cellId, d, speed, tspeed, loopsound, mov, createMov, rot, cos, pi, sin, exploded, range, clearMov, curve, events, destroy;
function AmmoRailRockets (iObj) {
super();
linkId = "AmmoRailRockets";
parentLinkId = "RailRockets";
initObj = iObj;
dfeel = 5;
init();
}
function init() {
dir = initObj.dir;
x = initObj.x;
y = initObj.y;
super.init();
minrange = rr.conf.Config.getObjectValue(parentLinkId, "ammominrange");
maxrange = rr.conf.Config.getObjectValue(parentLinkId, "ammomaxrange");
speedmax = rr.conf.Config.getObjectValue(parentLinkId, "ammomaxSpeed");
mincurve = rr.conf.Config.getObjectValue(parentLinkId, "ammominCurve");
maxcurve = rr.conf.Config.getObjectValue(parentLinkId, "ammomaxCurve");
a = rr.conf.Config.getObjectValue(parentLinkId, "ammoacceleration");
startsound = rr.conf.Config.getObjectValue(parentLinkId, "ammostartsound");
loopsoundid = rr.conf.Config.getObjectValue(parentLinkId, "ammosound");
explodesound = rr.conf.Config.getObjectValue(parentLinkId, "ammoexplodesound");
damage = rr.conf.Config.getObjectValue(parentLinkId, "ammoexplosiondamage");
rexplode = rr.conf.Config.getObjectValue(parentLinkId, "ammoexplosionradius");
cellId = _global.map.getCellByPos(x, y).id;
d = (speed = (tspeed = 0));
loopsound = _global.sounds.addLoopSound(this);
launch();
}
function render() {
if (!mov) {
createMov();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov._rotation = rr.utils.MathUtils.formatAngle2(rot);
}
function update() {
if (speed != tspeed) {
speed = ((Math.abs(speed - tspeed) <= a) ? (tspeed) : (((tspeed > speed) ? (speed + a) : (speed - a))));
}
rotate();
var _local9 = x;
var _local8 = y;
x = x + (cos(((-rot) * pi) / 180) * speed);
y = y - (sin(((-rot) * pi) / 180) * speed);
d = d + rr.utils.MathUtils.getDistance(x, y, _local9, _local8);
if (exploded) {
render();
return(undefined);
}
var _local6 = _global.map["cell_" + cellId];
if (((x < _local6.left) || (x >= _local6.right)) || ((y < _local6.top) | (y >= _local6.bottom))) {
_local6 = _global.map.getCellByPos(x, y);
cellId = _local6.id;
}
var _local7 = _local6.enemies.length;
var _local4 = 0;
while (_local4 < _local7) {
var _local3 = _global.stage["enemy_" + _local6.enemies[_local4]];
if (_local3.isdead) {
} else if (rr.utils.MathUtils.getDistance(x, y, _local3.x, _local3.y) < (_local3.dfeel + dfeel)) {
_local3.render();
var _local5 = false;
if (_local3.mov.hitTest(x - _global.camera.left, y - _global.camera.top, true)) {
_local5 = true;
}
if (_local5) {
explode();
break;
}
}
_local4++;
}
if (d > range) {
explode();
}
checkRender();
}
function checkRender() {
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
if (!exploded) {
if ((!loopsound.isplaying) || (loopsound.vol < 100)) {
_global.sounds.playLoopSound(this);
}
}
render();
} else if (mov) {
_global.sounds.stopLoopSound(this);
clearMov();
}
}
function launch() {
_global.sounds.playSound(startsound);
curve = mincurve + (Math.random() * (maxcurve - mincurve));
range = minrange + (Math.random() * (maxrange - minrange));
tspeed = speedmax;
}
function rotate() {
if (dir == "right") {
rot = rr.utils.MathUtils.formatAngle2(rot + curve);
} else {
rot = rr.utils.MathUtils.formatAngle2(rot - curve);
}
}
function explode() {
if (exploded) {
return(undefined);
}
exploded = true;
speed = speed / 10;
tspeed = 0;
_global.sounds.playSound(explodesound);
events.dispatchEvent({type:"onRemoveLoopSound", target:this});
var _local5 = _global.map["cell_" + cellId];
var _local6 = _local5.enemies.length;
var _local4 = 0;
while (_local4 < _local6) {
var _local3 = _global.stage["enemy_" + _local5.enemies[_local4]];
if (_local3.isdead) {
} else if (rr.utils.MathUtils.getDistance(x, y, _local3.x, _local3.y) < rexplode) {
_local3.addDamage(damage);
}
_local4++;
}
render();
mov.gotoAndPlay("explode");
var _local7 = rr.conf.Config.getObjectValue(parentLinkId, "ammoduration");
rr.utils.Delegate.callDelayed(this, destroy, _local7);
}
}
Symbol 3439 MovieClip [__Packages.rr.ammo.AmmoSmallFastCannon] Frame 0
class rr.ammo.AmmoSmallFastCannon extends rr.ammo.AmmoBullet
{
var linkId, parentLinkId, initObj, dfeel, init;
function AmmoSmallFastCannon (iObj) {
super();
linkId = "AmmoSmallFastCannon";
parentLinkId = "SmallFastCannon";
initObj = iObj;
dfeel = 3.5;
init();
}
}
Symbol 3440 MovieClip [__Packages.rr.ammo.Heatseeker] Frame 0
class rr.ammo.Heatseeker extends rr.ammo.Ammo
{
var linkId, initObj, x, y, range, speedmax, mincurve, maxcurve, a, ddetect, startsound, loopsoundid, explodesound, damage, rexplode, d, speed, tspeed, loopsound, mov, createMov, rot, status, etar, tar, isexploded, cos, pi, sin, clearMov, curve, events, destroy;
function Heatseeker (iObj) {
super();
linkId = "Heatseeker";
initObj = iObj;
init();
}
function init() {
x = initObj.x;
y = initObj.y;
super.init();
range = rr.conf.Config.getObjectValue(linkId, "range");
speedmax = rr.conf.Config.getObjectValue(linkId, "maxSpeed");
mincurve = rr.conf.Config.getObjectValue(linkId, "minCurve");
maxcurve = rr.conf.Config.getObjectValue(linkId, "maxCurve");
a = rr.conf.Config.getObjectValue(linkId, "acceleration");
ddetect = rr.conf.Config.getObjectValue(linkId, "detectionDistance");
startsound = rr.conf.Config.getObjectValue(linkId, "startsound");
loopsoundid = rr.conf.Config.getObjectValue(linkId, "sound");
explodesound = rr.conf.Config.getObjectValue(linkId, "explodesound");
damage = rr.conf.Config.getObjectValue(linkId, "explosiondamage");
rexplode = rr.conf.Config.getObjectValue(linkId, "explosionradius");
d = (speed = (tspeed = 0));
loopsound = _global.sounds.addLoopSound(this);
launch();
}
function render() {
if (!mov) {
createMov();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov._rotation = rr.utils.MathUtils.formatAngle2(rot);
}
function update() {
if (speed != tspeed) {
speed = ((Math.abs(speed - tspeed) <= a) ? (tspeed) : (((tspeed > speed) ? (speed + a) : (speed - a))));
}
if (status == "launch") {
if (d > 50) {
status = "approach";
getEnemyTarget();
}
} else if (status == "approach") {
if (etar) {
if (rr.utils.MathUtils.getDistance(x, y, tar.x, tar.y) < (speed * 2)) {
explode();
}
} else {
getEnemyTarget();
}
}
if (!isexploded) {
rotateToTarget();
}
var _local3 = x;
var _local2 = y;
x = x + (cos(((-rot) * pi) / 180) * speed);
y = y - (sin(((-rot) * pi) / 180) * speed);
d = d + rr.utils.MathUtils.getDistance(x, y, _local3, _local2);
if (status != "exploded") {
if (d > range) {
explode();
}
checkRender();
} else {
render();
}
}
function checkRender() {
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
if (!isexploded) {
if ((!loopsound.isplaying) || (loopsound.vol < 100)) {
_global.sounds.playLoopSound(this);
}
}
render();
} else if (mov) {
_global.sounds.stopLoopSound(this);
clearMov();
}
}
function launch() {
status = "launch";
_global.sounds.playSound(startsound);
curve = mincurve + (Math.random() * (maxcurve - mincurve));
tar = {x:x + (cos(((-rot) * pi) / 180) * 3000), y:y - (sin(((-rot) * pi) / 180) * 3000)};
tspeed = speedmax;
}
function rotateToTarget() {
var _local4 = rr.utils.MathUtils.getAngle(x, y, tar.x, tar.y);
var _local2 = _local4;
var _local3 = (rot + 360) % 360;
_local2 = (_local2 + 360) % 360;
if ((_local2 - _local3) > 180) {
_local2 = _local2 - 360;
} else if ((_local2 - _local3) < -180) {
_local2 = _local2 + 360;
}
if ((_local2 - _local3) > 0) {
rot = rr.utils.MathUtils.formatAngle2(_local3 + curve);
} else {
rot = rr.utils.MathUtils.formatAngle2(_local3 - curve);
}
var _local5 = rr.utils.MathUtils.angDiff(rot, _local4);
if ((_local5 <= curve) || ((360 - _local5) <= curve)) {
rot = _local4;
}
}
function getEnemyTarget() {
status = "approach";
var _local5 = _global.stage.enemies_dyn.length;
var _local4 = 0;
while (_local4 < _local5) {
var _local3 = _global.stage["enemy_" + _global.stage.enemies_dyn[_local4]];
if (!_local3.isdead) {
if (rr.utils.MathUtils.getDistance(x, y, _local3.x, _local3.y) <= ddetect) {
etar = _local3;
break;
}
}
_local4++;
}
if (etar) {
curve = mincurve + (Math.random() * (maxcurve - mincurve));
tar = etar;
}
}
function explode() {
if (isexploded) {
return(undefined);
}
isexploded = true;
speed = speed / 10;
tspeed = 0;
_global.sounds.playSound(explodesound);
events.dispatchEvent({type:"onRemoveLoopSound", target:this});
if (etar) {
var _local4 = rr.utils.MathUtils.getDistance(x, y, etar.x, etar.y);
if (_local4 < rexplode) {
etar.addDamage(damage);
}
}
render();
mov.gotoAndPlay("explode");
var _local3 = rr.conf.Config.getObjectValue(linkId, "ammoduration");
rr.utils.Delegate.callDelayed(this, destroy, _local3);
}
}
Symbol 3441 MovieClip [__Packages.rr.ammo.AmmoDefault] Frame 0
class rr.ammo.AmmoDefault extends rr.ammo.Ammo
{
var d, initObj, x, cos, pi, rot, y, sin, damage, parentLinkId, rexplode, created, createMov, destroy;
function AmmoDefault () {
super();
}
function init() {
super.init();
d = initObj.d;
x = initObj.x + (cos(((-rot) * pi) / 180) * d);
y = initObj.y - (sin(((-rot) * pi) / 180) * d);
damage = rr.conf.Config.getObjectValue(parentLinkId, "ammodamage");
rexplode = rr.conf.Config.getObjectValue(parentLinkId, "explosionradius");
var _local3 = (40 * d) / rr.conf.Config.getObjectValue(parentLinkId, "ammospeed");
rr.utils.Delegate.callDelayed(this, createDelayed, _local3);
}
function update() {
if (!created) {
return(undefined);
}
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
super.render();
}
}
function createDelayed() {
created = true;
_global.sounds.playSound(rr.conf.Config.getObjectValue(parentLinkId, "ammosound"));
checkHit();
createMov();
var _local3 = rr.conf.Config.getObjectValue(parentLinkId, "ammoduration");
rr.utils.Delegate.callDelayed(this, destroy, _local3);
}
function checkHit() {
var _local7 = _global.train.segments.length;
var _local5 = 0;
while (_local5 < _local7) {
var _local4 = _global.train.segments[_local5];
checkObjectHit(_local4);
var _local6 = _local4.weapons.length;
var _local3 = 0;
while (_local3 < _local6) {
checkObjectHit(_local4.weapons[_local3]);
_local3++;
}
_local5++;
}
}
function checkObjectHit(obj) {
var _local4 = rr.utils.MathUtils.getDistance(obj.x, obj.y, x, y);
if (_local4 <= obj.dfeel) {
obj.render();
if (obj.mov.base_mc.hitTest(x - _global.camera.left, y - _global.camera.top, true)) {
obj.addDamage(damage);
return(undefined);
}
}
if (rexplode) {
if (_local4 < rexplode) {
obj.addDamage(Math.round(damage / (1 + (_local4 / 25))));
}
}
}
}
Symbol 3442 MovieClip [__Packages.rr.ammo.AmmoPotTank] Frame 0
class rr.ammo.AmmoPotTank extends rr.ammo.AmmoDefault
{
var linkId, parentLinkId, initObj, init;
function AmmoPotTank (iObj) {
super();
linkId = "AmmoPotTank";
parentLinkId = "PotTank";
initObj = iObj;
init();
}
}
Symbol 3443 MovieClip [__Packages.rr.ammo.AmmoOldJeep] Frame 0
class rr.ammo.AmmoOldJeep extends rr.ammo.AmmoDefault
{
var linkId, parentLinkId, initObj, init;
function AmmoOldJeep (iObj) {
super();
linkId = "AmmoOldJeep";
parentLinkId = "OldJeep";
initObj = iObj;
init();
}
}
Symbol 3444 MovieClip [__Packages.rr.ammo.AmmoGunTruck] Frame 0
class rr.ammo.AmmoGunTruck extends rr.ammo.AmmoDefault
{
var linkId, parentLinkId, initObj, init;
function AmmoGunTruck (iObj) {
super();
linkId = "AmmoGunTruck";
parentLinkId = "GunTruck";
initObj = iObj;
init();
}
}
Symbol 3445 MovieClip [__Packages.rr.ammo.AmmoArmoredJeep] Frame 0
class rr.ammo.AmmoArmoredJeep extends rr.ammo.AmmoDefault
{
var linkId, parentLinkId, initObj, init;
function AmmoArmoredJeep (iObj) {
super();
linkId = "AmmoArmoredJeep";
parentLinkId = "ArmoredJeep";
initObj = iObj;
init();
}
}
Symbol 3446 MovieClip [__Packages.rr.ammo.AmmoBasilisk] Frame 0
class rr.ammo.AmmoBasilisk extends rr.ammo.AmmoDefault
{
var linkId, parentLinkId, initObj, init;
function AmmoBasilisk (iObj) {
super();
linkId = "AmmoBasilisk";
parentLinkId = "Basilisk";
initObj = iObj;
init();
}
}
Symbol 3447 MovieClip [__Packages.rr.ammo.AmmoBunker] Frame 0
class rr.ammo.AmmoBunker extends rr.ammo.AmmoDefault
{
var linkId, parentLinkId, initObj, init;
function AmmoBunker (iObj) {
super();
linkId = "AmmoBunker";
parentLinkId = "Bunker";
initObj = iObj;
init();
}
}
Symbol 3448 MovieClip [__Packages.rr.ammo.AmmoGatlingSingle] Frame 0
class rr.ammo.AmmoGatlingSingle extends rr.ammo.AmmoDefault
{
var linkId, parentLinkId, initObj, init;
function AmmoGatlingSingle (iObj) {
super();
linkId = "AmmoGatlingSingle";
parentLinkId = "GatlingSingle";
initObj = iObj;
init();
}
}
Symbol 3449 MovieClip [__Packages.rr.ammo.AmmoGatlingDouble] Frame 0
class rr.ammo.AmmoGatlingDouble extends rr.ammo.AmmoDefault
{
var linkId, parentLinkId, initObj, init;
function AmmoGatlingDouble (iObj) {
super();
linkId = "AmmoGatlingDouble";
parentLinkId = "GatlingDouble";
initObj = iObj;
init();
}
}
Symbol 3450 MovieClip [__Packages.rr.ammo.AmmoAbrahams] Frame 0
class rr.ammo.AmmoAbrahams extends rr.ammo.AmmoDefault
{
var linkId, parentLinkId, initObj, init;
function AmmoAbrahams (iObj) {
super();
linkId = "AmmoAbrahams";
parentLinkId = "Abrahams";
initObj = iObj;
init();
}
}
Symbol 3451 MovieClip [__Packages.rr.ammo.AmmoElephant] Frame 0
class rr.ammo.AmmoElephant extends rr.ammo.AmmoDefault
{
var linkId, parentLinkId, initObj, init;
function AmmoElephant (iObj) {
super();
linkId = "AmmoElephant";
parentLinkId = "Elephant";
initObj = iObj;
init();
}
}
Symbol 3452 MovieClip [__Packages.rr.ammo.AmmoPanther] Frame 0
class rr.ammo.AmmoPanther extends rr.ammo.AmmoDefault
{
var linkId, parentLinkId, initObj, init;
function AmmoPanther (iObj) {
super();
linkId = "AmmoPanther";
parentLinkId = "Panther";
initObj = iObj;
init();
}
}
Symbol 3453 MovieClip [__Packages.rr.ammo.AmmoRocketeer] Frame 0
class rr.ammo.AmmoRocketeer extends rr.ammo.Ammo
{
var linkId, parentLinkId, initObj, x, y, tar, range, speedmax, mincurve, maxcurve, a, startsound, loopsoundid, explodesound, damage, rexplode, d, speed, tspeed, loopsound, mov, createMov, rot, isexploded, cos, pi, sin, status, clearMov, curve, events, destroy;
function AmmoRocketeer (iObj) {
super();
linkId = "AmmoRocketeer";
parentLinkId = "Rocketeer";
initObj = iObj;
init();
}
function init() {
x = initObj.x;
y = initObj.y;
tar = _global.train.getTargetSegment();
super.init();
range = rr.conf.Config.getObjectValue(parentLinkId, "ammorange");
speedmax = rr.conf.Config.getObjectValue(parentLinkId, "ammomaxSpeed");
mincurve = rr.conf.Config.getObjectValue(parentLinkId, "ammominCurve");
maxcurve = rr.conf.Config.getObjectValue(parentLinkId, "ammomaxCurve");
a = rr.conf.Config.getObjectValue(parentLinkId, "ammoacceleration");
startsound = rr.conf.Config.getObjectValue(parentLinkId, "ammostartsound");
loopsoundid = rr.conf.Config.getObjectValue(parentLinkId, "ammosound");
explodesound = rr.conf.Config.getObjectValue(parentLinkId, "ammoexplodesound");
damage = rr.conf.Config.getObjectValue(parentLinkId, "ammoexplosiondamage");
rexplode = rr.conf.Config.getObjectValue(parentLinkId, "ammoexplosionradius");
d = (speed = (tspeed = 0));
loopsound = _global.sounds.addLoopSound(this);
launch();
}
function render() {
if (!mov) {
createMov();
checkNightMode();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov._rotation = rr.utils.MathUtils.formatAngle2(rot);
}
function update() {
if (speed != tspeed) {
speed = ((Math.abs(speed - tspeed) <= a) ? (tspeed) : (((tspeed > speed) ? (speed + a) : (speed - a))));
}
if (tar) {
if (rr.utils.MathUtils.getDistance(x, y, tar.x, tar.y) < (speed * 2)) {
explode();
}
}
if (!isexploded) {
if (d > 100) {
rotateToTarget();
}
}
var _local3 = x;
var _local2 = y;
x = x + (cos(((-rot) * pi) / 180) * speed);
y = y - (sin(((-rot) * pi) / 180) * speed);
d = d + rr.utils.MathUtils.getDistance(x, y, _local3, _local2);
if (status != "exploded") {
if (d > range) {
explode();
}
checkRender();
} else {
render();
}
}
function checkRender() {
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
if (!isexploded) {
if ((!loopsound.isplaying) || (loopsound.vol < 100)) {
_global.sounds.playLoopSound(this);
}
}
render();
} else if (mov) {
_global.sounds.stopLoopSound(this);
clearMov();
}
}
function launch() {
_global.sounds.playSound(startsound);
curve = mincurve + (Math.random() * (maxcurve - mincurve));
tspeed = speedmax;
}
function rotateToTarget() {
var _local4 = rr.utils.MathUtils.getAngle(x, y, tar.x, tar.y);
var _local2 = _local4;
var _local3 = (rot + 360) % 360;
_local2 = (_local2 + 360) % 360;
if ((_local2 - _local3) > 180) {
_local2 = _local2 - 360;
} else if ((_local2 - _local3) < -180) {
_local2 = _local2 + 360;
}
if ((_local2 - _local3) > 0) {
rot = rr.utils.MathUtils.formatAngle2(_local3 + curve);
} else {
rot = rr.utils.MathUtils.formatAngle2(_local3 - curve);
}
var _local5 = rr.utils.MathUtils.angDiff(rot, _local4);
if ((_local5 <= curve) || ((360 - _local5) <= curve)) {
rot = _local4;
}
}
function explode() {
if (isexploded) {
return(undefined);
}
isexploded = true;
speed = speed / 10;
tspeed = 0;
_global.sounds.playSound(explodesound);
events.dispatchEvent({type:"onRemoveLoopSound", target:this});
if (tar) {
var _local4 = rr.utils.MathUtils.getDistance(x, y, tar.x, tar.y);
if (_local4 < rexplode) {
tar.addDamage(damage);
}
}
render();
mov.gotoAndPlay("explode");
var _local3 = rr.conf.Config.getObjectValue(parentLinkId, "ammoduration");
rr.utils.Delegate.callDelayed(this, destroy, _local3);
}
function checkNightMode() {
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov.base_mc, 0, 80);
}
}
}
Symbol 3454 MovieClip [__Packages.rr.ammo.AmmoFockeWolf] Frame 0
class rr.ammo.AmmoFockeWolf extends rr.ammo.AmmoDefault
{
var linkId, parentLinkId, initObj, created, mov, movCol, render, x, y;
function AmmoFockeWolf (iObj) {
super();
linkId = "AmmoFockeWolf";
parentLinkId = "FockeWolf";
initObj = iObj;
init();
}
function init() {
super.init();
}
function createMov() {
created = true;
var _local5 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
var _local4 = ((Math.random() < 0.5) ? (linkId + "1") : (linkId + "2"));
mov = _global.stage.attachMovie(_local4, rr.utils.StringUtils.getUniqueName(), _local5, {parent:this});
var _local3 = new Color(mov);
_local3.setRGB(movCol);
render();
}
function checkHit() {
super.checkHit();
movCol = _global.stage.bg_bmp.getPixel(x - _global.camera.left, y - _global.camera.top);
var _local4 = rr.utils.ColorConversion.hex32toargb(movCol);
var _local5 = rr.utils.ColorConversion.rgbtohsb(_local4.red, _local4.green, _local4.blue);
if (_global.map.maptype == "desert") {
_local4 = rr.utils.ColorConversion.hsbtorgb(_local5.hue, _local5.saturation, _local5.brightness * (0.3 + (Math.random() / 3)));
} else {
_local4 = rr.utils.ColorConversion.hsbtorgb(_local5.hue, _local5.saturation, _local5.brightness * (1.3 + (Math.random() / 3)));
}
movCol = rr.utils.ColorConversion.argbtohex32(_local4.red, _local4.green, _local4.blue, 100);
}
}
Symbol 3455 MovieClip [__Packages.rr.utils.ColorConversion] Frame 0
class rr.utils.ColorConversion
{
function ColorConversion () {
}
static function hsbtorgb(hue, saturation, brightness) {
var _local9;
var _local11;
var _local10;
hue = hue % 360;
if (brightness == 0) {
return({red:0, green:0, blue:0});
}
saturation = saturation / 100;
brightness = brightness / 100;
hue = hue / 60;
var _local7 = Math.floor(hue);
var _local8 = hue - _local7;
var _local2 = brightness * (1 - saturation);
var _local4 = brightness * (1 - (saturation * _local8));
var _local3 = brightness * (1 - (saturation * (1 - _local8)));
switch (_local7) {
case 0 :
_local9 = brightness;
_local11 = _local3;
_local10 = _local2;
break;
case 1 :
_local9 = _local4;
_local11 = brightness;
_local10 = _local2;
break;
case 2 :
_local9 = _local2;
_local11 = brightness;
_local10 = _local3;
break;
case 3 :
_local9 = _local2;
_local11 = _local4;
_local10 = brightness;
break;
case 4 :
_local9 = _local3;
_local11 = _local2;
_local10 = brightness;
break;
case 5 :
_local9 = brightness;
_local11 = _local2;
_local10 = _local4;
}
_local9 = Math.round(_local9 * 255);
_local11 = Math.round(_local11 * 255);
_local10 = Math.round(_local10 * 255);
return({red:_local9, green:_local11, blue:_local10});
}
static function rgbtohsb(red, green, blue) {
var _local5 = Math.min(Math.min(red, green), blue);
var _local7 = Math.max(Math.max(red, green), blue);
var _local1 = _local7 - _local5;
var _local8 = ((_local7 == 0) ? 0 : (_local1 / _local7));
var _local6;
if (_local8 == 0) {
_local6 = 0;
} else {
if (red == _local7) {
_local6 = (60 * (green - blue)) / _local1;
} else if (green == _local7) {
_local6 = 120 + ((60 * (blue - red)) / _local1);
} else {
_local6 = 240 + ((60 * (red - green)) / _local1);
}
if (_local6 < 0) {
_local6 = _local6 + 360;
}
}
_local8 = _local8 * 100;
_local7 = (_local7 / 255) * 100;
return({hue:_local6, saturation:_local8, brightness:_local7});
}
static function rgbtohex24(red, green, blue) {
return(((red << 16) | (green << 8)) | blue);
}
static function hex24torgb(color) {
var _local2 = (color >> 16) & 255;
var _local4 = (color >> 8) & 255;
var _local1 = color & 255;
return({red:_local2, green:_local4, blue:_local1});
}
static function argbtohex32(red, green, blue, alpha) {
return((((alpha << 24) | (red << 16)) | (green << 8)) | blue);
}
static function hex32toargb(color) {
var _local3 = (color >> 24) & 255;
var _local4 = (color >> 16) & 255;
var _local5 = (color >> 8) & 255;
var _local2 = color & 255;
return({alpha:_local3, red:_local4, green:_local5, blue:_local2});
}
static function hex24tohsb(color) {
var _local1 = hex24torgb(color);
return(rgbtohsb(_local1.red, _local1.green, _local1.blue));
}
static function hsbtohex24(hue, saturation, brightness) {
var _local1 = hsbtorgb(hue, saturation, brightness);
return(rgbtohex24(_local1.red, _local1.green, _local1.blue));
}
static function toHexadecimalString(val) {
return("0x" + val.toString(16).toUpperCase());
}
}
Symbol 3456 MovieClip [__Packages.rr.ammo.AmmoB2] Frame 0
class rr.ammo.AmmoB2 extends rr.ammo.Ammo
{
var linkId, parentLinkId, initObj, x, y, damage, rexplode, created;
function AmmoB2 (iObj) {
super();
linkId = "AmmoB2";
parentLinkId = "B2";
initObj = iObj;
init();
}
function init() {
super.init();
x = initObj.x;
y = initObj.y;
damage = rr.conf.Config.getObjectValue(parentLinkId, "ammodamage");
rexplode = rr.conf.Config.getObjectValue(parentLinkId, "explosionradius");
checkHit();
var _local3 = rr.conf.Config.getObjectValue(parentLinkId, "ammodelay");
rr.utils.Delegate.callDelayed(this, createMov, _local3);
}
function update() {
if (!created) {
return(undefined);
}
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
super.render();
}
}
function createMov() {
created = true;
_global.sounds.playSound(rr.conf.Config.getObjectValue(parentLinkId, "ammosound"));
super.createMov();
}
function checkHit() {
var _local7 = _global.train.segments.length;
var _local5 = 0;
while (_local5 < _local7) {
var _local4 = _global.train.segments[_local5];
checkObjectHit(_local4);
var _local6 = _local4.weapons.length;
var _local3 = 0;
while (_local3 < _local6) {
checkObjectHit(_local4.weapons[_local3]);
_local3++;
}
_local5++;
}
}
function checkObjectHit(obj) {
var _local4 = rr.utils.MathUtils.getDistance(obj.x, obj.y, x, y);
if (_local4 <= obj.dfeel) {
obj.render();
if (obj.mov.hitTest(x - _global.camera.left, y - _global.camera.top, true)) {
obj.addDamage(damage);
return(undefined);
}
}
if (_local4 < rexplode) {
obj.addDamage(Math.round(damage / (1 + (_local4 / 25))));
}
}
}
Symbol 3457 MovieClip [__Packages.rr.ammo.AmmoC47] Frame 0
class rr.ammo.AmmoC47 extends rr.ammo.Ammo
{
var linkId, parentLinkId, initObj, x, y, damage, rexplode, created;
function AmmoC47 (iObj) {
super();
linkId = "AmmoC47";
parentLinkId = "C47";
initObj = iObj;
init();
}
function init() {
super.init();
x = initObj.x;
y = initObj.y;
damage = rr.conf.Config.getObjectValue(parentLinkId, "ammodamage");
rexplode = rr.conf.Config.getObjectValue(parentLinkId, "explosionradius");
checkHit();
var _local3 = rr.conf.Config.getObjectValue(parentLinkId, "ammodelay");
rr.utils.Delegate.callDelayed(this, createMov, _local3);
}
function update() {
if (!created) {
return(undefined);
}
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
super.render();
}
}
function createMov() {
created = true;
_global.sounds.playSound(rr.conf.Config.getObjectValue(parentLinkId, "ammosound"));
super.createMov();
}
function checkHit() {
var _local7 = _global.train.segments.length;
var _local5 = 0;
while (_local5 < _local7) {
var _local4 = _global.train.segments[_local5];
checkObjectHit(_local4);
var _local6 = _local4.weapons.length;
var _local3 = 0;
while (_local3 < _local6) {
checkObjectHit(_local4.weapons[_local3]);
_local3++;
}
_local5++;
}
}
function checkObjectHit(obj) {
var _local4 = rr.utils.MathUtils.getDistance(obj.x, obj.y, x, y);
if (_local4 <= obj.dfeel) {
obj.render();
if (obj.mov.hitTest(x - _global.camera.left, y - _global.camera.top, true)) {
obj.addDamage(damage);
return(undefined);
}
}
if (_local4 < rexplode) {
obj.addDamage(Math.round(damage / (1 + (_local4 / 25))));
}
}
}
Symbol 3458 MovieClip [__Packages.rr.ammo.AmmoWartHog] Frame 0
class rr.ammo.AmmoWartHog extends rr.ammo.AmmoDefault
{
var linkId, parentLinkId, initObj, init, created, mov, movCol, render, x, y;
function AmmoWartHog (iObj) {
super();
linkId = "AmmoWartHog";
parentLinkId = "WartHog";
initObj = iObj;
init();
}
function createMov() {
created = true;
var _local5 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
var _local4 = ((Math.random() < 0.5) ? (linkId + "1") : (linkId + "2"));
mov = _global.stage.attachMovie(_local4, rr.utils.StringUtils.getUniqueName(), _local5, {parent:this});
var _local3 = new Color(mov);
_local3.setRGB(movCol);
render();
}
function checkHit() {
super.checkHit();
movCol = _global.stage.bg_bmp.getPixel(x - _global.camera.left, y - _global.camera.top);
var _local4 = rr.utils.ColorConversion.hex32toargb(movCol);
var _local5 = rr.utils.ColorConversion.rgbtohsb(_local4.red, _local4.green, _local4.blue);
if (_global.map.maptype == "desert") {
_local4 = rr.utils.ColorConversion.hsbtorgb(_local5.hue, _local5.saturation, _local5.brightness * (0.3 + (Math.random() / 3)));
} else {
_local4 = rr.utils.ColorConversion.hsbtorgb(_local5.hue, _local5.saturation, _local5.brightness * (1.3 + (Math.random() / 3)));
}
movCol = rr.utils.ColorConversion.argbtohex32(_local4.red, _local4.green, _local4.blue, 100);
}
}
Symbol 3459 MovieClip [__Packages.rr.ammo.AmmoMesserSchmidt] Frame 0
class rr.ammo.AmmoMesserSchmidt extends rr.ammo.AmmoDefault
{
var linkId, parentLinkId, initObj, init, created, mov, movCol, render, x, y;
function AmmoMesserSchmidt (iObj) {
super();
linkId = "AmmoMesserSchmidt";
parentLinkId = "MesserSchmidt";
initObj = iObj;
init();
}
function createMov() {
created = true;
var _local5 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
var _local4 = ((Math.random() < 0.5) ? (linkId + "1") : (linkId + "2"));
mov = _global.stage.attachMovie(_local4, rr.utils.StringUtils.getUniqueName(), _local5, {parent:this});
var _local3 = new Color(mov);
_local3.setRGB(movCol);
render();
}
function checkHit() {
super.checkHit();
movCol = _global.stage.bg_bmp.getPixel(x - _global.camera.left, y - _global.camera.top);
var _local4 = rr.utils.ColorConversion.hex32toargb(movCol);
var _local5 = rr.utils.ColorConversion.rgbtohsb(_local4.red, _local4.green, _local4.blue);
_local4 = rr.utils.ColorConversion.hsbtorgb(_local5.hue, _local5.saturation, _local5.brightness * (1.3 + (Math.random() / 3)));
movCol = rr.utils.ColorConversion.argbtohex32(_local4.red, _local4.green, _local4.blue, 100);
}
}
Symbol 3460 MovieClip [__Packages.rr.ammo.AmmoBellHuey] Frame 0
class rr.ammo.AmmoBellHuey extends rr.ammo.Ammo
{
var linkId, parentLinkId, initObj, x, y, tar, range, speedmax, mincurve, maxcurve, a, startsound, loopsoundid, explodesound, damage, rexplode, d, speed, tspeed, loopsound, mov, createMov, rot, isexploded, cos, pi, sin, status, clearMov, curve, events, destroy;
function AmmoBellHuey (iObj) {
super();
linkId = "AmmoBellHuey";
parentLinkId = "BellHuey";
initObj = iObj;
init();
}
function init() {
x = initObj.x;
y = initObj.y;
tar = initObj.tar;
trace("tar: " + tar.linkId);
super.init();
range = rr.conf.Config.getObjectValue(parentLinkId, "ammorange");
speedmax = rr.conf.Config.getObjectValue(parentLinkId, "ammomaxSpeed");
mincurve = rr.conf.Config.getObjectValue(parentLinkId, "ammominCurve");
maxcurve = rr.conf.Config.getObjectValue(parentLinkId, "ammomaxCurve");
a = rr.conf.Config.getObjectValue(parentLinkId, "ammoacceleration");
startsound = rr.conf.Config.getObjectValue(parentLinkId, "ammostartsound");
loopsoundid = rr.conf.Config.getObjectValue(parentLinkId, "ammosound");
explodesound = rr.conf.Config.getObjectValue(parentLinkId, "ammoexplodesound");
damage = rr.conf.Config.getObjectValue(parentLinkId, "ammoexplosiondamage");
rexplode = rr.conf.Config.getObjectValue(parentLinkId, "ammoexplosionradius");
d = (speed = (tspeed = 0));
loopsound = _global.sounds.addLoopSound(this);
launch();
}
function render() {
if (!mov) {
createMov();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov._rotation = rr.utils.MathUtils.formatAngle2(rot);
}
function update() {
if (speed != tspeed) {
speed = ((Math.abs(speed - tspeed) <= a) ? (tspeed) : (((tspeed > speed) ? (speed + a) : (speed - a))));
}
if (tar) {
if (rr.utils.MathUtils.getDistance(x, y, tar.x, tar.y) < (speed * 2)) {
explode();
}
}
if (!isexploded) {
rotateToTarget();
}
var _local3 = x;
var _local2 = y;
x = x + (cos(((-rot) * pi) / 180) * speed);
y = y - (sin(((-rot) * pi) / 180) * speed);
d = d + rr.utils.MathUtils.getDistance(x, y, _local3, _local2);
if (status != "exploded") {
if (d > range) {
explode();
}
checkRender();
} else {
render();
}
}
function checkRender() {
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
if (!isexploded) {
if ((!loopsound.isplaying) || (loopsound.vol < 100)) {
_global.sounds.playLoopSound(this);
}
}
render();
} else if (mov) {
_global.sounds.stopLoopSound(this);
clearMov();
}
}
function launch() {
_global.sounds.playSound(startsound);
curve = mincurve + (Math.random() * (maxcurve - mincurve));
tspeed = speedmax;
}
function rotateToTarget() {
var _local4 = rr.utils.MathUtils.getAngle(x, y, tar.x, tar.y);
var _local2 = _local4;
var _local3 = (rot + 360) % 360;
_local2 = (_local2 + 360) % 360;
if ((_local2 - _local3) > 180) {
_local2 = _local2 - 360;
} else if ((_local2 - _local3) < -180) {
_local2 = _local2 + 360;
}
if ((_local2 - _local3) > 0) {
rot = rr.utils.MathUtils.formatAngle2(_local3 + curve);
} else {
rot = rr.utils.MathUtils.formatAngle2(_local3 - curve);
}
var _local5 = rr.utils.MathUtils.angDiff(rot, _local4);
if ((_local5 <= curve) || ((360 - _local5) <= curve)) {
rot = _local4;
}
}
function explode() {
if (isexploded) {
return(undefined);
}
isexploded = true;
speed = speed / 10;
tspeed = 0;
_global.sounds.playSound(explodesound);
events.dispatchEvent({type:"onRemoveLoopSound", target:this});
if (tar) {
var _local4 = rr.utils.MathUtils.getDistance(x, y, tar.x, tar.y);
if (_local4 < rexplode) {
tar.addDamage(damage);
}
}
render();
mov.gotoAndPlay("explode");
var _local3 = rr.conf.Config.getObjectValue(parentLinkId, "ammoduration");
rr.utils.Delegate.callDelayed(this, destroy, _local3);
}
}
Symbol 3461 MovieClip [__Packages.rr.ammo.AmmoApache] Frame 0
class rr.ammo.AmmoApache extends rr.ammo.Ammo
{
var linkId, parentLinkId, initObj, x, y, tar, range, speedmax, mincurve, maxcurve, a, startsound, loopsoundid, explodesound, damage, rexplode, d, speed, tspeed, loopsound, mov, createMov, rot, isexploded, cos, pi, sin, status, clearMov, curve, events, destroy;
function AmmoApache (iObj) {
super();
linkId = "AmmoApache";
parentLinkId = "Apache";
initObj = iObj;
init();
}
function init() {
x = initObj.x;
y = initObj.y;
tar = initObj.tar;
trace("tar: " + tar.linkId);
super.init();
range = rr.conf.Config.getObjectValue(parentLinkId, "ammorange");
speedmax = rr.conf.Config.getObjectValue(parentLinkId, "ammomaxSpeed");
mincurve = rr.conf.Config.getObjectValue(parentLinkId, "ammominCurve");
maxcurve = rr.conf.Config.getObjectValue(parentLinkId, "ammomaxCurve");
a = rr.conf.Config.getObjectValue(parentLinkId, "ammoacceleration");
startsound = rr.conf.Config.getObjectValue(parentLinkId, "ammostartsound");
loopsoundid = rr.conf.Config.getObjectValue(parentLinkId, "ammosound");
explodesound = rr.conf.Config.getObjectValue(parentLinkId, "ammoexplodesound");
damage = rr.conf.Config.getObjectValue(parentLinkId, "ammoexplosiondamage");
rexplode = rr.conf.Config.getObjectValue(parentLinkId, "ammoexplosionradius");
d = (speed = (tspeed = 0));
loopsound = _global.sounds.addLoopSound(this);
launch();
}
function render() {
if (!mov) {
createMov();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov._rotation = rr.utils.MathUtils.formatAngle2(rot);
}
function update() {
if (speed != tspeed) {
speed = ((Math.abs(speed - tspeed) <= a) ? (tspeed) : (((tspeed > speed) ? (speed + a) : (speed - a))));
}
if (tar) {
if (rr.utils.MathUtils.getDistance(x, y, tar.x, tar.y) < (speed * 2)) {
explode();
}
}
if (!isexploded) {
rotateToTarget();
}
var _local3 = x;
var _local2 = y;
x = x + (cos(((-rot) * pi) / 180) * speed);
y = y - (sin(((-rot) * pi) / 180) * speed);
d = d + rr.utils.MathUtils.getDistance(x, y, _local3, _local2);
if (status != "exploded") {
if (d > range) {
explode();
}
checkRender();
} else {
render();
}
}
function checkRender() {
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
if (!isexploded) {
if ((!loopsound.isplaying) || (loopsound.vol < 100)) {
_global.sounds.playLoopSound(this);
}
}
render();
} else if (mov) {
_global.sounds.stopLoopSound(this);
clearMov();
}
}
function launch() {
_global.sounds.playSound(startsound);
curve = mincurve + (Math.random() * (maxcurve - mincurve));
tspeed = speedmax;
}
function rotateToTarget() {
var _local4 = rr.utils.MathUtils.getAngle(x, y, tar.x, tar.y);
var _local2 = _local4;
var _local3 = (rot + 360) % 360;
_local2 = (_local2 + 360) % 360;
if ((_local2 - _local3) > 180) {
_local2 = _local2 - 360;
} else if ((_local2 - _local3) < -180) {
_local2 = _local2 + 360;
}
if ((_local2 - _local3) > 0) {
rot = rr.utils.MathUtils.formatAngle2(_local3 + curve);
} else {
rot = rr.utils.MathUtils.formatAngle2(_local3 - curve);
}
var _local5 = rr.utils.MathUtils.angDiff(rot, _local4);
if ((_local5 <= curve) || ((360 - _local5) <= curve)) {
rot = _local4;
}
}
function explode() {
if (isexploded) {
return(undefined);
}
isexploded = true;
speed = speed / 10;
tspeed = 0;
_global.sounds.playSound(explodesound);
events.dispatchEvent({type:"onRemoveLoopSound", target:this});
if (tar) {
var _local4 = rr.utils.MathUtils.getDistance(x, y, tar.x, tar.y);
if (_local4 < rexplode) {
tar.addDamage(damage);
}
}
render();
mov.gotoAndPlay("explode");
var _local3 = rr.conf.Config.getObjectValue(parentLinkId, "ammoduration");
rr.utils.Delegate.callDelayed(this, destroy, _local3);
}
}
Symbol 3462 MovieClip [__Packages.rr.train.SaddleTank] Frame 0
class rr.train.SaddleTank extends rr.train.Locomotive
{
var linkId, initObj, bcount, bxdef1, init;
function SaddleTank (iObj) {
super();
linkId = "SaddleTank";
initObj = iObj;
bcount = 1;
bxdef1 = 0;
init();
}
}
Symbol 3463 MovieClip [__Packages.rr.train.BulpFrog] Frame 0
class rr.train.BulpFrog extends rr.train.Locomotive
{
var linkId, initObj, bcount, bxdef1, bxdef2, init, rotbarrel2, fliprot, rot, mov;
function BulpFrog (iObj) {
super();
linkId = "BulpFrog";
initObj = iObj;
bcount = 2;
bxdef1 = 9;
bxdef2 = -21;
init();
}
function aimAtTarget() {
super.aimAtTarget();
rotbarrel2 = rr.utils.MathUtils.formatAngle2((rot + fliprot) + 180);
}
function render() {
super.render();
mov.barrel2_mc._rotation = rotbarrel2 - 180;
}
}
Symbol 3464 MovieClip [__Packages.rr.train.TrainWagon] Frame 0
class rr.train.TrainWagon extends rr.train.TrainSegment
{
var segmentType, weapons, prev, reAffirm, isconnected, isreversed, dfeel, length, xspeed, yspeed, x, y, damage, tdisconn, initObj, isdead, render, isCrashed, speed, events, next, killlevel, explode, mov, cos, pi, sin;
function TrainWagon () {
super();
}
function init() {
segmentType = "wagon";
weapons = [];
super.init();
prev = _global.train.lastsegment;
prev.next = this;
reAffirm();
isconnected = true;
isreversed = false;
dfeel = length / 2;
xspeed = (yspeed = 0);
x = (y = 0);
damage = 0;
tdisconn = getTimer();
addWeapons(initObj.weapons);
_global.train.segments.push(this);
_global.train.onConnectionChanged();
}
function update() {
if (isdead) {
render();
return(undefined);
}
if (isCrashed) {
if (_global.train.crashEnded) {
render();
} else {
rr.train.TrainUtils.updateCrashPosition(this);
}
} else if (!isconnected) {
var _local3 = 0.05;
if (speed != 0) {
speed = ((Math.abs(speed) <= _local3) ? 0 : (((0 > speed) ? (speed + _local3) : (speed - _local3))));
}
rr.train.TrainUtils.updateRailPosition(this);
if ((getTimer() - tdisconn) > 500) {
checkConnection(_global.loc);
if (_global.train.lastsegment != this) {
checkConnection(_global.train.lastsegment);
}
}
} else {
speed = prev.speed;
rr.train.TrainUtils.updateRailPosition(this);
}
events.dispatchEvent({target:this, type:"onUpdate"});
}
function addWeapons(w) {
trace("weapons: " + w.length);
var _local4 = w.length;
var _local2 = 0;
while (_local2 < _local4) {
var _local3 = w[_local2];
_local3.parent = this;
rr.train.TrainUtils.createWeapon(_local3);
_local2++;
}
}
function removeWeapon(obj) {
var _local4 = weapons.length;
var _local3 = 0;
while (_local3 < _local4) {
if (weapons[_local3] == obj) {
delete weapons[_local3];
weapons.splice(_local3, 1);
break;
}
_local3++;
}
_global.train.onConnectionChanged();
}
function die() {
if (isdead) {
return(undefined);
}
isdead = true;
if (!_global.train.isCrashed) {
next.disconnect();
disconnect();
} else {
next.prev = undefined;
}
var _local4 = weapons.length;
var _local3 = 0;
while (_local3 < _local4) {
weapons[_local3].die();
_local3++;
}
damage = killlevel;
events.dispatchEvent({type:"onTrainTargetDie", target:this});
explode();
}
function disconnect() {
if (!prev) {
return(undefined);
}
if ((!isdead) && (!prev.isdead)) {
_global.sounds.playSound("Wagon Dropped.wav");
}
tdisconn = getTimer();
prev.next = undefined;
prev = undefined;
setConnFlag(false);
_global.train.onConnectionChanged();
}
function setConnFlag(val) {
isconnected = val;
if (next) {
next.setConnFlag(val);
}
checkFuelLoad();
}
function checkConnection(s) {
var _local4 = false;
if (rr.utils.MathUtils.getDistance(x, y, s.x, s.y) > ((dfeel + s.dfeel) + 10)) {
return(undefined);
}
if (rr.utils.HitTest.isShapeHit(mov.base_mc, s.mov.base_mc)) {
_local4 = true;
}
if (_local4) {
if (s == _global.loc) {
var _local7 = s.x + ((cos(((-(s.rot + s.fliprot)) * pi) / 180) * s.length) / 2);
var _local6 = s.y - ((sin(((-(s.rot + s.fliprot)) * pi) / 180) * s.length) / 2);
var _local9 = s.x + ((cos(((-(s.rot + s.fliprot)) * pi) / 180) * (-s.length)) / 2);
var _local8 = s.y - ((sin(((-(s.rot + s.fliprot)) * pi) / 180) * (-s.length)) / 2);
if (rr.utils.MathUtils.getDistance(x, y, _local7, _local6) < rr.utils.MathUtils.getDistance(x, y, _local9, _local8)) {
die();
return(undefined);
}
}
var _local5 = speed;
if (prev) {
next = prev;
prev.reverse();
}
prev = s;
s.next = this;
setConnFlag(true);
speed = prev.speed;
reAffirm();
_global.train.onConnectionChanged();
if (Math.abs(_local5 - s.speed) > 1) {
_global.train.crash(null, 0.5);
} else {
_global.sounds.playSound("Wagon Attached.wav");
}
}
}
function reverse() {
var _local2 = prev;
prev = next;
next = _local2;
isreversed = !isreversed;
if (next) {
next.reverse();
}
}
function checkFuelLoad() {
var _local4 = weapons.length;
var _local3 = 0;
while (_local3 < _local4) {
var _local2 = weapons[_local3];
if (_local2 instanceof rr.train.FuelLoad) {
if (isconnected) {
_local2.addToLocFuel();
} else {
_local2.subtractFromLocFuel();
}
}
_local3++;
}
}
}
Symbol 3465 MovieClip [__Packages.rr.train.TrainLoad] Frame 0
class rr.train.TrainLoad extends rr.BaseClass
{
var parent, initObj, uid, bobj, position, weight, linkId, price, dfeel, killlevel, explodesound, destroydelay, x, xmargin, y, damage, isdead, addEventListener, cos, pi, sin, rot, mov, events;
function TrainLoad () {
super();
}
function init() {
parent = initObj.parent;
uid = initObj.uid;
bobj = initObj.bobj;
parent.weapons.push(this);
position = initObj.position;
weight = rr.conf.Config.getObjectValue(linkId, "weight");
price = rr.conf.Config.getObjectValue(linkId, "price");
dfeel = rr.conf.Config.getObjectValue(linkId, "feelerradius");
killlevel = rr.conf.Config.getObjectValue(linkId, "killlevel");
explodesound = rr.conf.Config.getObjectValue(linkId, "explodesound");
destroydelay = rr.conf.Config.getObjectValue(linkId, "destroydelay");
rr.train.TrainUtils.setWeaponMargin(this);
x = (parent.x + (parent.length / 2)) - xmargin;
y = parent.y;
damage = 0;
isdead = false;
parent.addEventListener("onUpdate", this);
addEventListener("onTrainObjectDestroy", _global.trainbuild);
}
function onUpdate() {
x = parent.x + (cos(((-(parent.rot + parent.fliprot)) * pi) / 180) * ((parent.length / 2) - xmargin));
y = parent.y - (sin(((-(parent.rot + parent.fliprot)) * pi) / 180) * ((parent.length / 2) - xmargin));
rot = parent.rot + parent.fliprot;
if (isdead) {
checkRender();
return(undefined);
}
checkRender();
updateAfterEvent();
}
function render() {
if (!mov) {
createMov();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov.base_mc._rotation = rot;
}
function checkRender() {
if (parent.isRendered) {
render();
} else if (mov) {
clearMov();
}
}
function createMov() {
var _local3 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
mov = _global.stage.attachMovie(linkId, rr.utils.StringUtils.getUniqueName(), _local3, {parent:this});
checkNightMode();
}
function clearMov() {
mov.removeMovieClip();
delete mov;
}
function checkNightMode() {
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov.base_mc, 0, 90);
}
}
function addDamage(dmg) {
if (isdead) {
return(undefined);
}
if (!dmg) {
return(undefined);
}
damage = damage + dmg;
if (damage >= killlevel) {
damage = killlevel;
die();
}
events.dispatchEvent({type:"onDamage", target:this});
}
function die() {
if (isdead) {
return(undefined);
}
events.dispatchEvent({type:"onTrainTargetDie", target:this});
isdead = true;
render();
_global.sounds.playSound(explodesound);
mov.gotoAndPlay("explode");
rr.utils.Delegate.callDelayed(this, destroy, destroydelay);
}
function destroy() {
mov.removeMovieClip();
events.dispatchEvent({type:"onTrainObjectDestroy", target:this});
parent.removeWeapon(this);
}
}
Symbol 3466 MovieClip [__Packages.rr.train.FuelLoad] Frame 0
class rr.train.FuelLoad extends rr.train.TrainLoad
{
var fueldef, linkId, fuel;
function FuelLoad () {
super();
}
function init() {
super.init();
fueldef = rr.conf.Config.getObjectValue(linkId, "fuel");
fuel = fueldef;
addToLocFuel();
}
function die() {
subtractFromLocFuel();
super.die();
}
function addToLocFuel() {
trace("addToLocFuel: " + fuel);
_global.loc.addFuel(fuel);
}
function subtractFromLocFuel() {
var _local3 = fuel;
var _local4 = _global.loc.fuel;
if ((_local4 - _local3) < _global.loc.fueldef) {
_local3 = _local3 - (_global.loc.fueldef - (_local4 - _local3));
if (_local3 > fueldef) {
_local3 = fueldef;
}
}
_global.loc.addFuel(-_local3);
fuel = _local3;
trace("subtractFromLocFuel: " + _local3);
}
}
Symbol 3467 MovieClip [__Packages.rr.train.Wagon1] Frame 0
class rr.train.Wagon1 extends rr.train.TrainWagon
{
var linkId, initObj, init;
function Wagon1 (iObj) {
super();
linkId = "Wagon1";
initObj = iObj;
init();
}
}
Symbol 3468 MovieClip [__Packages.rr.train.Wagon2] Frame 0
class rr.train.Wagon2 extends rr.train.TrainWagon
{
var linkId, initObj, init;
function Wagon2 (iObj) {
super();
linkId = "Wagon2";
initObj = iObj;
init();
}
}
Symbol 3469 MovieClip [__Packages.rr.train.Wagon3] Frame 0
class rr.train.Wagon3 extends rr.train.TrainWagon
{
var linkId, initObj, init;
function Wagon3 (iObj) {
super();
linkId = "Wagon3";
initObj = iObj;
init();
}
}
Symbol 3470 MovieClip [__Packages.rr.train.Wagon4] Frame 0
class rr.train.Wagon4 extends rr.train.TrainWagon
{
var linkId, initObj, init;
function Wagon4 (iObj) {
super();
linkId = "Wagon4";
initObj = iObj;
init();
}
}
Symbol 3471 MovieClip [__Packages.rr.train.DropWagon] Frame 0
class rr.train.DropWagon extends rr.train.TrainSegment
{
var segmentType, prev, reAffirm, isconnected, dfeel, length, xspeed, yspeed, x, y, damage, tdisconn, affirmed, isdead, render, isCrashed, speed, next, killlevel, events, explode, rsprev, rsfactorprev, destroy, mov, cos, pi, sin;
function DropWagon () {
super();
}
function init() {
segmentType = "dropwagon";
super.init();
prev = _global.train.lastsegment;
prev.next = this;
reAffirm();
isconnected = true;
dfeel = length / 2;
xspeed = (yspeed = 0);
x = (y = 0);
damage = 0;
tdisconn = getTimer();
_global.train.segments.push(this);
_global.train.onConnectionChanged();
}
function update() {
if (!affirmed) {
return(undefined);
}
if (isdead) {
render();
return(undefined);
}
if (isCrashed) {
if (_global.train.crashEnded) {
render();
} else {
rr.train.TrainUtils.updateCrashPosition(this);
}
} else if (!isconnected) {
var _local3 = 0.05;
if (speed != 0) {
speed = ((Math.abs(speed) <= _local3) ? 0 : (((0 > speed) ? (speed + _local3) : (speed - _local3))));
}
rr.train.TrainUtils.updateRailPosition(this);
if ((getTimer() - tdisconn) > 500) {
checkConnection(_global.loc);
if (_global.train.lastsegment != this) {
checkConnection(_global.train.lastsegment);
}
}
} else {
speed = prev.speed;
rr.train.TrainUtils.updateRailPosition(this);
}
}
function die() {
if (isdead) {
return(undefined);
}
if (!_global.train.isCrashed) {
next.disconnect();
disconnect();
} else {
next.prev = undefined;
}
isdead = true;
damage = killlevel;
events.dispatchEvent({type:"onTrainTargetDie", target:this});
explode();
}
function remove() {
var _local2 = next;
prev.next = _local2;
_local2.prev = prev;
_local2.rsprev = rsprev;
_local2.rsfactorprev = rsfactorprev;
next = undefined;
prev = undefined;
_local2.reAffirm();
events.dispatchEvent({type:"onTrainTargetDie", target:this});
destroy();
}
function disconnect() {
if (!prev) {
return(undefined);
}
if (!isdead) {
_global.sounds.playSound("Wagon Dropped.wav");
}
tdisconn = getTimer();
prev.next = undefined;
prev = undefined;
setConnFlag(false);
_global.train.onConnectionChanged();
}
function setConnFlag(val) {
isconnected = val;
if (next) {
next.setConnFlag(val);
}
}
function checkConnection(s) {
var _local4 = false;
if (rr.utils.MathUtils.getDistance(x, y, s.x, s.y) > ((dfeel + s.dfeel) + 10)) {
return(undefined);
}
if (rr.utils.HitTest.isShapeHit(mov.base_mc, s.mov.base_mc)) {
_local4 = true;
}
if (_local4) {
if (s == _global.loc) {
var _local7 = s.x + ((cos(((-(s.rot + s.fliprot)) * pi) / 180) * s.length) / 2);
var _local6 = s.y - ((sin(((-(s.rot + s.fliprot)) * pi) / 180) * s.length) / 2);
var _local9 = s.x + ((cos(((-(s.rot + s.fliprot)) * pi) / 180) * (-s.length)) / 2);
var _local8 = s.y - ((sin(((-(s.rot + s.fliprot)) * pi) / 180) * (-s.length)) / 2);
if (rr.utils.MathUtils.getDistance(x, y, _local7, _local6) < rr.utils.MathUtils.getDistance(x, y, _local9, _local8)) {
die();
return(undefined);
}
}
if (prev) {
next = prev;
prev.reverse();
}
var _local5 = speed;
prev = s;
s.next = this;
setConnFlag(true);
speed = prev.speed;
reAffirm();
_global.train.onConnectionChanged();
if (Math.abs(_local5 - s.speed) > 1) {
_global.train.crash(null, 0.5);
} else {
_global.sounds.playSound("Wagon Attached.wav");
}
}
}
function reverse() {
var _local2 = prev;
prev = next;
next = _local2;
if (next) {
next.reverse();
}
}
}
Symbol 3472 MovieClip [__Packages.rr.train.FuelTank] Frame 0
class rr.train.FuelTank extends rr.train.DropWagon
{
var linkId, initObj, init;
function FuelTank (iObj) {
super();
linkId = "FuelTank";
initObj = iObj;
init();
}
}
Symbol 3473 MovieClip [__Packages.rr.train.Passenger] Frame 0
class rr.train.Passenger extends rr.train.DropWagon
{
var linkId, initObj, init;
function Passenger (iObj) {
super();
linkId = "Passenger";
initObj = iObj;
init();
}
}
Symbol 3474 MovieClip [__Packages.rr.train.PassengerArmored] Frame 0
class rr.train.PassengerArmored extends rr.train.DropWagon
{
var linkId, initObj, init;
function PassengerArmored (iObj) {
super();
linkId = "PassengerArmored";
initObj = iObj;
init();
}
}
Symbol 3475 MovieClip [__Packages.rr.train.TankTrailer] Frame 0
class rr.train.TankTrailer extends rr.train.DropWagon
{
var linkId, initObj, init;
function TankTrailer (iObj) {
super();
linkId = "TankTrailer";
initObj = iObj;
init();
}
}
Symbol 3476 MovieClip [__Packages.rr.train.ABomb] Frame 0
class rr.train.ABomb extends rr.train.DropWagon
{
var linkId, initObj, init;
function ABomb (iObj) {
super();
linkId = "ABomb";
initObj = iObj;
init();
}
}
Symbol 3477 MovieClip [__Packages.rr.train.weapons.SmallCannon] Frame 0
class rr.train.weapons.SmallCannon extends rr.train.weapons.TrainWeapon
{
var linkId, initObj, init;
function SmallCannon (iObj) {
super();
linkId = "SmallCannon";
initObj = iObj;
init();
}
}
Symbol 3478 MovieClip [__Packages.rr.train.weapons.MediumCannon] Frame 0
class rr.train.weapons.MediumCannon extends rr.train.weapons.TrainWeapon
{
var linkId, initObj, x, y, status;
function MediumCannon (iObj) {
super();
linkId = "MediumCannon";
initObj = iObj;
init();
}
function init() {
super.init();
}
function onUpdate() {
super.onUpdate();
var _local6 = _global.map.collapsepoints.length;
var _local4 = 0;
while (_local4 < _local6) {
var _local5 = _global.map.collapsepoints[_local4];
if (rr.utils.MathUtils.getDistance(x, y, _local5.x, _local5.y) < 100) {
status = "collapse";
break;
}
status = "";
_local4++;
}
}
}
Symbol 3479 MovieClip [__Packages.rr.train.weapons.StaticWeapon] Frame 0
class rr.train.weapons.StaticWeapon extends rr.train.weapons.TrainWeapon
{
var linkId, flipped, initObj, aammo, rotBarrel, parent, tar, targets, x, y, dfire, pi, atan2, dtar, tarRot, tfire, lastFired, mov, gunsound, rfire, uid;
function StaticWeapon () {
super();
}
function init() {
trace("init: " + linkId);
super.init();
flipped = initObj.flipped;
aammo = rr.conf.Config.getObjectValue(linkId, "ammoangle");
}
function aimAtTarget() {
rotBarrel = parent.rot + parent.fliprot;
if (flipped) {
rotBarrel = rotBarrel + 180;
}
tar = undefined;
var _local7 = targets.length;
var _local4 = 0;
while (_local4 < _local7) {
var _local3 = _global.stage["enemy_" + targets[_local4]];
if (_local3.isdead) {
} else {
var _local5 = rr.utils.MathUtils.getDistance(x, y, _local3.x, _local3.y);
if (_local5 > dfire) {
} else {
var _local6 = (180 * atan2(_local3.y - y, _local3.x - x)) / pi;
if (rr.utils.MathUtils.angDiff(_local6, rotBarrel) > aammo) {
} else {
tar = _local3;
dtar = _local5;
tarRot = _local6;
tar.addEventListener("onEnemyDie", this);
return(undefined);
}
}
}
_local4++;
}
}
function fire() {
if ((getTimer() - lastFired) < tfire) {
return(undefined);
}
lastFired = getTimer();
mov.barrel_mc.gotoAndPlay("shoot");
mov.barrel_mc.base_mc.gotoAndPlay("shoot");
_global.sounds.playSound(gunsound);
var _local3 = ((Math.random() < 0.5) ? (dtar - (Math.random() * rfire)) : (dtar + (Math.random() * rfire)));
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:x, y:y, rot:-tarRot, d:_local3});
}
function destroy() {
_global.stage["range_" + uid].removeMovieClip();
super.destroy();
}
function checkNightMode() {
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov.barrel_mc.base_mc, 0, 70);
}
}
}
Symbol 3480 MovieClip [__Packages.rr.train.weapons.LargeCannon] Frame 0
class rr.train.weapons.LargeCannon extends rr.train.weapons.StaticWeapon
{
var linkId, initObj, init;
function LargeCannon (iObj) {
super();
linkId = "LargeCannon";
initObj = iObj;
init();
}
}
Symbol 3481 MovieClip [__Packages.rr.train.weapons.HugeCannon] Frame 0
class rr.train.weapons.HugeCannon extends rr.train.weapons.StaticWeapon
{
var linkId, initObj, init;
function HugeCannon (iObj) {
super();
linkId = "HugeCannon";
initObj = iObj;
init();
}
}
Symbol 3482 MovieClip [__Packages.rr.train.ColeCart] Frame 0
class rr.train.ColeCart extends rr.train.FuelLoad
{
var linkId, initObj, dfeel, init;
function ColeCart (iObj) {
super();
linkId = "ColeCart";
initObj = iObj;
dfeel = 18;
init();
}
}
Symbol 3483 MovieClip [__Packages.rr.train.OilTank] Frame 0
class rr.train.OilTank extends rr.train.FuelLoad
{
var linkId, initObj, dfeel, init;
function OilTank (iObj) {
super();
linkId = "OilTank";
initObj = iObj;
dfeel = 18;
init();
}
}
Symbol 3484 MovieClip [__Packages.rr.train.PowerGenerator] Frame 0
class rr.train.PowerGenerator extends rr.train.FuelLoad
{
var linkId, initObj, dfeel, init;
function PowerGenerator (iObj) {
super();
linkId = "PowerGenerator";
initObj = iObj;
dfeel = 18;
init();
}
}
Symbol 3485 MovieClip [__Packages.rr.train.weapons.BunkerBuster] Frame 0
class rr.train.weapons.BunkerBuster extends rr.train.weapons.TrainWeapon
{
var linkId, initObj, init, mov, createMov, x, y, rotBarrel, parent, tfire, lastFired, mode, tarRot, gunsound, rfire, dtar, lbarrel, cos, pi, sin;
function BunkerBuster (iObj) {
super();
linkId = "BunkerBuster";
initObj = iObj;
init();
}
function render() {
if (!mov) {
createMov();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov.barrel_mc._rotation = rotBarrel;
mov.base_mc._rotation = parent.rot + parent.fliprot;
}
function fire() {
if ((getTimer() - lastFired) < tfire) {
return(undefined);
}
if ((mode == "automatic") && (Math.abs(tarRot - rotBarrel) > 20)) {
return(undefined);
}
lastFired = getTimer();
mov.barrel_mc.base_mc.gotoAndPlay("shoot");
_global.sounds.playSound(gunsound);
if (mode == "automatic") {
var _local5 = ((Math.random() < 0.5) ? (dtar - (Math.random() * rfire)) : (dtar + (Math.random() * rfire)));
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:x, y:y, rot:-rotBarrel, d:_local5});
} else {
var _local4 = x + (cos(((-rotBarrel) * pi) / 180) * lbarrel);
var _local3 = y - (sin(((-rotBarrel) * pi) / 180) * lbarrel);
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:_local4, y:_local3, rot:rotBarrel});
}
}
}
Symbol 3486 MovieClip [__Packages.rr.train.weapons.RailRockets] Frame 0
class rr.train.weapons.RailRockets extends rr.train.weapons.TrainWeapon
{
var linkId, initObj, ddetect, rdetect, x, y, closecompounds, cellId, xmargin, parent, cos, pi, sin, isdead, checkRender, status, mov, rotBarrel, flipped, tfire, lastFired;
function RailRockets (iObj) {
super();
linkId = "RailRockets";
initObj = iObj;
init();
}
function init() {
super.init();
ddetect = rr.conf.Config.getObjectValue(linkId, "detectionDistance");
rdetect = rr.conf.Config.getObjectValue(linkId, "detectionRadius");
var _local4 = _global.map.getCellByPos(x, y);
closecompounds = _local4.getCompounds(true);
cellId = _local4.id;
}
function onUpdate() {
x = parent.x + (cos(((-(parent.rot + parent.fliprot)) * pi) / 180) * ((parent.length / 2) - xmargin));
y = parent.y - (sin(((-(parent.rot + parent.fliprot)) * pi) / 180) * ((parent.length / 2) - xmargin));
if (isdead) {
checkRender();
return(undefined);
}
var _local5 = _global.map["cell_" + cellId];
if (((x < _local5.left) || (x >= _local5.right)) || ((y < _local5.top) | (y >= _local5.bottom))) {
_local5 = _global.map.getCellByPos(x, y);
closecompounds = _local5.getCompounds(true);
cellId = _local5.id;
}
var _local6 = false;
var _local7 = _global.map.collapsepoints.length;
var _local3 = 0;
while (_local3 < _local7) {
var _local4 = _global.map.collapsepoints[_local3];
if (rr.utils.MathUtils.getDistance(x, y, _local4.x, _local4.y) < 100) {
_local6 = true;
break;
}
_local3++;
}
if (_local6) {
if (status != "collapse") {
mov.barrel_mc.b1_mc.gotoAndPlay("collapse");
mov.barrel_mc.b2_mc.gotoAndPlay("collapse");
status = "collapse";
}
} else if (status == "collapse") {
mov.barrel_mc.b1_mc.gotoAndPlay("reset");
mov.barrel_mc.b2_mc.gotoAndPlay("reset");
status = "";
}
rotBarrel = parent.rot + parent.fliprot;
if (flipped) {
rotBarrel = rotBarrel + 180;
}
fire();
checkRender();
updateAfterEvent();
}
function fire() {
if (status == "collapse") {
return(undefined);
}
if ((getTimer() - lastFired) < tfire) {
return(undefined);
}
if (!checkTargets()) {
return(undefined);
}
lastFired = getTimer();
if (status != "collapse") {
mov.barrel_mc.b1_mc.gotoAndPlay("shoot");
mov.barrel_mc.b2_mc.gotoAndPlay("shoot");
}
var _local2 = 0;
while (_local2 <= 7) {
rr.utils.Delegate.callDelayed(this, launchRockets, _local2 * 200);
_local2++;
}
}
function checkTargets() {
var _local5 = {x:x + (cos(((-rotBarrel) * pi) / 180) * ddetect), y:y - (sin(((-rotBarrel) * pi) / 180) * ddetect)};
var _local6 = _global.map.getCellByPos(x, y);
var _local7 = _local6.enemies.length;
var _local4 = 0;
while (_local4 < _local7) {
var _local3 = _global.stage["enemy_" + _local6.enemies[_local4]];
if (_local3.isdead) {
} else if (rr.utils.MathUtils.getDistance(_local5.x, _local5.y, _local3.x, _local3.y) < rdetect) {
return(true);
}
_local4++;
}
return(false);
}
function getStartPoint(px, py) {
var _local3 = rr.utils.MathUtils.getAngle(0, 0, px, py) + rotBarrel;
var _local2 = rr.utils.MathUtils.getDistance(0, 0, px, py);
return({x:x + (cos(((-_local3) * pi) / 180) * _local2), y:y - (sin(((-_local3) * pi) / 180) * _local2)});
}
function launchRockets() {
if (_global.timer.stopped) {
return(undefined);
}
var _local3;
_local3 = getStartPoint(7, -11 - (Math.random() * 6));
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:_local3.x, y:_local3.y, rot:rotBarrel, dir:"left"});
_local3 = getStartPoint(7, 11 + (Math.random() * 6));
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:_local3.x, y:_local3.y, rot:rotBarrel, dir:"right"});
}
function checkNightMode() {
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov.barrel_mc, 0, 90);
}
}
}
Symbol 3487 MovieClip [__Packages.rr.train.weapons.SmallFastCannon] Frame 0
class rr.train.weapons.SmallFastCannon extends rr.train.weapons.TrainWeapon
{
var linkId, initObj, init, tfire, lastFired, mode, rotBarrel, tarRot, mov, gunsound, sin, pi, y, cos, x;
function SmallFastCannon (iObj) {
super();
linkId = "SmallFastCannon";
initObj = iObj;
init();
}
function fire() {
if ((getTimer() - lastFired) < tfire) {
return(undefined);
}
if ((mode == "automatic") && (Math.abs(tarRot - rotBarrel) > 20)) {
return(undefined);
}
lastFired = getTimer();
mov.barrel_mc.gotoAndPlay("shoot");
_global.sounds.playSound(gunsound);
var _local3 = getStartPoint(20, -3.5);
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:_local3.x, y:_local3.y, rot:rotBarrel});
_local3 = getStartPoint(20, 4);
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:_local3.x, y:_local3.y, rot:rotBarrel});
}
function getStartPoint(px, py) {
var _local3 = rr.utils.MathUtils.getAngle(0, 0, px, py) + rotBarrel;
var _local2 = rr.utils.MathUtils.getDistance(0, 0, px, py);
return({x:x + (cos(((-_local3) * pi) / 180) * _local2), y:y - (sin(((-_local3) * pi) / 180) * _local2)});
}
}
Symbol 3488 MovieClip [__Packages.rr.train.weapons.RocketLauncher] Frame 0
class rr.train.weapons.RocketLauncher extends rr.train.weapons.TrainWeapon
{
var linkId, initObj, init, tfire, lastFired, mov, gunsound, rotBarrel, sin, pi, y, cos, x;
function RocketLauncher (iObj) {
super();
linkId = "RocketLauncher";
initObj = iObj;
init();
}
function fire() {
if ((getTimer() - lastFired) < tfire) {
return(undefined);
}
lastFired = getTimer();
mov.barrel_mc.gotoAndPlay("shoot");
_global.sounds.playSound(gunsound);
var _local3 = getStartPoint(7.5, -3);
launchRocket({type:linkId, x:_local3.x, y:_local3.y, rot:rotBarrel});
_local3 = getStartPoint(7.5, 3);
rr.utils.Delegate.callDelayed(this, launchRocket, 200, {type:linkId, x:_local3.x, y:_local3.y, rot:rotBarrel});
}
function getStartPoint(px, py) {
var _local3 = rr.utils.MathUtils.getAngle(0, 0, px, py) + rotBarrel;
var _local2 = rr.utils.MathUtils.getDistance(0, 0, px, py);
return({x:x + (cos(((-_local3) * pi) / 180) * _local2), y:y - (sin(((-_local3) * pi) / 180) * _local2)});
}
function launchRocket(iObj) {
if (_global.timer.stopped) {
return(undefined);
}
rr.ammo.AmmoUtils.createAmmo(iObj);
}
}
Symbol 3489 MovieClip [__Packages.rr.train.weapons.FixedWeapon] Frame 0
class rr.train.weapons.FixedWeapon extends rr.train.weapons.TrainWeapon
{
var linkId, flipped, initObj, aammo, rotBarrel, parent, tar, targets, x, y, dfire, pi, atan2, dtar, tarRot, tfire, lastFired, mov, gunsound, rfire, uid;
function FixedWeapon () {
super();
}
function init() {
trace("init: " + linkId);
super.init();
flipped = initObj.flipped;
aammo = rr.conf.Config.getObjectValue(linkId, "ammoangle");
}
function aimAtTarget() {
rotBarrel = parent.rot + parent.fliprot;
if (flipped) {
rotBarrel = rotBarrel + 180;
}
tar = undefined;
var _local7 = targets.length;
var _local4 = 0;
while (_local4 < _local7) {
var _local3 = _global.stage["enemy_" + targets[_local4]];
if (_local3.isdead) {
} else {
var _local5 = rr.utils.MathUtils.getDistance(x, y, _local3.x, _local3.y);
if (_local5 > dfire) {
} else {
var _local6 = (180 * atan2(_local3.y - y, _local3.x - x)) / pi;
if (rr.utils.MathUtils.angDiff(_local6, rotBarrel) > aammo) {
} else {
tar = _local3;
dtar = _local5;
tarRot = _local6;
tar.addEventListener("onEnemyDie", this);
return(undefined);
}
}
}
_local4++;
}
}
function fire() {
if ((getTimer() - lastFired) < tfire) {
return(undefined);
}
lastFired = getTimer();
mov.barrel_mc.gotoAndPlay("shoot");
_global.sounds.playSound(gunsound);
var _local3 = ((Math.random() < 0.5) ? (dtar - (Math.random() * rfire)) : (dtar + (Math.random() * rfire)));
rr.ammo.AmmoUtils.createAmmo({type:linkId, x:x, y:y, rot:-tarRot, d:_local3});
}
function destroy() {
_global.stage["range_" + uid].removeMovieClip();
super.destroy();
}
function checkNightMode() {
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov.barrel_mc.base_mc, 0, 70);
}
}
}
Symbol 3490 MovieClip [__Packages.rr.train.weapons.EMP] Frame 0
class rr.train.weapons.EMP extends rr.train.weapons.FixedWeapon
{
var linkId, initObj, dstun, tstunmin, tstunmax, uid, ldr, x, xmargin, parent, cos, pi, y, sin, rotBarrel, checkRender, mov, gunsound;
function EMP (iObj) {
super();
linkId = "EMP";
initObj = iObj;
init();
}
function init() {
super.init();
dstun = rr.conf.Config.getObjectValue(linkId, "stunDistance");
tstunmin = rr.conf.Config.getObjectValue(linkId, "minStunTime");
tstunmax = rr.conf.Config.getObjectValue(linkId, "maxStunTime");
_global.train.emps.push(uid);
ldr = new rr.train.weapons.EMPLoader(this);
}
function onUpdate() {
x = parent.x + (cos(((-(parent.rot + parent.fliprot)) * pi) / 180) * ((parent.length / 2) - xmargin));
y = parent.y - (sin(((-(parent.rot + parent.fliprot)) * pi) / 180) * ((parent.length / 2) - xmargin));
rotBarrel = parent.rot + parent.fliprot;
checkRender();
updateAfterEvent();
}
function fire() {
if (!ldr.isLoaded) {
return(undefined);
}
mov.barrel_mc.gotoAndPlay("shoot");
_global.sounds.playSound(gunsound);
var _local6 = _global.stage.enemies.length;
var _local4 = 0;
while (_local4 < _local6) {
var _local3 = _global.stage["enemy_" + _global.stage.enemies[_local4]];
if (_local3.isdead) {
return(undefined);
}
var _local5 = rr.utils.MathUtils.getDistance(_local3.x, _local3.y, x, y);
if (_local5 < dstun) {
_local3.stun(tstunmin + (Math.random() * (tstunmax - tstunmin)));
}
_local4++;
}
}
function destroy() {
var _local4 = 0;
while (_local4 < _global.train.emps.length) {
if (_global.train.emps[_local4] == uid) {
_global.train.emps.splice(_local4, 1);
break;
}
_local4++;
}
ldr.destroy();
super.destroy();
}
}
Symbol 3491 MovieClip [__Packages.rr.train.AirCrane] Frame 0
class rr.train.AirCrane extends rr.BaseClass
{
var linkId, uid, dfeel, speedmax, altmax, mincurve, maxcurve, a, killlevel, loopsoundid, explodesound, loopsound, rot, rotload, dtar, speed, tspeed, alt, damage, roll, troll, minroll, maxroll, pitch, tpitch, maxpitch, xp, yp, x, xload, y, yload, status, wagobj, isdestroyed, tar, cos, pi, sin, loadmov, tarloadx, tarloady, tarloadrot, tarx, tary, isdead, isexploded, mov, curve, rolldir, isSoundPlaying, events;
function AirCrane () {
super();
linkId = "AirCrane";
uid = rr.utils.StringUtils.getUniqueName();
init();
}
function init() {
dfeel = rr.conf.Config.getObjectValue(linkId, "feelerradius");
speedmax = rr.conf.Config.getObjectValue(linkId, "maxSpeed");
altmax = rr.conf.Config.getObjectValue(linkId, "altitude");
mincurve = rr.conf.Config.getObjectValue(linkId, "minCurve");
maxcurve = rr.conf.Config.getObjectValue(linkId, "maxCurve");
a = rr.conf.Config.getObjectValue(linkId, "acceleration");
killlevel = rr.conf.Config.getObjectValue(linkId, "killlevel");
loopsoundid = rr.conf.Config.getObjectValue(linkId, "sound");
explodesound = rr.conf.Config.getObjectValue(linkId, "explodesound");
loopsound = _global.sounds.addLoopSound(this);
rot = (rotload = 0);
dtar = 1000;
speed = 0;
tspeed = speedmax;
alt = altmax;
damage = 0;
roll = (troll = 0);
minroll = -10;
maxroll = 9;
pitch = (tpitch = 0);
maxpitch = 10;
xp = (yp = 0);
x = (xload = _global.camera.left - 50);
y = (yload = _global.camera.top + (Math.random() * _global.stage.height));
status = "launch";
createLoad();
rotateToTarget();
_global.aim.showIndicator();
_global.guide.showGuide(12);
}
function createLoad() {
var _local5 = _global.trainbuild.ingameadded;
var _local8 = [];
if (_local5.linkId == "HugeCannon") {
_local8.push({type:"HugeCannon", uid:_local5.uid, flipped:_local5.flipped, position:1, bobj:_local5});
}
var _local4 = 0;
while (_local4 < _local5.weapons.length) {
var _local3 = _local5.weapons[_local4];
_local8.push({type:_local3.linkId, uid:_local3.uid, flipped:_local3.flipped, position:_local3.spaceIndex, bobj:_local3});
_local4++;
}
wagobj = {type:_local5.linkId, uid:_local5.uid, weapons:_local8, bobj:_local5};
}
function addLoad() {
rr.train.TrainUtils.createWagon(wagobj);
_global.sounds.playSound("Wagon Attached.wav");
}
function update() {
if (isdestroyed) {
return(undefined);
}
tspeed = speedmax * Math.min(rr.utils.MathUtils.getDistance(x, y, tar.x, tar.y) / 100, 1);
if (speed != tspeed) {
speed = ((Math.abs(speed - tspeed) <= a) ? (tspeed) : (((tspeed > speed) ? (speed + a) : (speed - a))));
}
rotateToTarget();
var _local3 = rr.utils.MathUtils.formatAngle2(rr.utils.MathUtils.getAngle(x, y, tar.x, tar.y));
x = x + (cos(((-_local3) * pi) / 180) * speed);
y = y - (sin(((-_local3) * pi) / 180) * speed);
if (status == "retreat") {
if (x < (_global.camera.left - 100)) {
die();
destroy();
}
}
updateLoad();
if (roll != troll) {
roll = roll + ((roll < troll) ? 1 : -1);
}
if (pitch != tpitch) {
pitch = pitch + ((pitch < tpitch) ? 1 : -1);
}
checkRender();
}
function updateLoad() {
var _local3 = rot;
var _local4 = (rotload + 360) % 360;
_local3 = (_local3 + 360) % 360;
if ((_local3 - _local4) > 180) {
_local3 = _local3 - 360;
} else if ((_local3 - _local4) < -180) {
_local3 = _local3 + 360;
}
_local4 = _local4 + ((5 * (_local3 - _local4)) / 100);
rotload = rr.utils.MathUtils.formatAngle2(_local4);
var _local12 = x + (cos(((-rot) * pi) / 180) * -10);
var _local10 = y - (sin(((-rot) * pi) / 180) * -10);
var _local8 = 0.6;
var _local6 = 0.2;
var _local14 = _local12 - xload;
var _local13 = _local10 - yload;
xp = (xp * _local8) + (_local14 * _local6);
yp = (yp * _local8) + (_local13 * _local6);
xload = xload + xp;
yload = yload + yp;
var _local11 = loadmov.wagon._width;
var _local5 = _global.train.lastsegment.getWagonPointBehind(_local11);
tarloadx = _local5.x;
tarloady = _local5.y;
tarloadrot = _local5.rot;
rr.utils.ClipUtils.setTint(loadmov, 16711680, 0);
_global.aim.removeEventListener("onAimDown", this);
var _local7 = objectsNear();
_global.aim.mov.cranewarning_mc._visible = _local7;
if (!_local7) {
if (rr.utils.MathUtils.getDistance(xload, yload, tarloadx, tarloady) < 10) {
var _local9 = rr.utils.MathUtils.angDiff(rotload, tarloadrot);
if ((_local9 < 5) || ((180 - _local9) < 5)) {
_global.aim.addEventListener("onAimDown", this);
rr.utils.ClipUtils.setTint(loadmov, 16711680, 60);
}
}
}
}
function objectsNear() {
var _local4 = _global.train.lastsegment;
var _local6 = _global.map.getCellByPos(_local4.x, _local4.y);
var _local9 = _local6.statics.length;
var _local5 = 0;
while (_local5 < _local9) {
var _local2 = _local6.statics[_local5];
if (_local2 instanceof rr.rail.RailBlock) {
if (rr.utils.MathUtils.getDistance(_local4.x, _local4.y, _local2.x, _local2.y) < 100) {
return(true);
}
}
_local5++;
}
_local9 = _local6.nb.length;
_local5 = 0;
while (_local5 < _local9) {
var _local8 = _local6.nb[_local5];
var _local7 = _local8.statics.length;
var _local3 = 0;
while (_local3 < _local7) {
var _local2 = _local6.statics[_local3];
if (_local2 instanceof rr.rail.RailBlock) {
if (rr.utils.MathUtils.getDistance(_local4.x, _local4.y, _local2.x, _local2.y) < 100) {
return(true);
}
}
_local3++;
}
_local5++;
}
return(false);
}
function onAimDown() {
_global.aim.removeEventListener("onAimDown", this);
_global.aim.showCrossHair();
_global.guide.close();
_global.aim.mov.cranewarning_mc._visible = false;
addLoad();
tarx = -300;
tary = _global.camera.top + (Math.random() * _global.stage.height);
status = "retreat";
}
function checkRender() {
if (rr.utils.MathUtils.getDistance(x, y, _global.camera.x, _global.camera.y) < 500) {
if (loopsound) {
if (!isdead) {
playLoopSound();
}
}
render();
} else if (isexploded) {
destroy();
} else if (mov) {
_global.sounds.stopLoopSound(this);
clearMov();
}
}
function playLoopSound() {
if ((!loopsound.isplaying) || (loopsound.vol < 100)) {
_global.sounds.playLoopSound(this);
}
}
function render() {
if (!mov) {
createMov();
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
var _local3 = new flash.geom.Point(mov._x + alt, mov._y + alt);
mov.globalToLocal(_local3);
mov.shadow_mc._x = _local3.x;
mov.shadow_mc._y = _local3.y;
var _local4 = ((pitch > (maxpitch / 2)) ? "roll" : "pitch");
if (_local4 == "roll") {
mov.base_mc.mc.gotoAndStop("r" + roll.toString());
} else {
mov.base_mc.mc.gotoAndStop("s" + pitch.toString());
}
mov.base_mc._rotation = (mov.shadow_mc._rotation = rr.utils.MathUtils.formatAngle2(rot));
loadmov._x = xload - _global.camera.left;
loadmov._y = yload - _global.camera.top;
loadmov._rotation = rr.utils.MathUtils.formatAngle2(rotload);
}
function createMov() {
var _local3 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
loadmov = _global.stage.createEmptyMovieClip("craneloadmov", _local3, {parent:this});
var _local4 = loadmov.attachMovie("AirCraneLoad", "wagon", 10);
_local4.gotoAndStop(wagobj.type);
_local3 = rr.utils.ClipUtils.getFreeDepth(_global.stage, this);
mov = _global.stage.attachMovie(linkId, "mov_" + uid, _local3, {parent:this});
mov.base_mc.mc.gotoAndStop("r0");
checkNightMode();
}
function rotateToTarget() {
if (status == "launch") {
tarx = _global.stage._xmouse + _global.camera.left;
tary = _global.stage._ymouse + _global.camera.top;
}
dtar = rr.utils.MathUtils.getDistance(x, y, tarx, tary) - 100;
var _local4 = rr.utils.MathUtils.getAngle(x, y, tarx, tary);
tar = {x:x + (cos(((-rr.utils.MathUtils.formatAngle2(_local4)) * pi) / 180) * dtar), y:y - (sin(((-rr.utils.MathUtils.formatAngle2(_local4)) * pi) / 180) * dtar)};
curve = mincurve + ((maxcurve - mincurve) * (1 - Math.min(rr.utils.MathUtils.getDistance(x, y, tarx, tary) / 150, 1)));
var _local3 = _local4;
var _local5 = (rot + 360) % 360;
_local3 = (_local3 + 360) % 360;
if ((_local3 - _local5) > 180) {
_local3 = _local3 - 360;
} else if ((_local3 - _local5) < -180) {
_local3 = _local3 + 360;
}
if ((_local3 - _local5) > 0) {
rot = rr.utils.MathUtils.formatAngle2(_local5 + curve);
rolldir = 1;
} else {
rot = rr.utils.MathUtils.formatAngle2(_local5 - curve);
rolldir = -1;
}
var _local6 = rr.utils.MathUtils.angDiff(rot, _local4);
if ((_local6 <= (curve + 1)) || ((360 - _local6) <= (curve + 1))) {
rot = _local4;
troll = 0;
} else {
var _local7 = ((rolldir < 0) ? (maxroll) : (minroll));
var _local8 = Math.min(Math.abs((100 * _local6) / 180), 100);
troll = Math.round((_local7 * _local8) / 100);
}
tpitch = Math.min(Math.round((maxpitch * speed) / speedmax), maxpitch);
}
function addDamage(dmg) {
if (isdead) {
return(undefined);
}
if (!dmg) {
return(undefined);
}
damage = damage + dmg;
if (damage >= killlevel) {
die();
render();
}
}
function explode() {
if (isexploded) {
return(undefined);
}
_global.sounds.playSound(explodesound);
isexploded = true;
render();
mov.gotoAndPlay("explode");
}
function checkNightMode() {
if (_global.map.nightmap) {
rr.utils.ClipUtils.setTint(mov.base_mc, 0, 80);
rr.utils.ClipUtils.setTint(loadmov.wagon, 0, 80);
}
}
function clearMov() {
}
function die() {
if (isdead) {
return(undefined);
}
isdead = true;
isSoundPlaying = false;
events.dispatchEvent({type:"onRemoveLoopSound", target:this});
events.dispatchEvent({type:"onEnemyDie", target:this});
}
function destroy() {
if (isdestroyed) {
return(undefined);
}
isdestroyed = true;
_global.sounds.stopLoopSound(this, true);
trace("stopLoopSound: ");
loadmov.removeMovieClip();
mov.removeMovieClip();
_global.stage.deleteCrane();
}
}
Symbol 3492 MovieClip [__Packages.com.robertpenner.utils.ColorTransformUtil] Frame 0
class com.robertpenner.utils.ColorTransformUtil
{
function ColorTransformUtil () {
}
static function setRGBStr(colorTrans, hexStr) {
hexStr = hexStr.substr(-6, 6);
colorTrans.rgb = parseInt(hexStr, 16);
}
static function getRGBStr(colorTrans) {
var _local1 = colorTrans.rgb.toString(16);
var _local2 = 6 - _local1.length;
while (_local2--) {
_local1 = "0" + _local1;
}
return(_local1.toUpperCase());
}
static function setRGB2(colorTrans, r, g, b) {
colorTrans.rgb = ((r << 16) | (g << 8)) | b;
}
static function getRGB2(colorTrans) {
return({r:colorTrans.redOffset, g:colorTrans.greenOffset, b:colorTrans.blueOffset});
}
static function reset(colorTrans) {
colorTrans.redMultiplier = 1;
colorTrans.greenMultiplier = 1;
colorTrans.blueMultiplier = 1;
colorTrans.redOffset = 0;
colorTrans.greenOffset = 0;
colorTrans.blueOffset = 0;
}
static function setBrightness(colorTrans, bright) {
with (colorTrans) {
redMultiplier = (greenMultiplier = (blueMultiplier = 1 - Math.abs(bright / 100)));
redOffset = (greenOffset = (blueOffset = (((bright / 100) > 0) ? ((bright / 100) * 256) : 0)));
}
}
static function getBrightness(colorTrans) {
with (colorTrans) {
return(((redOffset * 100) ? ((1 - redMultiplier) * 100) : ((redMultiplier - 1) * 100)));
}
}
static function setBrightOffset(colorTrans, offset) {
with (colorTrans) {
redOffset = (greenOffset = (blueOffset = offset));
}
}
static function getBrightOffset(colorTrans) {
return(colorTrans.redOffset);
}
static function setTint(colorTrans, r, g, b, percent) {
var _local2 = percent / 100;
colorTrans.redOffset = r * _local2;
colorTrans.greenOffset = g * _local2;
colorTrans.blueOffset = b * _local2;
colorTrans.redMultiplier = (colorTrans.greenMultiplier = (colorTrans.blueMultiplier = (100 - percent) / 100));
}
static function getTint(colorTrans) {
var _local1 = {percent:(1 - colorTrans.redMultiplier) * 100};
var _local2 = 100 / _local1.percent;
_local1.r = colorTrans.redOffset * _local2;
_local1.g = colorTrans.greenOffset * _local2;
_local1.b = colorTrans.blueOffset * _local2;
return(_local1);
}
static function setTint2(colorTrans, rgb, percent) {
var _local5 = rgb >> 16;
var _local6 = (rgb >> 8) & 255;
var _local4 = rgb & 255;
var _local2 = percent / 100;
colorTrans.redOffset = _local5 * _local2;
colorTrans.greenOffset = _local6 * _local2;
colorTrans.blueOffset = _local4 * _local2;
colorTrans.redMultiplier = (colorTrans.greenMultiplier = (colorTrans.blueMultiplier = (100 - percent) / 100));
}
static function getTint2(colorTrans) {
var _local1 = {percent:(1 - colorTrans.redMultiplier) * 100};
var _local2 = 100 / _local1.percent;
_local1.rgb = (((colorTrans.redOffset * _local2) << 16) | ((colorTrans.greenOffset * _local2) << 8)) | (colorTrans.blueOffset * _local2);
return(_local1);
}
static function setTintOffset(colorTrans, r, g, b) {
with (colorTrans) {
redOffset = r;
greenOffset = g;
blueOffset = b;
}
}
static function getTintOffset(colorTrans) {
return({r:colorTrans.redOffset, g:colorTrans.greenOffset, b:colorTrans.blueOffset});
}
static function setTintOffset2(colorTrans, rgb) {
var r = (rgb >> 16);
var g = ((rgb >> 8) & 255);
var b = (rgb & 255);
with (colorTrans) {
redOffset = r;
greenOffset = g;
blueOffset = b;
}
}
static function getTintOffset2(colorTrans) {
return(((colorTrans.redOffset << 16) | (colorTrans.greenOffset << 8)) | colorTrans.blueOffset);
}
static function invert(colorTrans) {
with (colorTrans) {
redMultiplier = -redMultiplier;
greenMultiplier = -greenMultiplier;
blueMultiplier = -blueMultiplier;
redOffset = 255 - redOffset;
greenOffset = 255 - greenOffset;
blueOffset = 255 - blueOffset;
}
}
static function setNegative(colorTrans, percent) {
colorTrans.redMultiplier = (colorTrans.greenMultiplier = (colorTrans.blueMultiplier = 100 - (2 * percent)));
colorTrans.redOffset = (colorTrans.greenOffset = (colorTrans.blueOffset = percent * 2.55));
}
static function getNegative(colorTrans) {
return(colorTrans.redOffset * 0.392156862745098);
}
static function setRed(colorTrans, amount) {
colorTrans.rgb = ((amount << 16) | (colorTrans.greenOffset << 8)) | colorTrans.blueOffset;
}
static function getRed(colorTrans) {
return(colorTrans.redOffset);
}
static function setGreen(colorTrans, amount) {
colorTrans.rgb = ((colorTrans.redOffset << 16) | (amount << 8)) | colorTrans.blueOffset;
}
static function getGreen(colorTrans) {
return(colorTrans.greenOffset);
}
static function setBlue(colorTrans, amount) {
colorTrans.rgb = ((colorTrans.redOffset << 16) | (colorTrans.greenOffset << 8)) | amount;
}
static function getBlue(colorTrans) {
return(colorTrans.blueOffset);
}
static function setRedPercent(colorTrans, percent) {
colorTrans.redMultiplier = percent / 100;
}
static function getRedPercent(colorTrans) {
return(colorTrans.redMultiplier * 100);
}
static function setGreenPercent(colorTrans, percent) {
colorTrans.greenMultiplier = percent / 100;
}
static function getGreenPercent(colorTrans) {
return(colorTrans.greenMultiplier * 100);
}
static function setBluePercent(colorTrans, percent) {
colorTrans.blueMultiplier = percent / 100;
}
static function getBluePercent(colorTrans) {
return(colorTrans.blueMultiplier * 100);
}
}
Symbol 3493 MovieClip [__Packages.rr.control.TrainSelect] Frame 0
class rr.control.TrainSelect extends rr.BaseClip
{
var _visible, locsPage1, ST_mc, BF_mc, RH_mc, LW_mc, PN_mc, locsPage2, SC_mc, DR_mc, IC_mc, more_btn, back_btn, locs, page;
function TrainSelect () {
super();
_global.trainselect = this;
init();
}
function init() {
_visible = false;
hideAll();
locsPage1 = [ST_mc, BF_mc, RH_mc, LW_mc, PN_mc];
locsPage2 = [SC_mc, DR_mc, IC_mc];
more_btn.onPress = rr.utils.Delegate.create(this, showPage, 2);
back_btn.onPress = rr.utils.Delegate.create(this, showPage, 1);
showPage(1);
_visible = true;
}
function showPage(p) {
var _local3 = 0;
if (locs) {
var _local2 = locs.length - 1;
while (_local2 >= 0) {
rr.utils.Delegate.callDelayed(this, hideLoc, _local3, locs[_local2]);
_local3 = _local3 + 50;
_local2--;
}
}
page = p;
more_btn._visible = page == 1;
back_btn._visible = page == 2;
locs = this["locsPage" + page];
var _local2 = 0;
while (_local2 < locs.length) {
rr.utils.Delegate.callDelayed(this, showLoc, _local3, locs[_local2]);
_local3 = _local3 + 50;
_local2++;
}
}
function showLoc(l) {
l._visible = true;
}
function hideLoc(l) {
l._visible = false;
}
function hideAll() {
for (var _local2 in this) {
if (this[_local2] instanceof MovieClip) {
this[_local2]._visible = false;
}
}
}
}
Symbol 3494 MovieClip [__Packages.rr.control.WagonSelect] Frame 0
class rr.control.WagonSelect extends rr.BaseClip
{
var page1, W1_mc, W2_mc, W3_mc, W4_mc, CC_mc, OT_mc, PG_mc, page2, more_btn, back_btn, items, page;
function WagonSelect () {
super();
_global.wagonselect = this;
init();
}
function init() {
hideAll();
page1 = [W1_mc, W2_mc, W3_mc, W4_mc, CC_mc, OT_mc, PG_mc];
page2 = [];
more_btn.onPress = rr.utils.Delegate.create(this, showPage, 2);
back_btn.onPress = rr.utils.Delegate.create(this, showPage, 1);
showPage(1);
}
function showPage(p) {
var _local3 = 0;
if (items) {
var _local2 = items.length - 1;
while (_local2 >= 0) {
rr.utils.Delegate.callDelayed(this, hideItem, _local3, items[_local2]);
_local3 = _local3 + 50;
_local2--;
}
}
page = p;
more_btn._visible = false;
back_btn._visible = false;
items = this["page" + page];
var _local2 = 0;
while (_local2 < items.length) {
rr.utils.Delegate.callDelayed(this, showItem, _local3, items[_local2]);
_local3 = _local3 + 50;
_local2++;
}
}
function showItem(l) {
l._visible = true;
}
function hideItem(l) {
l._visible = false;
}
function hideAll() {
for (var _local2 in this) {
if (this[_local2] instanceof MovieClip) {
this[_local2]._visible = false;
}
}
}
}
Symbol 3495 MovieClip [__Packages.cr.XmlControl] Frame 0
class cr.XmlControl extends rr.BaseClip
{
var _visible, done_btn;
function XmlControl () {
super();
_global.xmlcontrol = this;
init();
}
function init() {
_visible = false;
done_btn.onPress = rr.utils.Delegate.create(this, close);
}
function showMapXml() {
_global.demoalert.show();
}
function showLevelXml() {
_global.demoalert.show();
}
function close() {
_visible = false;
}
}
Symbol 3496 MovieClip [__Packages.cr.XmlImport] Frame 0
class cr.XmlImport extends rr.BaseClip
{
var import_mc, save_mc, import_btn, convert_btn, cnf_txt;
function XmlImport () {
super();
_global.xmlimport = this;
init();
}
function init() {
import_mc._visible = false;
save_mc._visible = false;
import_btn.onPress = rr.utils.Delegate.create(this, showImport);
import_mc.map_btn.onPress = rr.utils.Delegate.create(this, importMap);
import_mc.level_btn.onPress = rr.utils.Delegate.create(this, importLevel);
convert_btn._visible = false;
cnf_txt._visible = false;
}
function showImport() {
import_mc.result_txt.text = "";
import_mc.map_txt.text = "";
import_mc.level_txt.text = "";
import_mc._visible = true;
}
function importMap() {
showError(import_mc, "THIS FEATURE IS AVAILABLE IN THE FULL VERSION ONLY");
}
function isValidMap() {
return(true);
}
function importLevel() {
showError(import_mc, "THIS FEATURE IS AVAILABLE IN THE FULL VERSION ONLY");
}
function isValidLevel() {
return(true);
}
function showError(mc, err) {
mc.result_txt.textColor = 16711680 /* 0xFF0000 */;
mc.result_txt.text = err;
}
function showResult(mc, res) {
mc.result_txt.textColor = 65280;
mc.result_txt.text = res;
}
}
Symbol 3497 MovieClip [__Packages.cr.map.MapContainer] Frame 0
class cr.map.MapContainer extends rr.BaseClip
{
var more_btn, back_btn, defaultmaps, so, localmaps, maps, idx, laststart, nomap_txt, attachMovie;
function MapContainer () {
super();
init();
}
function init() {
more_btn.onRelease = rr.utils.Delegate.create(this, showMaps);
back_btn.onRelease = rr.utils.Delegate.create(this, flipBack);
defaultmaps = new Array();
so = SharedObject.getLocal("mapconfig");
localmaps = so.data.maps;
if (localmaps == undefined) {
localmaps = new Array();
}
maps = defaultmaps.concat(localmaps);
idx = 0;
showMaps();
}
function flipBack() {
idx = laststart - 12;
showMaps();
}
function showMaps() {
more_btn._visible = (back_btn._visible = false);
var _local5 = 0;
var _local6 = 0;
laststart = idx;
var _local4 = 0;
while (_local4 < 12) {
this["mb" + _local4].removeMovieClip();
_local4++;
}
var _local7 = maps.length;
if (_local7 > 0) {
nomap_txt._visible = false;
} else {
nomap_txt.autoSize = true;
nomap_txt.text = "THERE ARE CURRENTLY NO MAPS AVAILABLE\rCREATE AND SAVE A NEW MAP TO LOAD HERE";
nomap_txt._visible = true;
return(undefined);
}
_local4 = 0;
while (_local4 < 12) {
if (!maps[idx]) {
break;
}
var _local3 = attachMovie("MapButton", "mb" + _local4, 100 + _local4);
_local3.locked_mc._visible = false;
if (_local5 > 3) {
_local5 = 0;
_local6++;
}
_local3._x = _local5 * (_local3._width + 4);
_local3._y = _local6 * (_local3._height + 4);
_local5++;
_local3.title_txt.text = (("MAP" + maps[idx].mapid) + "_") + maps[idx].title;
_local3.image_mc.gotoAndStop(maps[idx].mapid);
if (maps[idx].title == "default") {
_local3.delete_btn._visible = false;
}
if (_global.createaction == "loadmap") {
_local3.image_mc.onPress = rr.utils.Delegate.create(_global.createcontrol, _global.createcontrol.loadMap, maps[idx]);
}
if (_global.createaction == "newlevel") {
_local3.image_mc.onPress = rr.utils.Delegate.create(_global.createcontrol, _global.createcontrol.createLevel, maps[idx]);
}
_local3.delete_btn.onPress = rr.utils.Delegate.create(this, deleteMap, maps[idx]);
idx++;
_local4++;
}
more_btn._visible = (maps.length > 12) && (idx < maps.length);
back_btn._visible = idx > 12;
}
function deleteMap(delMap) {
var _local3 = localmaps.length;
var _local2 = 0;
while (_local2 < _local3) {
if (localmaps[_local2] == delMap) {
localmaps.splice(_local2, 1);
break;
}
_local2++;
}
so.data.maps = localmaps;
so.flush();
maps = defaultmaps.concat(localmaps);
idx = laststart;
showMaps();
}
}
Symbol 3498 MovieClip [__Packages.cr.map.NewMapContainer] Frame 0
class cr.map.NewMapContainer extends rr.BaseClip
{
var maps, attachMovie;
function NewMapContainer () {
super();
init();
}
function init() {
maps = [{id:1, sid:1, title:"GRASSLAND"}, {id:2, sid:2, title:"DESERT"}, {id:3, sid:4, title:"ARCTIC ICE"}, {id:4, sid:6, title:"JUNGLE"}, {id:5, sid:8, title:"FLATLANDS"}];
showMaps();
}
function showMaps() {
var _local5 = 0;
var _local6 = 0;
var _local3 = 0;
while (_local3 < 5) {
this["mb" + _local3].removeMovieClip();
_local3++;
}
_local3 = 0;
while (_local3 < 5) {
if (!maps[_local3]) {
break;
}
var _local4 = attachMovie("MapButton", "mb" + _local3, 100 + _local3);
if (_local5 > 3) {
_local5 = 0;
_local6++;
}
_local4._x = _local5 * (_local4._width + 4);
_local4._y = _local6 * (_local4._height + 4);
_local5++;
_local4.title_txt.text = (("MAP " + maps[_local3].id) + "_") + maps[_local3].title;
_local4.image_mc.gotoAndStop(maps[_local3].id);
_local4.delete_btn._visible = false;
if (maps[_local3].sid == 1) {
_local4.locked_mc._visible = false;
_local4.image_mc.onPress = rr.utils.Delegate.create(_global.createcontrol, _global.createcontrol.createMap, maps[_local3].id);
} else {
_local4._alpha = 50;
}
_local3++;
}
}
}
Symbol 3499 MovieClip [__Packages.cr.level.LevelContainer] Frame 0
class cr.level.LevelContainer extends rr.BaseClip
{
var more_btn, back_btn, defaultlevels, so, locallevels, levels, idx, laststart, nolevel_txt, attachMovie;
function LevelContainer () {
super();
init();
}
function init() {
more_btn.onRelease = rr.utils.Delegate.create(this, showLevels);
back_btn.onRelease = rr.utils.Delegate.create(this, flipBack);
defaultlevels = [];
so = SharedObject.getLocal("levelconfig");
locallevels = so.data.levels;
if (locallevels == undefined) {
locallevels = new Array();
}
levels = defaultlevels.concat(locallevels);
idx = 0;
showLevels();
}
function flipBack() {
idx = laststart - 12;
showLevels();
}
function showLevels() {
more_btn._visible = (back_btn._visible = false);
var _local5 = 0;
var _local6 = 0;
laststart = idx;
var _local4 = 0;
while (_local4 < 12) {
this["lb" + _local4].removeMovieClip();
_local4++;
}
var _local7 = levels.length;
if (_local7 > 0) {
nolevel_txt._visible = false;
} else {
nolevel_txt.autoSize = true;
nolevel_txt.text = "THERE ARE CURRENTLY NO LEVELS AVAILABLE\rCREATE AND SAVE A NEW LEVEL TO LOAD HERE";
nolevel_txt._visible = true;
return(undefined);
}
_local4 = 0;
while (_local4 < 12) {
if (!levels[idx]) {
break;
}
var _local3 = attachMovie("MapButton", "lb" + _local4, 100 + _local4);
_local3.locked_mc._visible = false;
if (_local5 > 3) {
_local5 = 0;
_local6++;
}
_local3._x = _local5 * (_local3._width + 4);
_local3._y = _local6 * (_local3._height + 4);
_local5++;
_local3.title_txt.text = (("LEVEL" + levels[idx].map.mapid) + "_") + levels[idx].title;
_local3.image_mc.gotoAndStop(levels[idx].map.mapid);
if (levels[idx].title == "default") {
_local3.delete_btn._visible = false;
}
_local3.image_mc.onPress = rr.utils.Delegate.create(_global.createcontrol, _global.createcontrol.loadLevel, levels[idx]);
_local3.delete_btn.onPress = rr.utils.Delegate.create(this, deleteLevel, levels[idx]);
idx++;
_local4++;
}
more_btn._visible = (levels.length > 12) && (idx < levels.length);
back_btn._visible = idx > 12;
}
function deleteLevel(delLevel) {
var _local3 = locallevels.length;
var _local2 = 0;
while (_local2 < _local3) {
if (locallevels[_local2] == delLevel) {
locallevels.splice(_local2, 1);
break;
}
_local2++;
}
so.data.levels = locallevels;
so.flush();
levels = defaultlevels.concat(locallevels);
idx = laststart;
showLevels();
}
}
Symbol 3500 MovieClip [__Packages.rr.GameContainer] Frame 0
class rr.GameContainer extends rr.BaseClip
{
var more_btn, back_btn, defaultlevels, so, locallevels, levels, idx, laststart, nogame_txt, attachMovie, _parent;
function GameContainer () {
super();
init();
}
function init() {
more_btn.onRelease = rr.utils.Delegate.create(this, showLevels);
back_btn.onRelease = rr.utils.Delegate.create(this, flipBack);
defaultlevels = new Array();
if (_global.gametype == "railrage") {
var _local4 = _global.superlevel;
if (_local4 > 1) {
var _local3 = new rr.conf.level.ConfLevel1();
_local3.isdefault = true;
_local3.ragelevelid = 1;
defaultlevels.push(_local3);
}
if (_local4 > 2) {
var _local3 = new rr.conf.level.ConfLevel2();
_local3.isdefault = true;
_local3.ragelevelid = 2;
defaultlevels.push(_local3);
}
}
so = SharedObject.getLocal("levelconfig");
locallevels = so.data.levels;
if (locallevels == undefined) {
locallevels = new Array();
}
levels = defaultlevels.concat(locallevels);
idx = 0;
showLevels();
}
function flipBack() {
idx = laststart - 12;
showLevels();
}
function showLevels() {
more_btn._visible = (back_btn._visible = false);
var _local5 = 0;
var _local6 = 0;
laststart = idx;
var _local4 = 0;
while (_local4 < 12) {
this["gb" + _local4].removeMovieClip();
_local4++;
}
var _local7 = levels.length;
if (_local7 > 0) {
nogame_txt._visible = false;
} else {
nogame_txt.autoSize = true;
if (_global.gametype == "railrage") {
nogame_txt.text = "THERE ARE CURRENTLY NO RAIL RAGE LEVELS AVAILABLE\rPLAY MISSIONS TO UNLOCK RAIL RAGE LEVELS\rOR CREATE AND SAVE YOUR OWN LEVEL IN \"CREATE YOUR LEVEL\"";
} else {
nogame_txt.text = "THERE ARE CURRENTLY NO LEVELS AVAILABLE\rCREATE AND SAVE YOUR OWN LEVEL IN \"CREATE YOUR LEVEL\"";
}
nogame_txt._visible = true;
return(undefined);
}
_local4 = 0;
while (_local4 < 12) {
if (!levels[idx]) {
break;
}
var _local3 = attachMovie("GameButton", "gb" + _local4, 100 + _local4);
if (_local5 > 3) {
_local5 = 0;
_local6++;
}
_local3._x = _local5 * (_local3._width + 4);
_local3._y = _local6 * (_local3._height + 4);
_local5++;
_local3.title_txt.text = levels[idx].title;
_local3.image_mc.gotoAndStop(levels[idx].map.mapid);
_local3.image_mc.onPress = rr.utils.Delegate.create(this, loadLevel, levels[idx]);
idx++;
_local4++;
}
more_btn._visible = (levels.length > 12) && (idx < levels.length);
back_btn._visible = idx > 12;
}
function loadLevel(levelConfig) {
_global.loadedlevel = levelConfig;
_parent._parent.gotoAndPlay("game");
}
}
Symbol 3501 MovieClip [__Packages.cr.SaveControl] Frame 0
class cr.SaveControl extends rr.BaseClip
{
var savetype, header, title, gotoAndPlay, result_txt;
function SaveControl () {
super();
_global.savecontrol = this;
}
function init() {
}
function showMapSave() {
savetype = "map";
header = ("MAP" + _global.createcontrol.mapId) + "_";
title = "DEMO";
_global.demoalert.show("IN THIS DEMO-VERSION IT IS POSSIBLE TO\rSAVE ONLY ONE MAP AND ONE LEVEL");
(gotoAndPlay("show"));// not popped
}
function showLevelSave() {
savetype = "level";
header = "LEVEL_";
title = "DEMO";
_global.demoalert.show("IN THIS DEMO-VERSION IT IS POSSIBLE TO\rSAVE ONLY ONE MAP AND ONE LEVEL");
(gotoAndPlay("show"));// not popped
}
function submit() {
var _local2;
if (savetype == "map") {
_local2 = submitMap();
}
if (savetype == "level") {
_local2 = submitLevel();
}
if (_local2 == false) {
result_txt.textColor = 16711680 /* 0xFF0000 */;
result_txt.text = "Not able to save.";
} else if (_local2 == "pending") {
result_txt.textColor = 16711680 /* 0xFF0000 */;
result_txt.text = "Not enough disk space\rto save.";
} else if (_local2 == true) {
result_txt.textColor = 65280;
result_txt.text = (header + title) + "\rSUCCESSFULLY SAVED";
}
(gotoAndPlay("result"));// not popped
}
function showError(err) {
result_txt.textColor = 16711680 /* 0xFF0000 */;
result_txt.text = err;
(gotoAndPlay("result"));// not popped
}
function submitMap() {
title = "DEMO";
_global.createcontrol.mapTitle = title;
if (title == "") {
showError("No name for map\rMAP HAS NOT BEEN SAVED");
return(undefined);
}
if (title == "default") {
showError("Mapname is reserved\rMAP HAS NOT BEEN SAVED");
return(undefined);
}
var _local3 = cr.CreateUtils.createMapConf();
_local3.mapid = _global.createcontrol.mapId;
_local3.title = title;
var _local5 = SharedObject.getLocal("mapconfig");
var _local4 = new Array();
_local4.push(_local3);
_local5.data.maps = _local4;
return(_local5.flush());
}
function submitLevel() {
title = "DEMO";
_global.createcontrol.levelTitle = title;
if (title == "") {
showError("No name for level\rMAP HAS NOT BEEN SAVED");
return(undefined);
}
if (title == "default") {
showError("Mapname is reserved\rMAP HAS NOT BEEN SAVED");
return(undefined);
}
var _local4 = cr.CreateUtils.createLevelConf();
_local4.title = title;
var _local5 = SharedObject.getLocal("levelconfig");
var _local3 = new Array();
_local3.push(_local4);
_local5.data.levels = _local3;
return(_local5.flush());
}
}
Symbol 3502 MovieClip [__Packages.cr.CreateUtils] Frame 0
class cr.CreateUtils
{
function CreateUtils () {
}
static function mapConfToXml(cnf) {
var _local10 = new XML();
_local10.ignoreWhite = true;
var _local12;
var _local17;
var _local16 = _local10.createElement("map");
_local16.attributes.mapid = cnf.mapid;
var _local13 = _local10.createElement("rcs");
_local16.appendChild(_local13);
_local12 = cnf.rc.length;
var _local9 = 0;
while (_local9 < _local12) {
_local17 = false;
var _local8 = cnf.rc[_local9];
var _local4 = _local10.createElement("rc");
if (_local8.s) {
var _local5 = "";
_local4.attributes.sy = _local8.s.y;
_local4.attributes.sx = _local8.s.x;
var _local1 = 0;
while (_local1 <= 7) {
var _local6 = _local8.s.p[_local1];
_local5 = _local5 + _local6.toString();
if (_local1 < 7) {
_local5 = _local5 + ",";
}
_local1++;
}
_local4.attributes.sp = _local5;
}
_local4.attributes.a = _local8.a;
_local4.attributes.y = _local8.y;
_local4.attributes.x = _local8.x;
_local4.attributes.id = _local8.id;
_local13.appendChild(_local4);
_local9++;
}
var _local15 = _local10.createElement("rss");
_local16.appendChild(_local15);
_local12 = cnf.rs.length;
_local9 = 0;
while (_local9 < _local12) {
var _local2 = cnf.rs[_local9];
var _local3 = _local10.createElement("rs");
if (_local2.r) {
_local3.attributes.l = _local2.l;
_local3.attributes.d = _local2.d;
_local3.attributes.r = _local2.r;
}
if (_local2.eo) {
_local3.attributes.eo = 1;
}
if (_local2.t) {
_local3.attributes.t = 1;
}
_local3.attributes.e = _local2.e;
_local3.attributes.s = _local2.s;
_local3.attributes.id = _local2.id;
_local15.appendChild(_local3);
_local9++;
}
var _local14 = _local10.createElement("cps");
_local16.appendChild(_local14);
_local12 = cnf.cp.length;
_local9 = 0;
while (_local9 < _local12) {
var _local8 = cnf.cp[_local9];
var _local7 = _local10.createElement("cp");
_local7.attributes.r = _local8.rot;
_local7.attributes.y = _local8.y;
_local7.attributes.x = _local8.x;
_local14.appendChild(_local7);
_local9++;
}
return(_local16);
}
static function mapXmlToConf(mapxml) {
var _local5 = new Object();
var _local6;
var _local17 = mapxml;
_local5.mapid = Number(_local17.attributes.mapid);
_local5.rc = [];
var _local15 = findChildNode(_local17, "rcs");
_local6 = _local15.childNodes.length;
var _local3 = 0;
while (_local3 < _local6) {
var _local1 = _local15.childNodes[_local3];
var _local7 = {id:Number(_local1.attributes.id), x:Number(_local1.attributes.x), y:Number(_local1.attributes.y), a:Number(_local1.attributes.a)};
if (_local1.attributes.sp) {
_local7.s = new Object();
_local7.s.x = Number(_local1.attributes.sx);
_local7.s.y = Number(_local1.attributes.sy);
_local7.s.p = _local1.attributes.sp.split(",");
}
_local5.rc.push(_local7);
_local3++;
}
_local5.rs = [];
var _local14 = findChildNode(_local17, "rss");
_local6 = _local14.childNodes.length;
_local3 = 0;
while (_local3 < _local6) {
var _local2 = _local14.childNodes[_local3];
var _local7 = {id:Number(_local2.attributes.id), s:Number(_local2.attributes.s), e:Number(_local2.attributes.e)};
if (_local2.attributes.r) {
_local7.r = Number(_local2.attributes.r);
_local7.d = Number(_local2.attributes.d);
_local7.l = Number(_local2.attributes.l);
}
if (_local2.attributes.eo) {
_local7.eo = 1;
}
if (_local2.attributes.t) {
_local7.t = 1;
}
_local5.rs.push(_local7);
_local3++;
}
_local5.cp = [];
var _local16 = findChildNode(_local17, "cps");
_local6 = _local16.childNodes.length;
_local3 = 0;
while (_local3 < _local6) {
var _local4 = _local16.childNodes[_local3];
var _local7 = {x:Number(_local4.attributes.x), y:Number(_local4.attributes.y), rot:Number(_local4.attributes.r)};
_local5.cp.push(_local7);
_local3++;
}
return(_local5);
}
static function createMapConf() {
var _local9 = new Object();
var _local10;
var _local8;
_local9.rc = [];
_local10 = _global.stage.rc.length;
var _local6 = 0;
while (_local6 < _local10) {
_local8 = false;
var _local2 = _global.stage["rc_" + _global.stage.rc[_local6]];
var _local11 = {id:_local2.id, x:_local2.x, y:_local2.y, a:_local2.ang};
var _local3 = 0;
while (_local3 <= 7) {
if (_local2.rswitch.positions[_local3].rsid != null) {
_local8 = true;
break;
}
_local3++;
}
if (_local8) {
_local11.s = new Object();
_local11.s.x = Math.round(_local2.rswitch.x);
_local11.s.y = Math.round(_local2.rswitch.y);
_local11.s.p = [];
_local3 = 0;
while (_local3 <= 7) {
var _local5 = ((_local2.rswitch.positions[_local3].rsid == null) ? -1 : (_local2.rswitch.positions[_local3].rsid));
_local11.s.p.push(_local5);
_local3++;
}
}
_local9.rc.push(_local11);
_local6++;
}
_local9.rs = [];
_local10 = _global.stage.rs.length;
_local6 = 0;
while (_local6 < _local10) {
var _local4 = _global.stage["rs_" + _global.stage.rs[_local6]];
var _local11 = {id:_local4.id, s:_local4.cps.id, e:_local4.cpe.id};
if (_local4.type == "arc") {
_local11.r = _local4.radius;
_local11.d = _local4.dir;
_local11.l = Math.round(_local4.length);
}
if (_local4.endout) {
_local11.eo = 1;
}
if (_local4.toggled) {
_local11.t = 1;
}
_local9.rs.push(_local11);
_local6++;
}
_local9.cp = [];
_local10 = _global.stage.cp.length;
_local6 = 0;
while (_local6 < _local10) {
var _local7 = _global.stage["cp_" + _global.stage.cp[_local6]];
var _local11 = {x:_local7.x, y:_local7.y, rot:_local7.rot};
_local9.cp.push(_local11);
_local6++;
}
return(_local9);
}
static function levelXmlToConf(levelxml) {
var _local3 = new Object();
var _local4;
var _local20 = levelxml;
_local3.nightmap = Boolean(_local20.attributes.nightmap);
_local3.startcash = Number(_local20.attributes.startcash);
var _local27 = findChildNode(_local20, "map");
_local3.map = mapXmlToConf(_local27);
_local3.ea = [];
var _local23 = findChildNode(_local20, "eas");
_local4 = _local23.childNodes.length;
var _local8 = 0;
while (_local8 < _local4) {
var _local7 = _local23.childNodes[_local8];
if (_local7.nodeName == "ea") {
var _local12 = {x:Number(_local7.attributes.x), y:Number(_local7.attributes.y), w:Number(_local7.attributes.w), h:Number(_local7.attributes.h)};
_local12.e = _local7.attributes.e.split(",");
_local3.ea.push(_local12);
}
if (_local7.nodeName == "cea") {
var _local12 = {a:[], e:[]};
_local12.e = _local7.attributes.e.split(",");
var _local9 = _local7.childNodes.length;
var _local2 = 0;
while (_local2 < _local9) {
var _local1 = _local7.childNodes[_local2];
_local12.a.push({x:Number(_local1.attributes.x), y:Number(_local1.attributes.y), w:Number(_local1.attributes.w), h:Number(_local1.attributes.h)});
_local2++;
}
_local3.ea.push(_local12);
}
_local8++;
}
_local3.af = [];
var _local26 = findChildNode(_local20, "afs");
_local4 = _local26.childNodes.length;
_local8 = 0;
while (_local8 < _local4) {
var _local7 = _local26.childNodes[_local8];
var _local12 = {x:Number(_local7.attributes.x), y:Number(_local7.attributes.y), r:Number(_local7.attributes.r)};
_local12.e = _local7.attributes.e.split(",");
_local3.af.push(_local12);
_local8++;
}
_local3.bk = [];
var _local25 = findChildNode(_local20, "bks");
_local4 = _local25.childNodes.length;
_local8 = 0;
while (_local8 < _local4) {
var _local5 = _local25.childNodes[_local8];
var _local12 = {x:Number(_local5.attributes.x), y:Number(_local5.attributes.y), r:Number(_local5.attributes.r), s:Number(_local5.attributes.s)};
_local3.bk.push(_local12);
_local8++;
}
_local3.rb = [];
var _local22 = findChildNode(_local20, "rbs");
_local4 = _local22.childNodes.length;
_local8 = 0;
while (_local8 < _local4) {
var _local5 = _local22.childNodes[_local8];
var _local12 = {x:Number(_local5.attributes.x), y:Number(_local5.attributes.y), r:Number(_local5.attributes.r)};
_local3.rb.push(_local12);
_local8++;
}
_local3.bs = [];
var _local21 = findChildNode(_local20, "bss");
_local4 = _local21.childNodes.length;
_local8 = 0;
while (_local8 < _local4) {
var _local5 = _local21.childNodes[_local8];
var _local12 = {x:Number(_local5.attributes.x), y:Number(_local5.attributes.y), t:_local5.attributes.t};
if (_local5.attributes.t == "m") {
_local12.c = Number(_local5.attributes.c);
}
_local3.bs.push(_local12);
_local8++;
}
_local3.dp = [];
var _local24 = findChildNode(_local20, "dps");
_local4 = _local24.childNodes.length;
_local8 = 0;
while (_local8 < _local4) {
var _local6 = _local24.childNodes[_local8];
var _local12 = {x:Number(_local6.attributes.x), y:Number(_local6.attributes.y), t:_local6.attributes.t, m:_local6.attributes.m};
_local3.dp.push(_local12);
_local8++;
}
return(_local3);
}
static function createLevelConf() {
var _local3 = new Object();
var _local5;
_local3.map = copyMapValues(_global.createcontrol.confmap);
_local3.nightmap = _global.stage.isnightlevel;
_local3.startcash = _global.stage.startcash;
_local3.ea = [];
_local3.af = [];
_local3.bk = [];
_local3.rb = [];
_local3.bs = [];
_local3.dp = [];
_local5 = _global.stage.areas.length;
var _local11 = 0;
while (_local11 < _local5) {
var _local8 = _global.stage["area_" + _global.stage.areas[_local11]];
if (!_local8.combination) {
var _local9 = _local8.enemies.length;
if (_local9 > 0) {
var _local15 = {x:_local8.x, y:_local8.y, w:_local8.w, h:_local8.h, e:[]};
var _local2 = 0;
while (_local2 < _local9) {
_local15.e.push(rr.conf.Config.getObjectValue(_local8.enemies[_local2], "confcode"));
_local2++;
}
_local3.ea.push(_local15);
}
}
_local11++;
}
_local5 = _global.stage.combinations.length;
_local11 = 0;
while (_local11 < _local5) {
var _local4 = _global.stage["comb_" + _global.stage.combinations[_local11]];
if (_local4.enemies.length > 0) {
var _local15 = {a:[], e:[]};
var _local12 = _local4.areas.length;
var _local2 = 0;
while (_local2 < _local12) {
var _local8 = _local4.areas[_local2];
_local15.a.push({x:_local8.x, y:_local8.y, w:_local8.w, h:_local8.h});
_local2++;
}
var _local9 = _local4.enemies.length;
_local2 = 0;
while (_local2 < _local9) {
_local15.e.push(rr.conf.Config.getObjectValue(_local4.enemies[_local2], "confcode"));
_local2++;
}
_local3.ea.push(_local15);
}
_local11++;
}
var _local23 = _global.stage.AirFieldarr;
_local5 = _local23.length;
_local11 = 0;
while (_local11 < _local5) {
var _local8 = _global.stage["AirField" + _local23[_local11]];
var _local9 = _local8.enemies.length;
if (_local9 > 0) {
var _local15 = {x:_local8.x, y:_local8.y, r:_local8.rot, e:[]};
var _local2 = 0;
while (_local2 < _local9) {
_local15.e.push(rr.conf.Config.getObjectValue(_local8.enemies[_local2], "confcode"));
_local2++;
}
_local3.af.push(_local15);
}
_local11++;
}
_local23 = _global.stage.Bunkerarr;
_local5 = _local23.length;
_local11 = 0;
while (_local11 < _local5) {
var _local7 = _global.stage["Bunker" + _local23[_local11]];
var _local15 = {x:_local7.x, y:_local7.y, r:_local7.rot, s:_local7.scale};
_local3.bk.push(_local15);
_local11++;
}
_local23 = _global.stage.RocketBasearr;
_local5 = _local23.length;
_local11 = 0;
while (_local11 < _local5) {
var _local7 = _global.stage["RocketBase" + _local23[_local11]];
var _local15 = {x:_local7.x, y:_local7.y, r:_local7.rot};
_local3.rb.push(_local15);
_local11++;
}
_local23 = _global.stage.Bonusarr;
_local5 = _local23.length;
_local11 = 0;
while (_local11 < _local5) {
var _local7 = _global.stage["Bonus" + _local23[_local11]];
var _local15 = {x:_local7.x, y:_local7.y, t:_local7.type};
if (_local7.type == "m") {
var _local10 = Number(_local7.mov.image_mc.cash_txt.text);
if (!_local10) {
_local10 = 10000;
}
_local15.c = _local10;
}
if (_local7.type == "e") {
_local3.bs.push(_local15);
}
_local11++;
}
_local23 = _global.stage.Droparr;
_local5 = _local23.length;
_local11 = 0;
while (_local11 < _local5) {
var _local6 = _global.stage["Drop" + _local23[_local11]];
var _local15 = {x:_local6.x, y:_local6.y, t:_local6.type, m:_local6.mode};
if ((_local6.type == "f") || (_local6.type == "p")) {
_local3.dp.push(_local15);
}
_local11++;
}
return(_local3);
}
static function copyMapValues(m) {
var _local1 = new Object();
_local1.mapid = m.mapid;
_local1.title = m.title;
_local1.cp = m.cp;
_local1.rc = m.rc;
_local1.rs = m.rs;
return(_local1);
}
static function findChildNode(rootnode, childnodename) {
var _local3 = rootnode.childNodes.length;
var _local1 = 0;
while (_local1 < _local3) {
if (rootnode.childNodes[_local1].nodeName == childnodename) {
return(rootnode.childNodes[_local1]);
}
_local1++;
}
}
static function mapXmlToConfString(mapxml) {
var _local1 = "";
var _local2;
var _local4 = "\t\t";
var _local9 = mapxml;
_local1 = _local1 + (((_local4 + "mapid = ") + _local9.attributes.mapid) + newline);
_local1 = _local1 + (((_local4 + "title = \"default\"") + newline) + newline);
_local1 = _local1 + ((_local4 + "rc = [") + newline);
var _local7 = findChildNode(_local9, "rcs");
_local2 = _local7.childNodes.length;
_local4 = "\t\t\t";
var _local3 = 0;
while (_local3 < _local2) {
var _local5 = _local7.childNodes[_local3];
_local1 = _local1 + (_local4 + "{");
_local1 = _local1 + (("id:" + _local5.attributes.id) + ", ");
_local1 = _local1 + (("x:" + _local5.attributes.x) + ", ");
_local1 = _local1 + (("y:" + _local5.attributes.y) + ", ");
_local1 = _local1 + ("a:" + _local5.attributes.a);
if (_local5.attributes.sp) {
_local1 = _local1 + ", s:{";
_local1 = _local1 + (("x:" + _local5.attributes.sx) + ", ");
_local1 = _local1 + (("y:" + _local5.attributes.sy) + ", ");
_local1 = _local1 + (("p:[" + _local5.attributes.sp) + "]");
_local1 = _local1 + "}";
}
_local1 = _local1 + "}";
if (_local3 < (_local2 - 1)) {
_local1 = _local1 + ",";
}
_local1 = _local1 + newline;
_local3++;
}
_local4 = "\t\t";
_local1 = _local1 + (((_local4 + "]") + newline) + newline);
_local1 = _local1 + ((_local4 + "rs = [") + newline);
var _local6 = findChildNode(_local9, "rss");
_local2 = _local6.childNodes.length;
_local4 = "\t\t\t";
_local3 = 0;
while (_local3 < _local2) {
var _local5 = _local6.childNodes[_local3];
_local1 = _local1 + (_local4 + "{");
_local1 = _local1 + (("id:" + _local5.attributes.id) + ", ");
_local1 = _local1 + (("s:" + _local5.attributes.s) + ", ");
_local1 = _local1 + ("e:" + _local5.attributes.e);
if (_local5.attributes.r) {
_local1 = _local1 + (", r:" + _local5.attributes.r);
_local1 = _local1 + (", d:" + _local5.attributes.d);
_local1 = _local1 + (", l:" + _local5.attributes.l);
}
if (_local5.attributes.eo) {
_local1 = _local1 + ", eo:1";
}
if (_local5.attributes.t) {
_local1 = _local1 + ", t:1";
}
_local1 = _local1 + "}";
if (_local3 < (_local2 - 1)) {
_local1 = _local1 + ",";
}
_local1 = _local1 + newline;
_local3++;
}
_local4 = "\t\t";
_local1 = _local1 + (((_local4 + "]") + newline) + newline);
_local1 = _local1 + ((_local4 + "cp = [") + newline);
var _local8 = findChildNode(_local9, "cps");
_local2 = _local8.childNodes.length;
_local4 = "\t\t\t";
_local3 = 0;
while (_local3 < _local2) {
var _local5 = _local8.childNodes[_local3];
_local1 = _local1 + (_local4 + "{");
_local1 = _local1 + (("x:" + _local5.attributes.x) + ", ");
_local1 = _local1 + (("y:" + _local5.attributes.y) + ", ");
_local1 = _local1 + ("rot:" + _local5.attributes.r);
_local1 = _local1 + "}";
if (_local3 < (_local2 - 1)) {
_local1 = _local1 + ",";
}
_local1 = _local1 + newline;
_local3++;
}
_local4 = "\t\t";
_local1 = _local1 + (((_local4 + "]") + newline) + newline);
return(_local1);
}
static function levelXmlToConfString(levelxml) {
var _local1 = "";
var _local3;
var _local2 = "\t\t";
var _local19 = levelxml;
_local1 = _local1 + ((_local2 + "ea = [") + newline);
var _local15 = findChildNode(_local19, "eas");
_local3 = _local15.childNodes.length;
_local2 = "\t\t\t";
var _local11 = 0;
while (_local11 < _local3) {
var _local9 = _local15.childNodes[_local11];
if (_local9.nodeName == "ea") {
_local1 = _local1 + (_local2 + "{");
_local1 = _local1 + (("x:" + _local9.attributes.x) + ", ");
_local1 = _local1 + (("y:" + _local9.attributes.y) + ", ");
_local1 = _local1 + (("w:" + _local9.attributes.w) + ", ");
_local1 = _local1 + (("h:" + _local9.attributes.h) + ", ");
_local1 = _local1 + "e:[";
var _local12 = _local9.attributes.e.split(",");
var _local7 = _local12.length;
var _local4 = 0;
while (_local4 < _local7) {
_local1 = _local1 + (("\"" + _local12[_local4]) + "\"");
if (_local4 < (_local7 - 1)) {
_local1 = _local1 + ",";
}
_local4++;
}
_local1 = _local1 + "]";
_local1 = _local1 + "}";
}
if (_local9.nodeName == "cea") {
_local1 = _local1 + ((_local2 + "{") + newline);
_local2 = "\t\t\t\t";
_local1 = _local1 + (_local2 + "e:[");
var _local12 = _local9.attributes.e.split(",");
var _local7 = _local12.length;
var _local4 = 0;
while (_local4 < _local7) {
_local1 = _local1 + (("\"" + _local12[_local4]) + "\"");
if (_local4 < (_local7 - 1)) {
_local1 = _local1 + ",";
}
_local4++;
}
_local1 = _local1 + "],\r";
_local1 = _local1 + (_local2 + "a:[");
var _local10 = _local9.childNodes.length;
_local4 = 0;
while (_local4 < _local10) {
var _local5 = _local9.childNodes[_local4];
_local1 = _local1 + "{";
_local1 = _local1 + (("x:" + _local5.attributes.x) + ", ");
_local1 = _local1 + (("y:" + _local5.attributes.y) + ", ");
_local1 = _local1 + (("w:" + _local5.attributes.w) + ", ");
_local1 = _local1 + ("h:" + _local5.attributes.h);
_local1 = _local1 + "}";
if (_local4 < (_local10 - 1)) {
_local1 = _local1 + ",";
}
_local4++;
}
_local1 = _local1 + "]\r";
_local2 = "\t\t\t";
_local1 = _local1 + (_local2 + "}");
}
if (_local11 < (_local3 - 1)) {
_local1 = _local1 + ",";
}
_local1 = _local1 + newline;
_local11++;
}
_local2 = "\t\t";
_local1 = _local1 + (((_local2 + "]") + newline) + newline);
_local1 = _local1 + ((_local2 + "af = [") + newline);
var _local18 = findChildNode(_local19, "afs");
_local3 = _local18.childNodes.length;
_local2 = "\t\t\t";
_local11 = 0;
while (_local11 < _local3) {
var _local9 = _local18.childNodes[_local11];
_local1 = _local1 + (_local2 + "{");
_local1 = _local1 + (("x:" + _local9.attributes.x) + ", ");
_local1 = _local1 + (("y:" + _local9.attributes.y) + ", ");
_local1 = _local1 + (("r:" + _local9.attributes.r) + ", ");
_local1 = _local1 + "e:[";
var _local12 = _local9.attributes.e.split(",");
var _local7 = _local12.length;
var _local4 = 0;
while (_local4 < _local7) {
_local1 = _local1 + (("\"" + _local12[_local4]) + "\"");
if (_local4 < (_local7 - 1)) {
_local1 = _local1 + ",";
}
_local4++;
}
_local1 = _local1 + "]";
_local1 = _local1 + "}";
if (_local11 < (_local3 - 1)) {
_local1 = _local1 + ",";
}
_local1 = _local1 + newline;
_local11++;
}
_local2 = "\t\t";
_local1 = _local1 + (((_local2 + "]") + newline) + newline);
_local1 = _local1 + ((_local2 + "bk = [") + newline);
var _local17 = findChildNode(_local19, "bks");
_local3 = _local17.childNodes.length;
_local2 = "\t\t\t";
_local11 = 0;
while (_local11 < _local3) {
var _local6 = _local17.childNodes[_local11];
_local1 = _local1 + (_local2 + "{");
_local1 = _local1 + (("x:" + _local6.attributes.x) + ", ");
_local1 = _local1 + (("y:" + _local6.attributes.y) + ", ");
_local1 = _local1 + (("r:" + _local6.attributes.r) + ", ");
_local1 = _local1 + ("s:" + _local6.attributes.s);
_local1 = _local1 + "}";
if (_local11 < (_local3 - 1)) {
_local1 = _local1 + ",";
}
_local1 = _local1 + newline;
_local11++;
}
_local2 = "\t\t";
_local1 = _local1 + (((_local2 + "]") + newline) + newline);
_local1 = _local1 + ((_local2 + "rb = [") + newline);
var _local14 = findChildNode(_local19, "rbs");
_local3 = _local14.childNodes.length;
_local2 = "\t\t\t";
_local11 = 0;
while (_local11 < _local3) {
var _local6 = _local14.childNodes[_local11];
_local1 = _local1 + (_local2 + "{");
_local1 = _local1 + (("x:" + _local6.attributes.x) + ", ");
_local1 = _local1 + (("y:" + _local6.attributes.y) + ", ");
_local1 = _local1 + ("r:" + _local6.attributes.r);
_local1 = _local1 + "}";
if (_local11 < (_local3 - 1)) {
_local1 = _local1 + ",";
}
_local1 = _local1 + newline;
_local11++;
}
_local2 = "\t\t";
_local1 = _local1 + (((_local2 + "]") + newline) + newline);
_local1 = _local1 + ((_local2 + "bs = [") + newline);
var _local13 = findChildNode(_local19, "bss");
_local3 = _local13.childNodes.length;
_local2 = "\t\t\t";
_local11 = 0;
while (_local11 < _local3) {
var _local6 = _local13.childNodes[_local11];
_local1 = _local1 + (_local2 + "{");
_local1 = _local1 + (("x:" + _local6.attributes.x) + ", ");
_local1 = _local1 + (("y:" + _local6.attributes.y) + ", ");
_local1 = _local1 + (("t:\"" + _local6.attributes.t) + "\"");
if (_local6.attributes.t == "m") {
_local1 = _local1 + (", c:" + _local6.attributes.c);
}
_local1 = _local1 + "}";
if (_local11 < (_local3 - 1)) {
_local1 = _local1 + ",";
}
_local1 = _local1 + newline;
_local11++;
}
_local2 = "\t\t";
_local1 = _local1 + (((_local2 + "]") + newline) + newline);
_local1 = _local1 + ((_local2 + "dp = [") + newline);
var _local16 = findChildNode(_local19, "dps");
_local3 = _local16.childNodes.length;
_local2 = "\t\t\t";
_local11 = 0;
while (_local11 < _local3) {
var _local8 = _local16.childNodes[_local11];
_local1 = _local1 + (_local2 + "{");
_local1 = _local1 + (("x:" + _local8.attributes.x) + ", ");
_local1 = _local1 + (("y:" + _local8.attributes.y) + ", ");
_local1 = _local1 + (("t:\"" + _local8.attributes.t) + "\", ");
_local1 = _local1 + (("m:\"" + _local8.attributes.m) + "\"");
_local1 = _local1 + "}";
if (_local11 < (_local3 - 1)) {
_local1 = _local1 + ",";
}
_local1 = _local1 + newline;
_local11++;
}
_local2 = "\t\t";
_local1 = _local1 + (((_local2 + "]") + newline) + newline);
return(_local1);
}
}
Symbol 3503 MovieClip [__Packages.rr.Sounds] Frame 0
class rr.Sounds extends rr.BaseClip
{
var createEmptyMovieClip, getNextHighestDepth;
function Sounds () {
super();
_global.sounds = this;
}
function init() {
clear();
}
function playSound(linkId, vol) {
if (vol == undefined) {
vol = 100;
}
if (!linkId) {
return(undefined);
}
if (!this[linkId]) {
this[linkId] = new Sound(_global.stage);
this[linkId].attachSound(linkId);
}
this[linkId].setVolume(vol);
this[linkId].start();
}
function playNewSound(linkId, vol) {
if (!linkId) {
return(undefined);
}
if (vol == undefined) {
vol = 100;
}
var _local3 = rr.utils.StringUtils.getUniqueName();
this[_local3] = new Sound(_global.stage);
this[_local3].attachSound(linkId);
this[_local3].onSoundComplete = rr.utils.Delegate.create(this, deleteSound, this[_local3]);
this[_local3].setVolume(vol);
this[_local3].start();
}
function deleteSound(s) {
trace("deleteSound: " + s);
trace("deleteSound: " + s);
}
function stopSound(linkId) {
if (!linkId) {
return(undefined);
}
this[linkId].stop();
}
function addLoopSound(obj) {
if (!this["loop_" + obj.uid]) {
this["loop_" + obj.uid] = new Object();
this["loop_" + obj.uid].soundmov = createEmptyMovieClip("soundmov" + obj.uid, getNextHighestDepth());
this["loop_" + obj.uid].sound = new Sound(this["loop_" + obj.uid].soundmov);
this["loop_" + obj.uid].sound.attachSound(obj.loopsoundid);
this["loop_" + obj.uid].isplaying = false;
this["loop_" + obj.uid].vol = 0;
this["loop_" + obj.uid].fade = "";
obj.addEventListener("onRemoveLoopSound", this);
}
return(this["loop_" + obj.uid]);
}
function playLoopSound(obj) {
if (_global.timer.stopped) {
return(undefined);
}
var _local3 = this["loop_" + obj.uid];
if (!_local3.isplaying) {
_local3.isplaying = true;
_local3.sound.start(0, 100000);
}
_local3.fade = "in";
fade(_local3);
}
function stopLoopSound(obj, immediate) {
var _local2 = this["loop_" + obj.uid];
if (immediate) {
_local2.isplaying = false;
_local2.vol = 0;
_local2.fade = "";
_local2.sound.stop();
} else {
_local2.fade = "out";
fade(_local2);
}
}
function fade(s) {
if (_global.timer.stopped) {
return(undefined);
}
var _local4 = 2;
if (s.fade == "") {
return(undefined);
}
if (s.fade == "in") {
if (s.vol >= 100) {
s.vol = 100;
s.fade = "";
return(undefined);
}
s.vol = s.vol + _local4;
}
if (s.fade == "out") {
if (s.vol <= 0) {
s.vol = 0;
s.isplaying = false;
s.fade = "";
s.sound.stop();
return(undefined);
}
s.vol = s.vol - _local4;
}
s.sound.setVolume(s.vol);
rr.utils.Delegate.callDelayed(this, fade, 40, s);
}
function onRemoveLoopSound(evtObj) {
var _local2 = evtObj.target;
_local2.removeEventListener("onRemoveLoopSound", this);
this["loop_" + _local2.uid].sound.stop();
this["loop_" + _local2.uid].soundmov.removeMovieClip();
delete this["loop_" + _local2.uid];
}
function stopAll() {
trace("sounds stopAll: ");
for (var _local3 in this) {
var _local2 = this[_local3];
if (_local2 instanceof Sound) {
this[_local3].stop();
} else {
_local2.isplaying = false;
_local2.vol = 0;
_local2.fade = "";
_local2.sound.stop();
}
}
}
function clear() {
for (var _local2 in this) {
if (this[_local2] instanceof Sound) {
trace("clear sound: ");
delete this[_local2];
}
}
for (var _local2 in this) {
if (this[_local2] instanceof Object) {
trace("clear sound Object: ");
delete this[_local2];
}
}
}
}
Symbol 3504 MovieClip [__Packages.rr.Stage] Frame 0
class rr.Stage extends rr.BaseClip
{
var enemyareas, enemies, enemies_dyn, ammo, afs, rbs, width, height, bg_mc, createEmptyMovieClip, bg_bmp, fg_mc, fg_bmp, crane;
function Stage () {
super();
_global.stage = this;
}
function init() {
clear();
enemyareas = new Array();
enemies = new Array();
enemies_dyn = new Array();
ammo = new Array();
afs = new Array();
rbs = new Array();
width = 640;
height = 480;
bg_mc = createEmptyMovieClip("bg_mc", 10);
bg_bmp = new flash.display.BitmapData(width, height, false, 0);
bg_mc.attachBitmap(bg_bmp, bg_mc.getNextHighestDepth());
if (_global.gameconf.map.foreground) {
fg_mc = createEmptyMovieClip("fg_mc", rr.conf.ConfBaseDepths.getDepth("StageForeground"));
fg_bmp = new flash.display.BitmapData(width, height, true, 0);
fg_mc.attachBitmap(fg_bmp, fg_mc.getNextHighestDepth());
}
_global.timer.addEventListener("onTimerTick", this);
}
function createObjects() {
new rr.train.Train();
if (_global.gametype == "railrage") {
_global.game.play();
return(undefined);
}
var _local8 = _global.gameconf.ea;
var _local4 = _local8.length;
var _local3 = 0;
while (_local3 < _local4) {
_local8[_local3].id = _local3;
this["ea_" + _local3] = new rr.enemy.EnemyArea(_local8[_local3]);
enemyareas.push(this["ea_" + _local3]);
_local3++;
}
var _local6 = _global.gameconf.af;
_local4 = _local6.length;
_local3 = 0;
while (_local3 < _local4) {
_local6[_local3].linkid = "AirField";
rr.enemy.EnemyUtils.createEnemy(_local6[_local3]);
_local3++;
}
var _local5 = _global.gameconf.bk;
_local4 = _local5.length;
_local3 = 0;
while (_local3 < _local4) {
_local5[_local3].linkid = "Bunker";
rr.enemy.EnemyUtils.createEnemy(_local5[_local3]);
_local3++;
}
var _local7 = _global.gameconf.rb;
_local4 = _local7.length;
_local3 = 0;
while (_local3 < _local4) {
_local7[_local3].linkid = "RocketBase";
rr.enemy.EnemyUtils.createEnemy(_local7[_local3]);
_local3++;
}
if (enemyareas.length > 0) {
enemyareas[0].init();
} else {
_global.game.play();
}
}
function onAreaInit(a) {
if (a.id >= (enemyareas.length - 1)) {
trace("lastarea: ");
_global.game.play();
} else {
var _local3 = Math.round((50 * a.id) / (enemyareas.length - 1));
if (_local3 > 40) {
_global.control.setLevelLoad(_local3, "get ready");
} else {
_global.control.setLevelLoad(_local3, "creating enemies");
}
rr.utils.Delegate.callDelayed(enemyareas[a.id + 1], enemyareas[a.id + 1].init, 10);
}
}
function onTimerTick() {
_global.camera.update();
_global.train.update();
if (_global.aim.mov._y > height) {
_global.aim.hide();
}
l = ammo.length;
var _local3 = 0;
while (_local3 < l) {
this["ammo_" + ammo[_local3]].update();
_local3++;
}
if (crane) {
crane.update();
}
if (_global.gametype == "railrage") {
updateAfterEvent();
return(undefined);
}
var l = enemies_dyn.length;
_local3 = 0;
while (_local3 < l) {
this["enemy_" + enemies_dyn[_local3]].update();
_local3++;
}
l = afs.length;
_local3 = 0;
while (_local3 < l) {
this["enemy_" + afs[_local3]].update();
_local3++;
}
l = rbs.length;
_local3 = 0;
while (_local3 < l) {
this["enemy_" + rbs[_local3]].update();
_local3++;
}
updateAfterEvent();
}
function removeEnemy(obj) {
var _local6 = obj.linkId;
var _local7 = obj.mode;
var _local5;
if (obj.cellId) {
_global.map["cell_" + obj.cellId].removeEnemy(obj);
} else {
_local5 = enemies_dyn.length;
var _local3 = 0;
while (_local3 < _local5) {
if (enemies_dyn[_local3] == obj.uid) {
enemies_dyn.splice(_local3, 1);
break;
}
_local3++;
}
}
_local5 = enemies.length;
var _local3 = 0;
while (_local3 < _local5) {
if (enemies[_local3] == obj.uid) {
enemies.splice(_local3, 1);
break;
}
_local3++;
}
delete this["enemy_" + obj.uid];
}
function removeAmmo(obj) {
var _local3 = ammo.length;
var _local2 = 0;
while (_local2 < _local3) {
if (this["ammo_" + ammo[_local2]] == obj) {
ammo.splice(_local2, 1);
break;
}
_local2++;
}
delete this["ammo_" + obj.uid];
}
function sendCrane() {
if (crane) {
return(undefined);
}
crane = new rr.train.AirCrane();
}
function deleteCrane() {
var _local2 = delete crane;
}
function clear() {
bg_bmp.dispose();
fg_bmp.dispose();
delete bg_bmp;
delete fg_bmp;
for (var _local2 in this) {
if (this[_local2] instanceof MovieClip) {
trace("clear stage Clip: ");
this[_local2].removeMovieClip();
}
}
for (var _local2 in this) {
if (this[_local2] instanceof Object) {
trace("clear stage Object: ");
delete this[_local2];
}
}
}
}
Symbol 3505 MovieClip [__Packages.rr.train.Train] Frame 0
class rr.train.Train extends rr.BaseClass
{
var segments, emps, isCrashed, crashdir, crashRotDir, crashRotSpeed, load, fuelcap, lastsegment, buildload;
function Train () {
super();
_global.train = this;
init();
}
function init() {
segments = new Array();
emps = new Array();
rr.train.TrainUtils.createLoc({type:_global.trainbuild.loc.linkId, bobj:_global.trainbuild.loc});
var _local14 = _global.trainbuild.wagons.length;
var _local7 = 0;
while (_local7 < _local14) {
var _local4 = _global.trainbuild.wagons[_local7];
var _local6 = new Array();
if (_local4.linkId == "HugeCannon") {
_local6.push({type:"HugeCannon", uid:_local4.uid, flipped:_local4.flipped, position:1, bobj:_local4});
}
var _local5 = 0;
while (_local5 < _local4.weapons.length) {
var _local3 = _local4.weapons[_local5];
_local6.push({type:_local3.linkId, uid:_local3.uid, flipped:_local3.flipped, position:_local3.spaceIndex, bobj:_local3});
_local5++;
}
rr.train.TrainUtils.createWagon({type:_local4.linkId, uid:_local4.uid, weapons:_local6, bobj:_local4});
_local7++;
}
initSegments();
_global.control.setDamageClips();
}
function update() {
var _local3 = segments.length;
var _local2 = 0;
while (_local2 < _local3) {
segments[_local2].update();
_local2++;
}
}
function initSegments() {
var _local4 = 0;
var _local5 = segments.length;
var _local3 = 1;
while (_local3 < _local5) {
_local4 = _local4 + (segments[_local3].length - 1);
_local3++;
}
_global.loc.d = _local4 + (_global.loc.length / 2);
_global.loc.reAffirm();
}
function crash(dir, rotfact) {
if (isCrashed) {
return(undefined);
}
crashdir = ((_global.loc.speed >= 0) ? 1 : -1);
_global.sounds.playSound("traincrash.wav");
if ((!dir) || (dir == null)) {
dir = ((Math.random() > 0.5) ? 1 : -1);
}
if ((!rotfact) || (rotfact == null)) {
rotfact = 2;
}
crashRotDir = dir;
crashRotSpeed = Math.random() * rotfact;
var _local3 = _global.loc;
_local3.isCrashed = true;
rr.utils.Delegate.callDelayed(_local3, _local3.die, 3000 + (Math.random() * 3000));
while (_local3.next) {
_local3 = _local3.next;
_local3.isCrashed = true;
rr.utils.Delegate.callDelayed(_local3, _local3.die, 2000 + (Math.random() * 2000));
}
_global.control.fullStop();
isCrashed = true;
}
function onConnectionChanged() {
var _local4 = _global.loc;
load = _local4.weight;
fuelcap = _local4.fueldef;
lastsegment = _local4;
while (_local4.next) {
_local4 = _local4.next;
if (_local4.weapons) {
var _local7 = _local4.weapons.length;
var _local3 = 0;
while (_local3 < _local7) {
var _local5 = _local4.weapons[_local3];
load = load + _local5.weight;
if (_local5 instanceof rr.train.FuelLoad) {
fuelcap = fuelcap + _local5.fueldef;
}
_local3++;
}
}
load = load + _local4.weight;
lastsegment = _local4;
}
_global.control.setDamageClips();
trace("lastsegment: " + lastsegment.linkId);
trace("trainload: " + load);
buildload = 0;
var _local8 = segments.length;
var _local6 = 0;
while (_local6 < _local8) {
_local4 = segments[_local6];
if (_local4 != _global.loc) {
buildload = buildload + _local4.weight;
if (_local4.weapons) {
var _local7 = _local4.weapons.length;
var _local3 = 0;
while (_local3 < _local7) {
var _local5 = _local4.weapons[_local3];
buildload = buildload + _local5.weight;
_local3++;
}
}
}
_local6++;
}
_global.control.setLoad(_global.loc.maxload - buildload);
}
function getTargetSegment() {
var _local3 = new Array();
var _local2 = _global.loc;
_local3.push(_local2);
while (_local2.next) {
_local2 = _local2.next;
_local3.push(_local2);
}
var _local4 = Math.round(Math.random() * (_local3.length - 1));
return(_local3[_local4]);
}
function removeSegment(obj) {
var _local4 = segments.length;
var _local2 = 0;
while (_local2 < _local4) {
if (segments[_local2] == obj) {
trace("remove segment: " + segments[_local2].linkId);
var _local3 = delete segments[_local2];
segments.splice(_local2, 1);
break;
}
_local2++;
}
onConnectionChanged();
}
function isInRange(px, py, range) {
var _local2 = _global.loc;
if (rr.utils.MathUtils.getDistance(px, py, _local2.x, _local2.y) < (range + _local2.dfeel)) {
return(true);
}
while (_local2.next) {
_local2 = _local2.next;
if (rr.utils.MathUtils.getDistance(px, py, _local2.x, _local2.y) < (range + _local2.dfeel)) {
return(true);
}
}
return(false);
}
function checkObjectHit(obj) {
var _local5 = segments.length;
var _local3 = 0;
while (_local3 <= _local5) {
var _local2 = segments[_local3];
if (rr.utils.MathUtils.getDistance(obj.x, obj.y, _local2.x, _local2.y) <= ((obj.dfeel + _local2.dfeel) - 10)) {
if (rr.utils.HitTest.isShapeHit(obj.mov, _local2.mov)) {
return(_local2);
}
}
_local3++;
}
return(false);
}
function setBonus(type) {
if (((type == "Electric") || (type == "Oil")) || (type == "Coal")) {
var _local2 = _global.loc;
_local2.fuel = _local2.fueldef;
while (_local2.next) {
_local2 = _local2.next;
if (_local2.weapons) {
var _local3 = 0;
while (_local3 <= _local2.weapons.length) {
var _local4 = _local2.weapons[_local3];
if (_local4 instanceof rr.train.FuelLoad) {
_local4.fuel = _local4.fueldef;
_local4.addToLocFuel();
}
_local3++;
}
}
}
}
if (type == "Repair") {
var _local2 = _global.loc;
_local2.addDamage(-_local2.damage);
while (_local2.next) {
_local2 = _local2.next;
_local2.addDamage(-_local2.damage);
if (_local2.weapons) {
var _local3 = 0;
while (_local3 <= _local2.weapons.length) {
var _local4 = _local2.weapons[_local3];
_local4.addDamage(-_local4.damage);
_local3++;
}
}
}
}
}
function addPickup(type) {
var _local4 = _global.trainbuild.addPickupWagon(type);
rr.train.TrainUtils.createWagon({type:type, uid:_local4.uid, bobj:_local4});
}
}
Symbol 3506 MovieClip [__Packages.rr.control.Damage] Frame 0
class rr.control.Damage extends rr.BaseClip
{
var clips, unitClips, totalLength, margin, createEmptyMovieClip, getNextHighestDepth;
function Damage () {
super();
init();
}
function init() {
clips = new Array();
unitClips = new Array();
}
function setClips(addAll) {
totalLength = 0;
margin = 0;
removeAll();
var _local7 = new Array();
var _local3 = _global.loc;
_local7.push(_local3.uid);
addSegmentClip(_local3);
while (_local3.next) {
_local3 = _local3.next;
_local7.push(_local3.uid);
if (_local3.bobj) {
addSegmentClip(_local3);
}
}
if (addAll) {
var _local9 = _global.train.segments.length;
var _local6 = 0;
while (_local6 < _local9) {
_local3 = _global.train.segments[_local6];
var _local5 = false;
var _local8 = _local7.length;
var _local4 = 0;
while (_local4 < _local8) {
if (_local7[_local4] == _local3.uid) {
_local5 = true;
break;
}
_local4++;
}
if (!_local5) {
if (!_local3.prev) {
addSegmentClip(_local3);
while (_local3.next) {
_local3 = _local3.next;
addSegmentClip(_local3);
}
}
}
_local6++;
}
}
resetClips();
}
function addSegmentClip(s) {
var _local7 = createEmptyMovieClip(rr.utils.StringUtils.getUniqueName(), getNextHighestDepth() + 100);
var _local10 = _local7.attachMovie(rr.conf.Config.getObjectValue(s.linkId, "damageclip"), "segment", _local7.getNextHighestDepth(), {parent:s});
if (s.isdead) {
_local10._visible = false;
}
totalLength = totalLength + _local10._width;
if (s != _global.loc) {
totalLength = totalLength + margin;
if (!s.prev) {
totalLength = totalLength + 5;
}
}
clips.push(_local10);
unitClips.push(_local7);
if (s.segmentType == "wagon") {
var _local4 = 0;
while (_local4 < s.weapons.length) {
var _local3 = s.weapons[_local4];
var _local5 = _local7.attachMovie(rr.conf.Config.getObjectValue(_local3.linkId, "damageclip"), rr.utils.StringUtils.getUniqueName(), _local7.getNextHighestDepth(), {parent:_local3, wagonclip:_local10});
if (_local3.isdead) {
_local5._visible = false;
}
clips.push(_local5);
_local4++;
}
}
}
function resetClips() {
var _local4 = 5 + totalLength;
var _local7 = clips.length;
var _local2 = 0;
while (_local2 < _local7) {
var _local5 = clips[_local2];
if ((_local5.parent instanceof rr.train.weapons.TrainWeapon) || (_local5.parent instanceof rr.train.TrainLoad)) {
if (_local5.parent.linkId == "SmallCannon") {
_local5.swapDepths(_local5._parent.getNextHighestDepth());
}
var _local3 = _local5.wagonclip;
var _local6 = _local3._width / _local3.parent.bobj.spaces;
_local5._x = ((_local3._x + _local3._width) - _local5._width) - (_local5.parent.position * _local6);
if (_local5.parent.linkId == "HugeCannon") {
_local5._x = _local5._x + (_local5.parent.flipped ? 0 : 14);
}
if (_local5.parent.linkId == "LargeCannon") {
_local5._x = _local5._x + (_local5.parent.flipped ? 0 : 7);
}
if (_local5.parent.linkId == "MediumCannon") {
_local5._x = _local5._x + 2;
}
if (_local5.parent.linkId == "SmallFastCannon") {
_local5._x = _local5._x + 4;
}
if (_local5.parent.flipped) {
_local5.gotoAndStop("true");
}
_local5._y = (_local3._y - _local5._height) + 3;
if (_local5.parent.linkId == "RailRockets") {
_local5._y = _local5._y + 3;
}
} else {
_local5._x = _local4 - _local5._width;
if (!_local5.parent.prev) {
_local5._x = _local5._x - 5;
_local4 = _local4 - 5;
} else if (_local5.parent.prev.linkId == "TankTrailer") {
_local5._x = _local5._x + 4;
_local4 = _local4 + 4;
}
_local4 = _local4 - _local5._width;
_local4 = _local4 - margin;
}
_local2++;
}
_local7 = unitClips.length;
_local2 = 0;
while (_local2 < _local7) {
var _local5 = unitClips[_local2];
if (_local5._x < (unitClips[_local2 + 1]._x + unitClips[_local2 + 1]._width)) {
unitClips[_local2 + 1].swapDepths(_local5.getDepth() - 2);
}
_local2++;
}
}
function removeAll() {
var _local3 = unitClips.length;
var _local2 = 0;
while (_local2 < _local3) {
unitClips[_local2].removeMovieClip();
_local2++;
}
clips = new Array();
unitClips = new Array();
}
}
Symbol 3507 MovieClip [__Packages.rr.control.FuelMeter] Frame 0
class rr.control.FuelMeter extends rr.BaseClip
{
var my_fmt, perc, perc_txt, trainperc, warning1played, warning2played, mask_mc;
function FuelMeter () {
super();
init();
}
function init() {
my_fmt = new TextFormat();
my_fmt.bold = true;
my_fmt.font = "myAlternateGothic2 BT";
my_fmt.size = 11;
my_fmt.align = "right";
perc = 100;
perc_txt.text = "100%";
perc_txt.setTextFormat(my_fmt);
_global.loc.addEventListener("onFuelUpdate", this);
}
function onFuelUpdate() {
if (_global.loc.fuel > 0) {
perc = Math.round((100 * _global.loc.fuel) / _global.loc.fueldef);
trainperc = Math.round((100 * _global.loc.fuel) / _global.train.fuelcap);
if (perc > 100) {
perc = 100;
}
} else {
perc = 0;
}
if (perc > 40) {
warning1played = false;
warning2played = false;
}
if (perc < 30) {
if (!warning1played) {
_global.sounds.playSound("Warning Fuel Low.wav");
warning1played = true;
}
}
if (perc < 10) {
if (!warning2played) {
_global.sounds.playSound("Warning Fuel Critical.wav");
warning2played = true;
}
}
mask_mc._xscale = trainperc;
perc_txt.text = trainperc + "%";
perc_txt.setTextFormat(my_fmt);
}
function setTotalCapacity() {
if (_global.loc.fuel > 0) {
trainperc = Math.round((100 * _global.loc.fuel) / _global.train.fuelcap);
if (trainperc > 100) {
trainperc = 100;
}
} else {
trainperc = 0;
}
mask_mc._xscale = trainperc;
perc_txt.text = trainperc + "%";
perc_txt.setTextFormat(my_fmt);
}
}
Symbol 3508 MovieClip [__Packages.rr.control.CompoundMenu] Frame 0
class rr.control.CompoundMenu extends rr.BaseClip
{
var totalrepaircost_txt, fillcost_txt, repair_btn, repairall_btn, fuel20_btn, fuel40_btn, fuel60_btn, fuel80_btn, fuel100_btn, cancel_btn, compound, _visible, station_txt, damage_mc, fuel_mc, totalrepaircost, selectedClip, repaircost, repaircost_txt;
function CompoundMenu () {
super();
init();
}
function init() {
hide();
totalrepaircost_txt.autoSize = true;
fillcost_txt.autoSize = true;
repair_btn._visible = false;
repair_btn.onPress = rr.utils.Delegate.create(this, repair);
repairall_btn.onPress = rr.utils.Delegate.create(this, repairAll);
fuel20_btn.onPress = rr.utils.Delegate.create(this, addFuel, fuel20_btn);
fuel40_btn.onPress = rr.utils.Delegate.create(this, addFuel, fuel40_btn);
fuel60_btn.onPress = rr.utils.Delegate.create(this, addFuel, fuel60_btn);
fuel80_btn.onPress = rr.utils.Delegate.create(this, addFuel, fuel80_btn);
fuel100_btn.onPress = rr.utils.Delegate.create(this, addFuel, fuel100_btn);
cancel_btn.onPress = rr.utils.Delegate.create(this, hide);
}
function show(comp) {
trace("show: compound");
_global.sounds.stopAll();
_global.timer.stop();
_global.aim.hide(this);
compound = comp;
_global.loc.addEventListener("onLocAccel", this);
setMenuContent();
_visible = true;
}
function hide() {
deselect();
_global.loc.events.dispatchEvent({type:"onFuelUpdate"});
_global.aim.show(this);
_global.timer.start();
_visible = false;
}
function onLocAccel() {
hide();
_global.loc.removeEventListener("onLocAccel", this);
}
function setMenuContent() {
deselect();
station_txt.text = compound.id;
damage_mc.setClips(false);
fuel_mc.setTotalCapacity();
setRepairMenu();
setFillMenu();
}
function setRepairMenu() {
totalrepaircost = 0;
var _local8 = damage_mc.unitClips.length;
var _local6 = 0;
while (_local6 < _local8) {
var _local5 = damage_mc.unitClips[_local6];
_local5.onPress = rr.utils.Delegate.create(this, selectUnit, _local5);
var _local4 = _local5.segment.parent;
totalrepaircost = totalrepaircost + (((_local4.damage / _local4.killlevel) * _local4.price) * 0.2);
var _local7 = _local4.weapons.length;
var _local3 = 0;
while (_local3 < _local7) {
totalrepaircost = totalrepaircost + (((_local4.weapons[_local3].damage / _local4.weapons[_local3].killlevel) * _local4.weapons[_local3].price) * 0.2);
_local3++;
}
_local6++;
}
totalrepaircost = Math.round(totalrepaircost);
totalrepaircost_txt.text = totalrepaircost.toString();
repairall_btn.enabled = true;
if (totalrepaircost > _global.player.cash) {
repairall_btn.enabled = false;
totalrepaircost_txt.text = totalrepaircost_txt.text + " (not enough cash)";
}
}
function setFillMenu() {
var _local5 = (_global.train.fuelcap - _global.loc.fuel) * _global.loc.fuelprice;
fillcost_txt.text = Math.round(_local5).toString();
var _local4 = 20;
while (_local4 <= 100) {
var _local3 = this[("fuel" + _local4) + "_btn"];
_local3.perc = _local4;
_local3._alpha = 100;
_local3.enabled = true;
_local3.fuelcost = (_local5 * _local4) / 100;
if ((_local3.fuelcost > _global.player.cash) || (_local3.perc <= fuel_mc.trainperc)) {
_local3.enabled = false;
_local3._alpha = 40;
}
_local4 = _local4 + 20;
}
}
function selectUnit(sel) {
selectedClip = sel;
var _local5 = selectedClip.segment.parent;
repaircost = ((_local5.damage / _local5.killlevel) * _local5.price) * 0.2;
var _local6 = _local5.weapons.length;
var _local4 = 0;
while (_local4 < _local6) {
repaircost = repaircost + (((_local5.weapons[_local4].damage / _local5.weapons[_local4].killlevel) * _local5.weapons[_local4].price) * 0.2);
_local4++;
}
repaircost = Math.round(repaircost);
repaircost_txt.text = "repaircost: " + repaircost.toString();
repair_btn.enabled = true;
if (repaircost > _global.player.cash) {
repair_btn.enabled = false;
repaircost_txt.text = repaircost_txt.text + " (not enough cash)";
}
repair_btn._x = ((selectedClip.segment._x + (selectedClip.segment._width / 2)) - (repair_btn._width / 2)) + damage_mc._x;
repaircost_txt._x = repair_btn._x + 60;
repair_btn._visible = true;
repaircost_txt._visible = true;
_local6 = damage_mc.unitClips.length;
_local4 = 0;
while (_local4 < _local6) {
var _local3 = damage_mc.unitClips[_local4];
if (_local3 == selectedClip) {
_local3._alpha = 100;
} else {
_local3._alpha = 50;
}
_local4++;
}
}
function deselect() {
selectedClip = undefined;
var _local3 = damage_mc.unitClips.length;
var _local2 = 0;
while (_local2 < _local3) {
damage_mc.unitClips[_local2]._alpha = 100;
_local2++;
}
repair_btn._visible = false;
repaircost_txt._visible = false;
}
function repair() {
var _local4 = selectedClip.segment.parent;
_local4.addDamage(-_local4.damage);
var _local5 = _local4.weapons.length;
var _local3 = 0;
while (_local3 < _local5) {
_local4.weapons[_local3].addDamage(-_local4.weapons[_local3].damage);
_local3++;
}
_global.player.addCash(-repaircost);
setMenuContent();
}
function repairAll() {
var _local4 = damage_mc.clips.length;
var _local3 = 0;
while (_local3 < _local4) {
damage_mc.clips[_local3].parent.addDamage(-damage_mc.clips[_local3].parent.damage);
_local3++;
}
_global.player.addCash(-totalrepaircost);
setMenuContent();
}
function addFuel(but) {
_global.player.addCash(-but.fuelcost);
_global.loc.fuel = (_global.loc.fueldef * but.perc) / 100;
var _local5 = _global.loc;
while (_local5.next) {
_local5 = _local5.next;
if (_local5.weapons) {
var _local4 = 0;
while (_local4 <= _local5.weapons.length) {
var _local3 = _local5.weapons[_local4];
if (_local3 instanceof rr.train.FuelLoad) {
_local3.fuel = (_local3.fueldef * but.perc) / 100;
_local3.addToLocFuel();
}
_local4++;
}
}
}
fuel_mc.setTotalCapacity();
setMenuContent();
}
}
Symbol 3509 MovieClip [__Packages.rr.control.DisabledMenu] Frame 0
class rr.control.DisabledMenu extends rr.BaseClip
{
var message_txt, _visible, continue_btn;
function DisabledMenu () {
super();
init();
}
function init() {
message_txt.autoSize = true;
_visible = false;
continue_btn.onPress = rr.utils.Delegate.create(this, hide);
}
function show(m) {
trace("m: " + m);
_global.sounds.stopAll();
_global.timer.stop();
_global.aim.hide(this);
if (m == "nocap") {
message_txt.text = "YOU DON'T HAVE ANY FUEL TO CONTINUE\r AND NOT ENOUGH CAPACITIY TO ADD A FUELWAGON";
}
if (m == "nocash") {
message_txt.text = "YOU DON'T HAVE ANY FUEL TO CONTINUE\r AND NOT ENOUGH CASH TO ADD A FUELWAGON";
}
_visible = true;
}
function hide() {
_visible = false;
_global.game.endLevel(false);
}
}
Symbol 3510 MovieClip [__Packages.rr.control.LevelResult] Frame 0
class rr.control.LevelResult extends rr.BaseClip
{
var pages, stats_mc, highscore_btn, failed_mc, continue_btn, replay_btn, _visible, lvlsuccess, HighScore_mc, items_mc, statsoverall_mc, statsrailrage_mc, page;
function LevelResult () {
super();
_global.levelresult = this;
init();
}
function init() {
pages = [0, 2, 1];
stats_mc.save_btn.onPress = rr.utils.Delegate.create(this, doSave);
highscore_btn.onPress = rr.utils.Delegate.create(this, toggleHighScore);
failed_mc.main_btn.onPress = rr.utils.Delegate.create(this, goMain);
failed_mc.replay_btn.onPress = rr.utils.Delegate.create(this, replay);
failed_mc.highscore_btn.onPress = rr.utils.Delegate.create(this, toggleHighScore);
continue_btn.onPress = rr.utils.Delegate.create(this, nextPage);
replay_btn.onPress = rr.utils.Delegate.create(this, replay);
_visible = false;
}
function showResult(success) {
lvlsuccess = success;
HighScore_mc._visible = false;
HighScore_mc.gotoAndStop(1);
continue_btn._visible = false;
highscore_btn._visible = false;
replay_btn._visible = false;
failed_mc._visible = false;
failed_mc.highscore_btn._visible = false;
items_mc._visible = false;
stats_mc._visible = false;
statsoverall_mc._visible = false;
statsrailrage_mc._visible = false;
stats_mc.save_btn._visible = false;
if ((_global.gametype == "new mission") || (_global.gametype == "loaded mission")) {
if (_global.player.points > 0) {
failed_mc.highscore_btn._visible = true;
}
}
if (_global.gametype != "custom level") {
HighScore_mc.setHighScore();
}
if (success) {
page = 0;
replay_btn._visible = true;
if (_global.gametype == "railrage") {
statsrailrage_mc._visible = true;
continue_btn._visible = true;
} else {
if (_global.gametype == "custom level") {
continue_btn._visible = true;
}
stats_mc._visible = true;
}
if ((_global.gametype == "new mission") || (_global.gametype == "loaded mission")) {
if (_global.superlevel < 3) {
var _local3 = SharedObject.getLocal("superlevel");
_local3.data.levelid = _global.game.levelId + 1;
_local3.flush();
_global.superlevel = _local3.data.levelid;
}
if (_global.game.levelId < 2) {
highscore_btn._visible = true;
stats_mc.save_btn._visible = true;
} else {
continue_btn._visible = true;
}
}
setStats();
} else {
if ((_global.gametype == "new mission") || (_global.gametype == "loaded mission")) {
stats_mc._visible = true;
stats_mc.save_btn._visible = false;
setStats();
}
failed_mc._visible = true;
}
_visible = true;
}
function setStats() {
var _local6 = rr.conf.Config.getGameConf(_global.game.levelId);
var _local4 = rr.conf.Config.getGameConf(_global.game.levelId + 1);
var _local5 = (_local4 ? (_local4.startcash) : 0);
var _local3;
if (lvlsuccess) {
_local3 = _local6.levelpoints + Math.round((10000 * (_global.landshot + (_global.airshot * 3))) / (_global.leveltime / 1000));
} else {
_local3 = Math.round((1000 * (_global.landshot + (_global.airshot * 3))) / (_global.leveltime / 1000));
}
stats_mc.time_txt.text = rr.utils.StringUtils.getTimeString(_global.leveltime);
stats_mc.land_txt.text = _global.landshot.toString();
stats_mc.air_txt.text = _global.airshot.toString();
if (_global.gametype == "custom level") {
stats_mc.bonus_txt.text = "N.A.";
stats_mc.totalpoints_txt.text = "N.A.";
stats_mc.levelcash_txt.text = _global.player.bonus.toString();
} else {
stats_mc.bonus_txt.text = _local3.toString();
stats_mc.totalpoints_txt.text = _global.player.points.toString();
stats_mc.levelcash_txt.text = (lvlsuccess ? ((_global.player.bonus + _local5).toString()) : (_global.player.bonus.toString()));
}
stats_mc.cashtotal_txt.text = _global.player.cash.toString();
statsoverall_mc.time_txt.text = rr.utils.StringUtils.getTimeString(_global.player.time);
statsoverall_mc.land_txt.text = _global.player.landshot.toString();
statsoverall_mc.air_txt.text = _global.player.airshot.toString();
statsoverall_mc.totalpoints_txt.text = _global.player.points.toString();
statsoverall_mc.cashtotal_txt.text = _global.player.cash.toString();
statsrailrage_mc.time_txt.text = rr.utils.StringUtils.getTimeString(_global.player.time);
}
function doSave() {
replay_btn._visible = false;
var _local3 = SharedObject.getLocal("savedmission");
_global.savedmission = {levelid:_global.game.levelId + 1, cash:_global.player.cash, points:_global.player.points, landshot:_global.player.landshot, airshot:_global.player.airshot, time:_global.player.time};
_local3.data.savedmission = _global.savedmission;
var _local4 = _local3.flush();
if (_local4 == true) {
stats_mc.saveresult_mc.gotoAndPlay("success");
nextPage();
} else {
stats_mc.saveresult_mc.gotoAndPlay("failed");
}
}
function nextPage() {
HighScore_mc._visible = false;
HighScore_mc.gotoAndStop(1);
if ((_global.gametype == "new mission") || (_global.gametype == "loaded mission")) {
if ((page == 0) && (_global.game.levelId == 2)) {
stats_mc._visible = false;
highscore_btn._visible = true;
statsoverall_mc._visible = true;
page = -1;
return(undefined);
}
if (page == -1) {
page = 0;
}
}
if ((_global.gametype == "railrage") || (_global.gametype == "custom level")) {
_global.root.gotoAndPlay("startmenu");
return(undefined);
}
page++;
if (page > pages[_global.game.levelId]) {
_visible = false;
if (_global.game.levelId == 2) {
_global.root.gotoAndPlay("hangar");
} else {
_global.game.nextLevel();
}
return(undefined);
}
if (page > 0) {
continue_btn._visible = true;
stats_mc._visible = false;
statsoverall_mc._visible = false;
items_mc.gotoAndStop((_global.game.levelId + "-") + page);
items_mc._visible = true;
}
}
function goMain() {
_global.root.gotoAndPlay("startmenu");
}
function replay() {
_visible = false;
_global.game.replayLevel();
}
function toggleHighScore() {
if (!HighScore_mc._visible) {
HighScore_mc.gotoAndPlay(2);
trace("HighScore_mc: " + HighScore_mc);
trace("_level0.playerpoints: " + _level0.playerpoints);
HighScore_mc._visible = true;
highscore_btn._visible = false;
failed_mc.highscore_btn._visible = false;
}
}
}
Symbol 3511 MovieClip [__Packages.rr.control.TrainBuild] Frame 0
class rr.control.TrainBuild extends rr.BaseClip
{
var spacing, displayWidth, _x, xdef, loc, wagons, dropwagons, totalLoad, maxLoad, _parent, dropsadded, ingameadded, selectedWeapon, selectedWagon, events, attachMovie, getNextHighestDepth, _width, dir, shiftTarget, onEnterFrame;
function TrainBuild () {
super();
_global.trainbuild = this;
}
function init() {
clear();
spacing = 15;
displayWidth = 0;
_x = (xdef = -2210);
loc = new Object();
wagons = new Array();
dropwagons = new Array();
totalLoad = 0;
maxLoad = 0;
_global.control.setCash();
setLoadText();
_parent.left_btn.onPress = rr.utils.Delegate.create(this, shiftLeft);
_parent.right_btn.onPress = rr.utils.Delegate.create(this, shiftRight);
_parent.left_btn.onRelease = (_parent.left_btn.onDragOut = (_parent.right_btn.onRelease = (_parent.right_btn.onDragOut = rr.utils.Delegate.create(this, stopShift))));
_parent.left_btn._visible = false;
_parent.right_btn._visible = false;
_parent.selectbox_mc.hide();
dropsadded = false;
}
function setInGame() {
displayWidth = 0;
_x = xdef;
maxLoad = _global.loc.maxload;
totalLoad = _global.train.buildload;
ingameadded = undefined;
selectedWeapon = undefined;
selectedWagon = undefined;
updateBuild();
_parent.selectbox_mc.hide();
events.dispatchEvent({type:"onWeaponSelect"});
events.dispatchEvent({type:"onWagonSelect"});
events.dispatchEvent({type:"onUpdateBuild"});
}
function setLoadText() {
var _local3 = maxLoad - totalLoad;
if ((_local3 < 0) || (maxLoad == undefined)) {
_local3 = 0;
}
_global.control.setLoad(_local3);
}
function onCardSelect(c) {
if (c instanceof rr.control.TabCardLocomotive) {
setLoc(c);
}
if (c instanceof rr.control.TabCardWagon) {
addWagon(c);
}
if (c instanceof rr.control.TabCardWeapon) {
addWeapon(c);
}
}
function setLoc(c) {
_global.buildmenu.checkIndicator("loc");
_global.guide.showGuide(2);
if (loc.linkId) {
_global.player.addCash(rr.conf.Config.getObjectValue(loc.linkId, "price"));
}
loc.linkId = c.linkId;
loc.fueltype = c.fueltype;
loc.mov = attachMovie(loc.linkId + "Side", "loc", 10);
loc.xmargin = rr.conf.Config.getObjectValue(loc.linkId, "buildmarginleft");
loc.ymargin = rr.conf.Config.getObjectValue(loc.linkId, "buildmarginbottom");
_global.buildmenu.play_btn._visible = true;
_global.player.addCash(-c.price);
maxLoad = rr.conf.Config.getObjectValue(c.linkId, "maxload");
if (!dropsadded) {
setDropWagons();
}
updateBuild();
_parent.selectbox_mc.hide();
}
function addWagon(c) {
_global.buildmenu.checkIndicator("wagon");
_global.guide.showGuide(6);
_global.player.addCash(-c.price);
var _local3 = {linkId:c.linkId, uid:rr.utils.StringUtils.getUniqueName(), type:"wagon", weight:c.weight, load:0, spaces:c.spaces, freespaces:c.spaces};
_local3.mov = attachMovie(_local3.linkId + "Side", _local3.uid, getNextHighestDepth());
_local3.mov.onPress = rr.utils.Delegate.create(this, selectWagon, _local3);
_local3.xmargin = rr.conf.Config.getObjectValue(_local3.linkId, "buildmarginleft");
_local3.ymargin = rr.conf.Config.getObjectValue(_local3.linkId, "buildmarginbottom");
_local3.spacearray = new Array(c.spaces);
var _local4 = 0;
while (_local4 < _local3.spacearray.length) {
_local3.spacearray[_local4] = "free";
_local4++;
}
if (c.linkId == "HugeCannon") {
_local3.spacearray[1] = "taken";
_local3.spacearray[2] = "taken";
}
_local3.weapons = new Array();
wagons.push(_local3);
totalLoad = totalLoad + _local3.weight;
if (_global.buildmenu.mode == "ingame") {
ingameadded = _local3;
}
updateBuild();
_parent.selectbox_mc.hide();
selectWagon(_local3);
}
function setDropWagons() {
var _local4 = _global.game.dropoffs.length;
var _local3 = 0;
while (_local3 < _local4) {
addDropWagon(_global.game.dropoffs[_local3]);
_local3++;
}
dropsadded = true;
}
function addDropWagon(lid) {
var _local2 = {linkId:lid, uid:rr.utils.StringUtils.getUniqueName(), type:"wagon", weight:rr.conf.Config.getObjectValue(lid, "weight")};
_local2.mov = attachMovie(_local2.linkId + "Side", _local2.uid, getNextHighestDepth(), {parent:_local2});
_local2.xmargin = rr.conf.Config.getObjectValue(_local2.linkId, "buildmarginleft");
_local2.ymargin = rr.conf.Config.getObjectValue(_local2.linkId, "buildmarginbottom");
wagons.push(_local2);
totalLoad = totalLoad + _local2.weight;
_parent.selectbox_mc.hide();
updateBuild();
}
function addPickupWagon(lid) {
var _local2 = {linkId:lid, uid:rr.utils.StringUtils.getUniqueName(), type:"wagon"};
_local2.mov = attachMovie(_local2.linkId + "Side", _local2.uid, getNextHighestDepth(), {parent:_local2});
_local2.xmargin = rr.conf.Config.getObjectValue(_local2.linkId, "buildmarginleft");
_local2.ymargin = rr.conf.Config.getObjectValue(_local2.linkId, "buildmarginbottom");
wagons.push(_local2);
return(_local2);
}
function addWeapon(c) {
if (!selectedWagon) {
return(undefined);
}
if (selectedWagon.freespaces < c.spaces) {
return(undefined);
}
var _local4 = getFreeWagonSpace(c.spaces);
if (_local4 < 0) {
return(undefined);
}
_global.guide.showGuide(9);
_global.player.addCash(-c.price);
var _local6 = {linkId:c.linkId, type:"weapon", uid:rr.utils.StringUtils.getUniqueName(), weight:c.weight, spaces:c.spaces, spaceIndex:_local4, wagon:selectedWagon};
_local6.mov = attachMovie(_local6.linkId + "Side", _local6.uid, getNextHighestDepth());
_local6.mov.onPress = rr.utils.Delegate.create(this, selectWeapon, _local6);
selectedWagon.weapons.push(_local6);
var _local3 = _local4;
while (_local3 < (_local4 + c.spaces)) {
selectedWagon.spacearray[_local3] = "taken";
_local3++;
}
selectedWagon.load = selectedWagon.load + _local6.weight;
selectedWagon.freespaces = selectedWagon.freespaces - _local6.spaces;
totalLoad = totalLoad + _local6.weight;
updateBuild();
_parent.selectbox_mc.hide();
selectWeapon(_local6);
}
function selectWagon(wag) {
if (_global.buildmenu.mode == "ingame") {
if (wag != ingameadded) {
return(undefined);
}
}
_global.guide.showGuide(11);
selectedWagon = wag;
selectedWeapon = undefined;
_parent.selectbox_mc.select(wag);
if (_x < ((xdef + (_width - wag.mov._x)) - 600)) {
dir = "left";
shiftTarget = (xdef + (_width - wag.mov._x)) - 400;
setEnterFrame();
} else if (_x > (((xdef + _width) - wag.mov._x) - 300)) {
dir = "right";
shiftTarget = ((xdef + (_width - wag.mov._x)) + wag.mov._width) - 400;
setEnterFrame();
}
events.dispatchEvent({type:"onWagonSelect"});
}
function selectWeapon(weap) {
if (_global.buildmenu.mode == "ingame") {
if (weap.wagon != ingameadded) {
return(undefined);
}
}
selectedWeapon = weap;
selectedWagon = undefined;
_parent.selectbox_mc.select(weap);
events.dispatchEvent({type:"onWeaponSelect"});
}
function shiftLeft() {
dir = "left";
shiftTarget = (xdef + displayWidth) - 600;
setEnterFrame();
}
function shiftRight() {
dir = "right";
shiftTarget = xdef;
setEnterFrame();
}
function stopShift() {
dir = "";
delete onEnterFrame;
}
function setEnterFrame() {
onEnterFrame = function () {
if (this.dir == "left") {
if (this._x > ((this.xdef + this.displayWidth) - 600)) {
this.stopShift();
} else if (this._x > this.shiftTarget) {
this.stopShift();
} else {
this._x = this._x + 5;
this._parent.selectbox_mc._x = this._parent.selectbox_mc._x + 5;
}
} else if (this.dir == "right") {
if (this._x < this.xdef) {
this.stopShift();
} else if (this._x < this.shiftTarget) {
this.stopShift();
} else {
this._x = this._x - 5;
this._parent.selectbox_mc._x = this._parent.selectbox_mc._x - 5;
}
}
this._parent.left_btn._visible = this._x < ((this.xdef + this.displayWidth) - 600);
this._parent.right_btn._visible = this._x > this.xdef;
updateAfterEvent();
};
}
function updateBuild() {
if (_global.buildmenu.mode == "ingame") {
updateInGame();
return(undefined);
}
var _local7 = {mov:{_x:_width - 12}, xmargin:0};
if (loc) {
loc.mov._x = (_width - 12) - loc.mov._width;
loc.mov._y = (85 - loc.mov._height) + loc.ymargin;
displayWidth = _width - loc.mov._x;
_local7 = loc;
}
var _local8 = 0;
while (_local8 < wagons.length) {
var _local3 = wagons[_local8];
_local3.mov._x = ((_local7.mov._x + _local7.xmargin) - spacing) - _local3.mov._width;
_local3.mov._y = (85 - _local3.mov._height) + _local3.ymargin;
if (_local3.linkId == "HugeCannon") {
_local3.mov._x = _local3.mov._x + (_local3.flipped ? 0 : 32);
}
if (_local7.linkId == "HugeCannon") {
_local3.mov._x = _local3.mov._x + (_local7.flipped ? 32 : 0);
}
var _local5 = 0;
while (_local5 < _local3.weapons.length) {
var _local4 = _local3.weapons[_local5];
_local4.mov._x = ((_local3.mov._x + _local3.mov._width) - (_local4.spaceIndex * 43)) - _local4.mov._width;
var _local6 = rr.conf.Config.getObjectValue(_local4.linkId, "buildmarginleft");
if (_local6) {
_local4.mov._x = _local4.mov._x + (_local4.flipped ? 0 : (_local6));
}
_local4.mov._y = (_local3.mov._y + rr.conf.Config.getObjectValue(_local3.linkId, "buildmargintop")) - _local4.mov._height;
if (rr.conf.Config.getObjectValue(_local4.linkId, "buildmarginbottom")) {
_local4.mov._y = _local4.mov._y + rr.conf.Config.getObjectValue(_local4.linkId, "buildmarginbottom");
}
if (_local3.linkId == "HugeCannon") {
if (_local4.spaceIndex == 0) {
_local4.mov._x = (_local3.flipped ? (_local3.mov._x + 192) : (_local3.mov._x + 160));
} else {
_local4.mov._x = (_local3.flipped ? (_local3.mov._x + 37) : (_local3.mov._x + 5));
}
}
_local5++;
}
_local7 = _local3;
_local8++;
}
displayWidth = _width - _local3.mov._x;
_global.control.setCash();
setLoadText();
_parent.left_btn._visible = displayWidth > 600;
events.dispatchEvent({type:"onUpdateBuild"});
}
function updateInGame() {
var _local5;
var _local8 = new Array();
var _local3 = _global.loc;
_local8.push(_local3.uid);
_local3.bobj.mov._x = (_width - 12) - _local3.bobj.mov._width;
_local3.bobj.mov._y = (85 - _local3.bobj.mov._height) + _local3.bobj.ymargin;
displayWidth = _width - _local3.bobj.mov._x;
_local5 = _local3.bobj;
while (_local3.next) {
_local3 = _local3.next;
_local8.push(_local3.uid);
if (_local3.bobj) {
setWagon(_local3, _local5);
_local5 = _local3.bobj;
}
}
if (ingameadded != undefined) {
trace("ingameadded: " + ingameadded.linkId);
setInGameWagon({bobj:ingameadded, prev:true}, _local5);
_local5 = ingameadded;
}
var _local10 = _global.train.segments.length;
var _local7 = 0;
while (_local7 < _local10) {
_local3 = _global.train.segments[_local7];
var _local6 = false;
var _local9 = _local8.length;
var _local4 = 0;
while (_local4 < _local9) {
if (_local8[_local4] == _local3.uid) {
_local6 = true;
break;
}
_local4++;
}
if (!_local6) {
if (!_local3.prev) {
setWagon(_local3, _local5);
_local5 = _local3.bobj;
while (_local3.next) {
_local3 = _local3.next;
setWagon(_local3, _local5);
_local5 = _local3.bobj;
}
}
}
_local7++;
}
displayWidth = _width - _local5.mov._x;
_global.control.setCash();
setLoadText();
_parent.left_btn._visible = displayWidth > 600;
events.dispatchEvent({type:"onUpdateBuild"});
}
function setWagon(s, prevWagon) {
var _local3 = s.bobj;
_local3.mov._x = ((prevWagon.mov._x + prevWagon.xmargin) - spacing) - _local3.mov._width;
if (!s.prev) {
_local3.mov._x = _local3.mov._x - 30;
}
_local3.mov._y = (85 - _local3.mov._height) + _local3.ymargin;
if (_local3.linkId == "HugeCannon") {
_local3.movflip = _local3.flipped;
if (s.isreversed) {
_local3.movflip = !_local3.movflip;
}
_local3.mov._x = _local3.mov._x + (_local3.movflip ? 0 : 32);
_local3.mov.gotoAndStop(_local3.movflip.toString());
}
if (prevWagon.linkId == "HugeCannon") {
_local3.mov._x = _local3.mov._x + (prevWagon.movflip ? 32 : 0);
}
var _local4 = 0;
while (_local4 < s.weapons.length) {
var _local2 = s.weapons[_local4].bobj;
if (_local2.linkId == "HugeCannon") {
} else {
_local2.mov._x = ((_local3.mov._x + _local3.mov._width) - (_local2.spaceIndex * 43)) - _local2.mov._width;
var _local5 = rr.conf.Config.getObjectValue(_local2.linkId, "buildmarginleft");
if (_local5) {
_local2.mov._x = _local2.mov._x + (_local2.flipped ? 0 : (_local5));
}
_local2.mov._y = (_local3.mov._y + rr.conf.Config.getObjectValue(_local3.linkId, "buildmargintop")) - _local2.mov._height;
if (rr.conf.Config.getObjectValue(_local2.linkId, "buildmarginbottom")) {
_local2.mov._y = _local2.mov._y + rr.conf.Config.getObjectValue(_local2.linkId, "buildmarginbottom");
}
if (_local3.linkId == "HugeCannon") {
if (_local2.spaceIndex == 0) {
_local2.mov._x = (_local3.movflip ? (_local3.mov._x + 192) : (_local3.mov._x + 160));
} else {
_local2.mov._x = (_local3.movflip ? (_local3.mov._x + 37) : (_local3.mov._x + 5));
}
}
}
_local4++;
}
}
function setInGameWagon(s, prevWagon) {
var _local3 = s.bobj;
_local3.mov._x = ((prevWagon.mov._x + prevWagon.xmargin) - spacing) - _local3.mov._width;
_local3.mov._y = (85 - _local3.mov._height) + _local3.ymargin;
if (_local3.linkId == "HugeCannon") {
_local3.mov._x = _local3.mov._x + (_local3.flipped ? 0 : 32);
}
if (prevWagon.linkId == "HugeCannon") {
_local3.mov._x = _local3.mov._x + (prevWagon.flipped ? 32 : 0);
}
var _local4 = 0;
while (_local4 < _local3.weapons.length) {
var _local2 = _local3.weapons[_local4];
_local2.mov._x = ((_local3.mov._x + _local3.mov._width) - (_local2.spaceIndex * 43)) - _local2.mov._width;
var _local5 = rr.conf.Config.getObjectValue(_local2.linkId, "buildmarginleft");
if (_local5) {
_local2.mov._x = _local2.mov._x + (_local2.flipped ? 0 : (_local5));
}
_local2.mov._y = (_local3.mov._y + rr.conf.Config.getObjectValue(_local3.linkId, "buildmargintop")) - _local2.mov._height;
if (rr.conf.Config.getObjectValue(_local2.linkId, "buildmarginbottom")) {
_local2.mov._y = _local2.mov._y + rr.conf.Config.getObjectValue(_local2.linkId, "buildmarginbottom");
}
if (_local3.linkId == "HugeCannon") {
if (_local2.spaceIndex == 0) {
_local2.mov._x = (_local3.flipped ? (_local3.mov._x + 192) : (_local3.mov._x + 160));
} else {
_local2.mov._x = (_local3.flipped ? (_local3.mov._x + 37) : (_local3.mov._x + 5));
}
}
_local4++;
}
}
function removeObject(obj) {
if (obj == selectedWeapon) {
var _local4 = selectedWeapon.wagon;
var _local5 = 0;
while (_local5 < _local4.weapons.length) {
if (_local4.weapons[_local5] == obj) {
_global.player.addCash(rr.conf.Config.getObjectValue(obj.linkId, "price"));
_local4.load = _local4.load - obj.weight;
_local4.freespaces = _local4.freespaces + obj.spaces;
var _local7 = obj.spaceIndex;
while (_local7 < (obj.spaceIndex + obj.spaces)) {
_local4.spacearray[_local7] = "free";
_local7++;
}
totalLoad = totalLoad - obj.weight;
obj.mov.removeMovieClip();
delete _local4.weapons[_local5];
_local4.weapons.splice(_local5, 1);
selectedWeapon = undefined;
updateBuild();
return(undefined);
}
_local5++;
}
}
if (obj == selectedWagon) {
var _local8 = selectedWagon;
var _local7 = 0;
while (_local7 < _local8.weapons.length) {
var _local6 = _local8.weapons[_local7];
_global.player.addCash(rr.conf.Config.getObjectValue(_local6.linkId, "price"));
totalLoad = totalLoad - _local6.weight;
_local6.mov.removeMovieClip();
_local7++;
}
_local7 = 0;
while (_local7 < wagons.length) {
if (wagons[_local7] == obj) {
_global.player.addCash(rr.conf.Config.getObjectValue(obj.linkId, "price"));
totalLoad = totalLoad - obj.weight;
obj.mov.removeMovieClip();
wagons.splice(_local7, 1);
selectedWagon = undefined;
if (_global.buildmenu.mode == "ingame") {
ingameadded = undefined;
}
updateBuild();
return(undefined);
}
_local7++;
}
}
}
function moveObject(obj, dir) {
if (obj.type == "wagon") {
var _local4 = 0;
while (_local4 < wagons.length) {
if (wagons[_local4] == obj) {
if (dir == "right") {
if (_local4 > 0) {
var _local5 = wagons[_local4 - 1];
wagons[_local4 - 1] = wagons[_local4];
wagons[_local4] = _local5;
updateBuild();
selectWagon(obj);
return(undefined);
}
}
if (dir == "left") {
if (_local4 < (wagons.length - 1)) {
var _local5 = wagons[_local4 + 1];
wagons[_local4 + 1] = wagons[_local4];
wagons[_local4] = _local5;
updateBuild();
selectWagon(obj);
return(undefined);
}
}
}
_local4++;
}
}
if (obj.type == "weapon") {
var _local3 = obj.wagon;
if (dir == "right") {
if (obj.spaceIndex == 0) {
return(undefined);
}
if (_local3.linkId == "HugeCannon") {
if (_local3.spacearray[0] == "free") {
_local3.spacearray[3] = "free";
}
_local3.weapons[0].spaceIndex = ((_local3.weapons[0] == obj) ? 0 : 3);
_local3.weapons[1].spaceIndex = ((_local3.weapons[1] == obj) ? 0 : 3);
_local3.spacearray[0] == "taken";
updateBuild();
selectWeapon(obj);
return(undefined);
}
if (_local3.spacearray[obj.spaceIndex - 1] == "free") {
_local3.spacearray[(obj.spaceIndex + obj.spaces) - 1] = "free";
obj.spaceIndex = obj.spaceIndex - 1;
_local3.spacearray[obj.spaceIndex] = "taken";
updateBuild();
selectWeapon(obj);
return(undefined);
}
var _local4 = 0;
while (_local4 < _local3.weapons.length) {
if (_local3.weapons[_local4].spaceIndex == (obj.spaceIndex - _local3.weapons[_local4].spaces)) {
obj.spaceIndex = _local3.weapons[_local4].spaceIndex;
_local3.weapons[_local4].spaceIndex = obj.spaceIndex + obj.spaces;
updateBuild();
selectWeapon(obj);
return(undefined);
}
_local4++;
}
}
if (dir == "left") {
if ((obj.spaceIndex + obj.spaces) == _local3.spaces) {
return(undefined);
}
if (_local3.linkId == "HugeCannon") {
if (_local3.spacearray[3] == "free") {
_local3.spacearray[0] = "free";
}
_local3.weapons[0].spaceIndex = ((_local3.weapons[0] == obj) ? 3 : 0);
_local3.weapons[1].spaceIndex = ((_local3.weapons[1] == obj) ? 3 : 0);
_local3.spacearray[3] == "taken";
updateBuild();
selectWeapon(obj);
return(undefined);
}
if (_local3.spacearray[obj.spaceIndex + obj.spaces] == "free") {
_local3.spacearray[obj.spaceIndex] = "free";
obj.spaceIndex = obj.spaceIndex + 1;
_local3.spacearray[(obj.spaceIndex + obj.spaces) - 1] = "taken";
updateBuild();
selectWeapon(obj);
return(undefined);
}
var _local4 = 0;
while (_local4 < _local3.weapons.length) {
if (_local3.weapons[_local4].spaceIndex == (obj.spaceIndex + obj.spaces)) {
_local3.weapons[_local4].spaceIndex = obj.spaceIndex;
obj.spaceIndex = _local3.weapons[_local4].spaceIndex + _local3.weapons[_local4].spaces;
updateBuild();
selectWeapon(obj);
return(undefined);
}
_local4++;
}
}
}
}
function flipObject(obj) {
obj.flipped = !obj.flipped;
obj.mov.gotoAndStop(obj.flipped.toString());
updateBuild();
}
function getFreeWagonSpace(spaces) {
if (selectedWagon.freespaces < spaces) {
return(-1);
}
var _local2 = 0;
while (_local2 < selectedWagon.spacearray.length) {
if (selectedWagon.spacearray[_local2] == "free") {
if (checkFreeSpaceSize(_local2, spaces)) {
return(_local2);
}
}
_local2++;
}
return(-1);
}
function checkFreeSpaceSize(i, size) {
var _local2 = i;
while (_local2 < (i + size)) {
if (selectedWagon.spacearray[_local2] != "free") {
return(false);
}
_local2++;
}
return(true);
}
function onTrainObjectDestroy(evtObj) {
var _local6 = evtObj.target;
var _local7 = wagons.length;
var _local4 = 0;
while (_local4 < _local7) {
var _local3 = wagons[_local4];
if (_local3 == _local6.bobj) {
_local3.mov.removeMovieClip();
wagons.splice(_local4, 1);
break;
}
var _local5 = _local3.weapons.length;
var _local2 = 0;
while (_local2 < _local5) {
if (_local3.weapons[_local2] == _local6.bobj) {
_local3.weapons[_local2].mov.removeMovieClip();
_local3.weapons.splice(_local2, 1);
break;
}
_local2++;
}
_local4++;
}
updateBuild();
}
function clear() {
trace("clearin trainbuild: ");
loc.mov.removeMovieClip();
delete loc;
ingameadded = undefined;
for (var _local2 in this) {
if (this[_local2] instanceof MovieClip) {
this[_local2].removeMovieClip();
}
}
for (var _local2 in this) {
if (this[_local2] instanceof Object) {
delete this[_local2];
}
}
events.dispatchEvent({type:"onUpdateBuild"});
}
}
Symbol 3512 MovieClip [__Packages.rr.control.SelectBox] Frame 0
class rr.control.SelectBox extends rr.BaseClip
{
var rect, createEmptyMovieClip, left_btn, right_btn, deletewagon_btn, deleteweapon_btn, deleteload_btn, flip_btn, objSel, _parent, _x, _visible;
function SelectBox () {
super();
init();
}
function init() {
hide();
rect = createEmptyMovieClip("rect", 10);
rect._y = 64;
left_btn.onPress = rr.utils.Delegate.create(this, command, "moveleft");
right_btn.onPress = rr.utils.Delegate.create(this, command, "moveright");
deletewagon_btn.onPress = rr.utils.Delegate.create(this, command, "delete");
deleteweapon_btn.onPress = rr.utils.Delegate.create(this, command, "delete");
deleteload_btn.onPress = rr.utils.Delegate.create(this, command, "delete");
flip_btn.onPress = rr.utils.Delegate.create(this, command, "flip");
}
function select(obj) {
hide();
flip_btn._visible = false;
objSel = obj;
if (objSel == undefined) {
return(undefined);
}
var _local3 = objSel.mov;
var _local7;
var _local5;
if (objSel.type == "wagon") {
deletewagon_btn._visible = true;
deleteweapon_btn._visible = false;
deleteload_btn._visible = false;
_local7 = 13103871 /* 0xC7F2FF */;
_local5 = 76;
right_btn._visible = _global.trainbuild.wagons[0] != objSel;
left_btn._visible = _global.trainbuild.wagons[_global.trainbuild.wagons.length - 1] != objSel;
if (_global.buildmenu.mode == "ingame") {
right_btn._visible = (left_btn._visible = false);
}
}
if (objSel.type == "weapon") {
deletewagon_btn._visible = false;
if (((obj.linkId == "ColeCart") || (obj.linkId == "OilTank")) || (obj.linkId == "PowerGenerator")) {
deleteweapon_btn._visible = false;
deleteload_btn._visible = true;
} else {
deleteweapon_btn._visible = true;
deleteload_btn._visible = false;
}
_local7 = 6854565 /* 0x6897A5 */;
_local5 = (objSel.wagon.mov._y + rr.conf.Config.getObjectValue(objSel.wagon.linkId, "buildmargintop")) - 18;
right_btn._visible = objSel.spaceIndex != 0;
left_btn._visible = (objSel.spaceIndex + objSel.spaces) != objSel.wagon.spaces;
}
if (rr.conf.Config.getObjectValue(objSel.linkId, "buildflip")) {
trace("buildflip");
flip_btn._visible = true;
}
var _local4 = {x:_local3._x, y:_local3._y};
_parent.build_mc.localToGlobal(_local4);
_parent.globalToLocal(_local4);
_x = _local4.x + (_local3._width / 2);
rect.clear();
rect.lineStyle(1, _local7, 100);
rr.utils.DrawUtils.drawRect(rect, (-_local3._width) / 2, 0, _local3._width, _local5);
show();
}
function show() {
_visible = true;
}
function hide() {
objSel = undefined;
_visible = false;
}
function command(c) {
if (c == "delete") {
_global.trainbuild.removeObject(objSel);
hide();
}
if (c == "moveleft") {
_global.trainbuild.moveObject(objSel, "left");
}
if (c == "moveright") {
_global.trainbuild.moveObject(objSel, "right");
}
if (c == "flip") {
_global.trainbuild.flipObject(objSel);
}
}
}
Symbol 3513 MovieClip [__Packages.rr.control.WeaponSelect] Frame 0
class rr.control.WeaponSelect extends rr.BaseClip
{
var page1, SC_mc, MC_mc, SFC_mc, RL_mc, BB_mc, LC_mc, RR_mc, page2, EMP_mc, HC_mc, more_btn, back_btn, items, page;
function WeaponSelect () {
super();
_global.weaponselect = this;
init();
}
function init() {
hideAll();
page1 = [SC_mc, MC_mc, SFC_mc, RL_mc, BB_mc, LC_mc, RR_mc];
page2 = [EMP_mc, HC_mc];
more_btn.onPress = rr.utils.Delegate.create(this, showPage, 2);
back_btn.onPress = rr.utils.Delegate.create(this, showPage, 1);
showPage(1);
}
function showPage(p) {
var _local3 = 0;
if (items) {
var _local2 = items.length - 1;
while (_local2 >= 0) {
rr.utils.Delegate.callDelayed(this, hideItem, _local3, items[_local2]);
_local3 = _local3 + 50;
_local2--;
}
}
page = p;
more_btn._visible = page == 1;
back_btn._visible = page == 2;
items = this["page" + page];
var _local2 = 0;
while (_local2 < items.length) {
rr.utils.Delegate.callDelayed(this, showItem, _local3, items[_local2]);
_local3 = _local3 + 50;
_local2++;
}
}
function showItem(l) {
l._visible = true;
}
function hideItem(l) {
l._visible = false;
}
function hideAll() {
for (var _local2 in this) {
if (this[_local2] instanceof MovieClip) {
this[_local2]._visible = false;
}
}
}
}
Symbol 3514 MovieClip [__Packages.rr.control.BuildMenu] Frame 0
class rr.control.BuildMenu extends rr.BaseClip
{
var mode, tab, play_btn, cancel_btn, train_btn, indLocSet, indWagonSet, ind_weapon_mc, ind_wagon_mc, gotoAndStop, gotoAndPlay, nexttab, _visible;
function BuildMenu () {
super();
_global.buildmenu = this;
}
function init() {
mode = "";
tab = "";
play_btn.onPress = rr.utils.Delegate.create(this, endBuild);
cancel_btn.onPress = rr.utils.Delegate.create(this, cancelBuild);
play_btn._visible = false;
cancel_btn._visible = false;
train_btn._visible = true;
show();
indLocSet = (indWagonSet = false);
ind_wagon_mc._visible = (ind_weapon_mc._visible = false);
_global.guide.init();
_global.trainbuild.init();
(gotoAndStop(1));// not popped
rr.utils.Delegate.callDelayed(this, showTab, 500, "selecttrain");
}
function showTab(t) {
if (t != "selecttrain") {
if (!_global.trainbuild.loc.linkId) {
return(undefined);
}
} else {
_global.guide.showGuide(1);
}
if (t == "selectwagon") {
ind_wagon_mc._visible = false;
_global.guide.showGuide(5);
}
if (t == "selectweapon") {
ind_weapon_mc._visible = false;
_global.guide.showGuide(8);
}
if (tab == t) {
return(undefined);
}
if (tab == "") {
tab = t;
(gotoAndPlay(tab));// not popped
} else {
nexttab = t;
closeTab();
}
}
function checkIndicator(ind) {
if (!indLocSet) {
if (ind == "loc") {
indLocSet = true;
ind_wagon_mc._visible = true;
}
}
if (!indWagonSet) {
if (ind == "wagon") {
indWagonSet = true;
ind_weapon_mc._visible = true;
}
}
}
function closeTab() {
(gotoAndPlay(tab + "close"));// not popped
tab = "";
}
function afterCloseTab() {
showTab(nexttab);
nexttab = "";
}
function endBuild() {
_global.guide.clear();
hide();
if (mode == "ingame") {
_global.control.endBuildInGame();
} else {
_global.control.setLevelLoad(0, "creating map");
rr.utils.Delegate.callDelayed(_global.game, _global.game.initLevel, 200);
}
}
function cancelBuild() {
_global.trainbuild.selectedWagon = _global.trainbuild.ingameadded;
_global.trainbuild.removeObject(_global.trainbuild.ingameadded);
_global.trainbuild.ingameadded = undefined;
endBuild();
}
function show() {
_visible = true;
}
function hide() {
_visible = false;
}
function showInGameMenu() {
mode = "ingame";
_global.trainbuild.setInGame();
cancel_btn._visible = true;
train_btn._visible = false;
showTab("selectwagon");
show();
}
}
Symbol 3515 MovieClip [__Packages.rr.Guide] Frame 0
class rr.Guide extends rr.BaseClip
{
var arrB, arrA, fmt, filters, guides, curguide, x, y, _y, _x, tf, createTextField, arr_mc, createEmptyMovieClip, close_mc;
function Guide () {
super();
_global.guide = this;
}
function init() {
arrB = 18;
arrA = 13;
fmt = new TextFormat();
fmt.color = 16737792 /* 0xFF6600 */;
fmt.font = "myAlternateGothic2 BT";
fmt.size = 13;
fmt.leftMargin = 3;
fmt.rightMargin = 3;
var _local3 = new flash.filters.DropShadowFilter(7, 45, 0, 70);
var _local2 = filters;
_local2.push(_local3);
filters = _local2;
guides = [{id:1, x:200, y:40, text:"FIRST CLICK ON THE SADDLE TANK.\rFOR NOW IT'S THE ONLY AVAILABLE TRAIN.\rNEW TRAINS WILL BE UNLOCKED WHEN YOU PLAY THE MISSIONS.", arrows:[{d:"l", p:50, s:1}], shown:false}, {id:2, x:507, y:320, text:"GOOD JOB. THE SADDLE\rTANK IS SELECTED", arrows:[{d:"b", p:50, s:1}], next:3, shown:false}, {id:3, x:310, y:280, text:"DURING THE MISSIONS SOME WAGONS WILL APPEAR\rAUTOMATICALLY WHEN A TRAIN IS SELECTED\rTHESE ARE THE MISSION WAGONS AND THEY NEED TO\rBE DROPPED OFF ON SPECIFIC LOCATIONS ON THE MAP", arrows:[{d:"b", p:50, s:1}], next:4, shown:false}, {id:4, x:105, y:305, text:"NOW IT'S TIME TO ATTACH\rYOUR FIRST WAGON.\rCLICK THIS BUTTON", arrows:[{d:"l", p:50, s:1}], shown:false}, {id:5, x:280, y:80, text:"A WAGON HAS A PRICE, WEIGHT AND SLOT SIZE.\rSELECT THE 2 SLOTS WAGON.", arrows:[{d:"l", p:50, s:1}], shown:false}, {id:6, x:55, y:465, text:"THE WAGON IS NOW BEHIND YOUR TRAIN AND SELECTED.\rTHE WEIGHT IS SUBTRACTED FROM THE POSSIBLE EXTRA\rLOAD. THE PRICE IS SUBTRACTED FROM YOUR CASH.", arrows:[{d:"t", p:92, s:1}, {d:"r", p:35, s:0.5}], close:"l", next:7, shown:false}, {id:7, x:105, y:323, text:"NOW IT'S TIME TO SELECT\rYOUR FIRST WEAPON\rCLICK THIS BUTTON", arrows:[{d:"l", p:50, s:1}], shown:false}, {id:8, x:325, y:80, text:"A WEAPON HAS A PRICE, WEIGHT AND SLOT SPACE.\rTHIS 2 SLOTS CANNON CAN ONLY BE PLACED ON A 2\rSLOTS OR BIGGER WAGON. CLICK TO SELECT IT.", arrows:[{d:"l", p:50, s:1}], shown:false}, {id:9, x:55, y:465, text:"THE WEAPON IS NOW ON THE WAGON AND SELECTED.\rTHE WEIGHT IS SUBTRACTED FROM THE POSSIBLE EXTRA\rLOAD. THE PRICE IS SUBTRACTED FROM YOUR CASH.", arrows:[{d:"t", p:90, s:1}, {d:"r", p:35, s:0.5}], close:"l", next:10, shown:false}, {id:10, x:135, y:415, text:"NOW CLICK ON THE\rWAGON TO SELECT IT.", arrows:[{d:"r", p:50, s:1}], next:11, shown:false}, {id:11, x:390, y:415, text:"EXCELLENT! THESE ARE THE BASICS OF A TRAIN BUILD.\rYOU CAN MOVE YOUR WAGONS AND WEAPONS WITH THE\rAPPROPRIATE BUTTONS.\rATTACH AS MANY ITEMS AS LOAD AND CASH ALLOWS.\rTHEN CLICK ON THE START BUTTON TO START THE MISSION.", arrows:[{d:"b", p:90, s:1}], shown:false}, {id:12, x:280, y:40, text:"POSITION THE AIRCRANE AND IT'S LOAD BEHIND THE TRAIN IN THE CORRECT ANGLE.\rMAKE SURE THE LAST TRAIN WAGON IS NOT TOO CLOSE TO A STOPBLOCK.\rCLICK WHEN THE AIRCRANELOAD TURNS RED.", shown:false}, {id:13, x:360, y:400, text:"CLICK ON A BUTTON TO SPEED UP OR DOWN.\rSHORTCUTS ARE LEFT AND RIGHT ARROW KEYS\rRED BUTTON IS FULL STOP (KEY DOWN).", arrows:[{d:"b", p:10, s:0.5}, {d:"b", p:82, s:1}], shown:false}, {id:14, x:830, y:35, text:"A SWITCH. CLICK IT TO CHANGE\rDIRECTION. LOOK AT THE MINIMAP\rTO SEE WHICH DIRECTION IS BEST.", arrows:[{d:"r", p:50, s:1}], shown:false}, {id:15, x:700, y:320, text:"THE FIRST DROP OFF POINT. RIDE YOUR TRAIN OVER THIS\rICON TO DROP OFF THE PASSENGER WAGON. THIS HAS TO\rBE DONE IN ORDER TO MAKE IT TO THE NEXT MISSION!\rTHESE LOCATIONS ARE ALSO SHOWN ON THE MINIMAP.", arrows:[{d:"l", p:70, s:1}], shown:false}, {id:16, x:10, y:400, text:"CLICK HERE TO ATTACH A NEW WAGON\rAND WEAPONS. POSITION THEM WITH THE AIRCRANE.\rFIRST PRESS FULL STOP.", arrows:[{d:"b", p:50, s:1}], shown:false}];
}
function showGuide(id) {
var _local5 = getGuide(id);
if (_global.gametype != "new mission") {
return(undefined);
}
if (_global.buildmenu.mode == "ingame") {
if (id != 12) {
return(undefined);
}
}
if (_global.game.levelId > 1) {
return(undefined);
}
if (_local5.shown) {
return(undefined);
}
if (id == 11) {
var _local6 = getGuide(10);
if (!_local6.shown) {
return(undefined);
}
}
curguide = undefined;
close();
curguide = _local5;
curguide.shown = true;
x = curguide.x;
y = curguide.y - 480;
_y = y;
if ((id == 14) || (id == 15)) {
_x = x - _global.camera.left;
_global.timer.addEventListener("onTimerTick", this);
} else {
_x = x;
_global.timer.removeEventListener("onTimerTick", this);
}
tf = createTextField("tf", 100, 0, 0, 0, 0);
tf.autoSize = true;
tf.multiline = true;
tf.wordWrap = false;
tf.embedFonts = true;
tf.type = "dynamic";
tf.border = true;
tf.borderColor = 16737792 /* 0xFF6600 */;
tf.background = true;
tf.backgroundColor = 0;
tf.selectable = false;
tf.text = "GUIDE:\r" + curguide.text;
tf.setTextFormat(fmt);
arr_mc = createEmptyMovieClip("arr_mc", 50);
var _local3 = 0;
while (_local3 < curguide.arrows.length) {
drawArrow(curguide.arrows[_local3]);
_local3++;
}
drawCloseBox();
}
function getGuide(id) {
var _local2 = 0;
while (_local2 < guides.length) {
if (guides[_local2].id == id) {
return(guides[_local2]);
}
_local2++;
}
}
function drawArrow(a) {
var _local4 = (((a.d == "t") || (a.d == "b")) ? (tf._x + (tf._width * (a.p / 100))) : (((a.d == "l") ? (tf._x) : (tf._x + tf._width))));
var _local3 = (((a.d == "l") || (a.d == "r")) ? (tf._y + (tf._height * (a.p / 100))) : (((a.d == "t") ? (tf._y) : (tf._y + tf._height))));
switch (a.d) {
case "t" :
var _local5 = {x:_local4 + (a.s * arrB), y:_local3};
var _local7 = {x:_local4, y:_local3 - (a.s * arrA)};
var _local6 = {x:_local4 - (a.s * arrB), y:_local3};
break;
case "b" :
_local5 = {x:_local4 + (a.s * arrB), y:_local3};
_local7 = {x:_local4, y:_local3 + (a.s * arrA)};
_local6 = {x:_local4 - (a.s * arrB), y:_local3};
break;
case "l" :
_local5 = {x:_local4, y:_local3 + (a.s * arrB)};
_local7 = {x:_local4 - (a.s * arrA), y:_local3};
_local6 = {x:_local4, y:_local3 - (a.s * arrB)};
break;
case "r" :
_local5 = {x:_local4, y:_local3 + (a.s * arrB)};
_local7 = {x:_local4 + (a.s * arrA), y:_local3};
_local6 = {x:_local4, y:_local3 - (a.s * arrB)};
}
arr_mc.lineStyle(1, 16737792);
arr_mc.moveTo(_local5.x, _local5.y);
arr_mc.beginFill(16737792);
arr_mc.lineTo(_local7.x, _local7.y);
arr_mc.lineTo(_local6.x, _local6.y);
arr_mc.lineTo(_local5.x, _local5.y);
arr_mc.endFill();
}
function drawCloseBox() {
close_mc = createEmptyMovieClip("close_mc", 150);
close_mc.lineStyle(1, 16737792);
close_mc.moveTo(0, 0);
close_mc.beginFill(0);
close_mc.lineTo(15, 0);
close_mc.lineTo(15, 15);
close_mc.lineTo(0, 15);
close_mc.lineTo(0, 0);
close_mc.endFill();
if (curguide.next) {
close_mc.lineStyle(1, 0);
close_mc.moveTo(2, 2);
close_mc.beginFill(16737792);
close_mc.lineTo(13, 7.5);
close_mc.lineTo(2, 13);
close_mc.lineTo(2, 2);
close_mc.endFill();
} else {
close_mc.lineStyle(2, 16737792);
close_mc.moveTo(4, 4);
close_mc.lineTo(11, 11);
close_mc.moveTo(4, 11);
close_mc.lineTo(11, 4);
}
close_mc._x = ((tf._x + tf._width) - close_mc._width) + 1;
if (curguide.close == "l") {
close_mc._x = tf._x;
}
close_mc._y = (tf._y - close_mc._height) - 2;
close_mc.onPress = rr.utils.Delegate.create(this, close);
if (curguide.id >= 12) {
close_mc.onRollOver = rr.utils.Delegate.create(_global.aim, _global.aim.hide, this);
close_mc.onRollOut = (close_mc.onDragOut = rr.utils.Delegate.create(_global.aim, _global.aim.show, this));
}
}
function onTimerTick() {
_x = x - _global.camera.left;
updateAfterEvent();
}
function close() {
trace("close: " + close);
_global.aim.show(this);
tf.removeTextField();
arr_mc.removeMovieClip();
close_mc.removeMovieClip();
if (curguide.next) {
showGuide(curguide.next);
}
}
function closeById(id) {
if (curguide.id == id) {
close();
}
}
function clear() {
tf.removeTextField();
arr_mc.removeMovieClip();
close_mc.removeMovieClip();
var _local2 = 1;
while (_local2 <= 11) {
var _local3 = getGuide(_local2);
_local3.shown = true;
_local2++;
}
}
}
Symbol 3516 MovieClip [__Packages.rr.control.Control] Frame 0
class rr.control.Control extends rr.BaseClip
{
var _visible, levelload_mc, speedFactor, bottom_mc, lightzero, my_fmt, addEventListener, quit_btn, thorn, loadcash_mc, __get__displayspeed, selectedLight, events, compound_mc, disabled_mc;
function Control () {
super();
_global.control = this;
_visible = false;
levelload_mc._visible = false;
}
function init() {
speedFactor = 45;
var _local3 = -3;
while (_local3 <= 6) {
bottom_mc.speed_mc.lights_mc[("light" + _local3) + "_mc"].init();
_local3++;
}
lightzero = bottom_mc.speed_mc.lights_mc.light0_mc;
my_fmt = new TextFormat();
my_fmt.bold = true;
my_fmt.font = "myAlternateGothic2 BT";
my_fmt.size = 14;
my_fmt.align = "center";
bottom_mc.speed_mc.gage_mc.speed_txt.setTextFormat(my_fmt);
bottom_mc.speed_mc.gage_mc.speed_txt.embedFonts = true;
bottom_mc.speed_mc.gage_mc.speed_txt.text = 0;
bottom_mc.speed_mc.fullstop_btn.onPress = rr.utils.Delegate.create(this, fullStop);
_global.loc.addEventListener("onLocAccel", this);
addEventListener("onFullStop", _global.loc);
bottom_mc.quit_btn.onPress = rr.utils.Delegate.create(this, quitGame);
bottom_mc.addwagon_btn.onPress = rr.utils.Delegate.create(this, showBuildInGame);
bottom_mc.detach_btn.onPress = rr.utils.Delegate.create(this, showDetach);
bottom_mc.minimap_btn.onPress = rr.utils.Delegate.create(this, toggleMiniMap);
quit_btn._visible = false;
bottom_mc.fuel_mc.init();
bottom_mc._visible = true;
levelload_mc._visible = false;
thorn = getTimer();
Key.addListener(this);
}
function showBuild() {
quit_btn.onPress = rr.utils.Delegate.create(this, quitGame);
quit_btn._visible = true;
loadcash_mc._visible = true;
bottom_mc._visible = false;
_global.buildmenu.init();
_visible = true;
}
function showLevelResult(success) {
loadcash_mc._visible = false;
bottom_mc._visible = false;
_global.levelresult.showResult(success);
}
function setLevelLoad(perc, lbl) {
levelload_mc.ldr_txt.text = lbl.toUpperCase();
levelload_mc.gotoAndStop(perc);
levelload_mc._visible = true;
}
function set displayspeed(val) {
bottom_mc.speed_mc.gage_mc.speed_txt.text = Math.round(val * speedFactor);
//return(__get__displayspeed());
}
function onKeyDown() {
if (_global.loc.isdead || (_global.train.isCrashed)) {
return(undefined);
}
var _local3 = Key.getCode();
if (_local3 == 72) {
_global.sounds.playNewSound(_global.loc.hornsound);
}
if (_local3 == 77) {
toggleMiniMap();
}
if (_local3 == 40) {
fullStop();
}
}
function selectLight(sr) {
if (_global.loc.fuel <= 0) {
return(undefined);
}
if (_global.minimap._visible) {
return(undefined);
}
selectedLight.deselect();
selectedLight = bottom_mc.speed_mc.lights_mc[("light" + sr) + "_mc"];
selectedLight.select();
}
function fullStop() {
selectLight(0);
events.dispatchEvent({target:this, type:"onFullStop"});
}
function setDamageClips() {
bottom_mc.damage_mc.setClips(true);
}
function setCash() {
loadcash_mc.cash_txt.text = _global.player.cash.toString();
}
function setLoad(l) {
if (l < 0) {
l = 0;
}
loadcash_mc.load_txt.text = l.toString();
}
function quitGame() {
_global.game.clearGameObjects();
_global.root.gotoAndStop("startmenu");
}
function showBuildInGame() {
_global.guide.closeById(16);
if (_global.stage.crane != undefined) {
return(undefined);
}
if (_global.minimap._visible) {
return(undefined);
}
if (compound_mc._visible) {
return(undefined);
}
_global.sounds.stopAll();
_global.timer.stop();
_global.stage._visible = false;
bottom_mc._visible = false;
_global.buildmenu.showInGameMenu();
}
function endBuildInGame() {
if (_global.trainbuild.ingameadded) {
_global.stage.sendCrane();
}
_global.stage._visible = true;
bottom_mc._visible = true;
_global.timer.start();
}
function showDetach() {
_global.aim.showDetach();
}
function toggleMiniMap() {
if (_global.game.levelended) {
return(undefined);
}
if (compound_mc._visible) {
return(undefined);
}
if (_global.minimap._visible) {
_global.minimap.closeMap();
} else {
_global.minimap.showMap();
}
}
function showCompoundMenu(c) {
compound_mc.show(c);
}
function showDisabledMenu(m) {
disabled_mc.show(m);
}
}
Symbol 3517 MovieClip [__Packages.rr.Game] Frame 0
class rr.Game extends rr.BaseClip
{
var levelId, defaultrage, dropoffs, pickups, levelended;
function Game () {
super();
_global.game = this;
rr.utils.Delegate.callDelayed(this, init, 500);
}
function init() {
_global.player = new rr.Player();
levelId = 0;
loadSavedMission();
loadGame();
}
function loadSavedMission() {
var _local2 = SharedObject.getLocal("savedmission");
_global.savedmission = _local2.data.savedmission;
if (_global.savedmission == undefined) {
var _local3 = rr.conf.Config.getGameConf(1);
_global.savedmission = {levelid:1, cash:_local3.startcash, points:0, landshot:0, airshot:0, time:0};
_local2.data.savedmission = _global.savedmission;
_local2.flush();
}
trace("_global.savedmission.levelid: " + _global.savedmission.levelid);
}
function loadGame() {
if (_global.gametype == "custom level") {
levelId = _global.superlevel;
_global.gameconf = _global.loadedlevel;
_global.player.addCash(_global.loadedlevel.startcash);
rr.conf.Config.addMapValues();
startLevel();
} else if (_global.gametype == "railrage") {
levelId = _global.superlevel;
_global.gameconf = _global.loadedlevel;
if (_global.gameconf.isdefault) {
defaultrage = true;
} else {
defaultrage = false;
}
_global.player.addCash(_global.loadedlevel.startcash);
rr.conf.Config.addMapValues();
startLevel();
} else {
if (_global.gametype == "new mission") {
levelId = 1;
var _local3 = rr.conf.Config.getGameConf(1);
_global.player.addCash(_local3.startcash);
}
if (_global.gametype == "loaded mission") {
levelId = _global.savedmission.levelid;
_global.player.addCash(_global.savedmission.cash);
_global.player.addPoints(_global.savedmission.points);
_global.player.landshot = _global.savedmission.landshot;
_global.player.airshot = _global.savedmission.airshot;
_global.player.time = _global.savedmission.time;
}
_global.gameconf = rr.conf.Config.getGameConf(levelId);
rr.conf.Config.addMapValues();
_global.control._visible = false;
_global.missionmenu.playMission(levelId);
}
}
function startLevel() {
dropoffs = new Array();
pickups = new Array();
var _local4 = _global.gameconf.dp;
var _local7 = _local4.length;
var _local3 = 0;
while (_local3 < _local7) {
if (_local4[_local3].m == "d") {
dropoffs.push(rr.conf.Config.translateDropCode(_local4[_local3].t));
}
if (_local4[_local3].m == "p") {
pickups.push({linkid:rr.conf.Config.translateDropCode(_local4[_local3].t), done:false});
}
_local3++;
}
_global.leveltime = 0;
_global.landshot = 0;
_global.airshot = 0;
_global.player.initLevel();
_global.missionmenu._visible = false;
_global.control.showBuild();
_global.timer = new rr.Timer();
_global.map = new rr.Map();
_global.aim = new rr.Aim();
_global.camera = new rr.StageCam();
if (_global.gametype == "railrage") {
_global.clock = new rr.Clock();
}
}
function initLevel() {
_global.sounds.init();
_global.stage.init();
_global.map.init();
_global.stage.createObjects();
}
function play() {
trace("play: ");
levelended = false;
_global.aim.init();
_global.camera.init();
_global.control.init();
if (_global.gametype == "railrage") {
_global.clock.init();
}
_global.guide.showGuide(13);
_global.timer.start();
_global.stage._visible = true;
}
function nextLevel() {
clearGameObjects();
levelId++;
_global.gameconf = rr.conf.Config.getGameConf(levelId);
rr.conf.Config.addMapValues();
_global.control._visible = false;
_global.missionmenu.playMission(levelId);
}
function replayLevel() {
_global.player.getReplayStats();
startLevel();
}
function checkEndLevel() {
if (dropoffs.length > 0) {
return(undefined);
}
var _local5 = _global.loc;
while (_local5.next) {
_local5 = _local5.next;
var _local7 = pickups.length;
var _local4 = 0;
while (_local4 < _local7) {
var _local3 = pickups[_local4];
if ((_local3.linkid == _local5.linkId) && (!_local3.done)) {
_local3.done = true;
break;
}
_local4++;
}
}
var _local8 = pickups.length;
var _local6 = 0;
while (_local6 < _local8) {
if (!pickups[_local6].done) {
return(undefined);
}
_local6++;
}
endLevel(true);
}
function endLevel(success) {
if (levelended) {
return(undefined);
}
levelended = true;
_global.guide.close();
_global.aim.clear();
_global.clock.clear();
if (success) {
rr.utils.Delegate.callDelayed(this, finishLevel, 500, success);
} else {
rr.utils.Delegate.callDelayed(this, finishLevel, 3000, success);
}
}
function finishLevel(success) {
trace("endLevel: ");
clearGameObjects();
_global.player.setMissionResult(success);
if (success) {
_global.sounds.playSound("Mission Accomplished.wav");
} else {
_global.sounds.playSound("Mission Failed.wav");
}
_global.control.showLevelResult(success);
}
function clearGameObjects() {
_global.sounds.stopAll();
_global.timer.stop();
_global.stage._visible = false;
delete _global.timer;
delete _global.map;
delete _global.aim;
delete _global.camera;
delete _global.loc;
delete _global.train;
delete _global.clock;
}
}
Symbol 3518 MovieClip [__Packages.rr.Player] Frame 0
class rr.Player extends rr.BaseClass
{
var cash, bonus, points, landshot, airshot, time, addEventListener, events, rpcash, rpbonus, rppoints, rplandshot, rpairshot, rptime;
function Player () {
super();
init();
}
function init() {
cash = 0;
bonus = 0;
points = 0;
landshot = 0;
airshot = 0;
time = 0;
addEventListener("setCash", _global.control);
}
function initLevel() {
bonus = 0;
setReplayStats();
}
function addCash(amount) {
cash = Math.round(cash + amount);
if (cash < 0) {
cash = 0;
}
events.dispatchEvent({type:"setCash"});
}
function addBonus(amount) {
bonus = Math.round(bonus + amount);
if (bonus < 0) {
bonus = 0;
}
addCash(amount);
}
function addPoints(amount) {
points = Math.round(points + amount);
if (points < 0) {
points = 0;
}
_level0.playerpoints = points;
}
function setMissionResult(success) {
var _local4;
if (success) {
var _local3 = _global.game.levelId;
if ((_global.gametype == "new mission") || (_global.gametype == "loaded mission")) {
if (_local3 < 2) {
var _local5 = rr.conf.Config.getGameConf(_local3 + 1);
addCash(_local5.startcash);
}
}
var _local6 = rr.conf.Config.getGameConf(_local3);
_local4 = _local6.levelpoints + Math.round((10000 * (_global.landshot + (_global.airshot * 3))) / (_global.leveltime / 1000));
} else {
_local4 = Math.round((1000 * (_global.landshot + (_global.airshot * 3))) / (_global.leveltime / 1000));
}
addPoints(_local4);
landshot = landshot + _global.landshot;
airshot = airshot + _global.airshot;
time = time + _global.leveltime;
}
function setReplayStats() {
rpcash = cash;
rpbonus = bonus;
rppoints = points;
rplandshot = landshot;
rpairshot = airshot;
rptime = time;
}
function getReplayStats() {
cash = rpcash;
bonus = rpbonus;
points = rppoints;
landshot = rplandshot;
airshot = rpairshot;
time = rptime;
}
}
Symbol 3519 MovieClip [__Packages.rr.Timer] Frame 0
class rr.Timer extends rr.BaseClass
{
var stopped, ival, events;
function Timer () {
super();
}
function start() {
stopped = false;
clearInterval(ival);
ival = setInterval(this, "doTick", 40);
}
function stop() {
clearInterval(ival);
stopped = true;
}
function doTick() {
events.dispatchEvent({type:"onTimerTick", target:this});
updateAfterEvent();
}
}
Symbol 3520 MovieClip [__Packages.rr.Map] Frame 0
class rr.Map extends rr.BaseClass
{
var mapId, cols, rows, maptype, foreground, nightmap, collapsepoints, width, height, map_bmp, fg_bmp, cells, rc, rs;
function Map () {
super();
}
function init() {
trace("init: map ");
mapId = _global.gameconf.map.mapid;
cols = _global.gameconf.map.cols;
rows = _global.gameconf.map.rows;
maptype = _global.gameconf.map.maptype;
foreground = _global.gameconf.map.foreground;
nightmap = _global.gameconf.nightmap;
if (_global.gameconf.map.collapsepoints) {
collapsepoints = _global.gameconf.map.collapsepoints;
} else {
collapsepoints = new Array();
}
width = cols * 640;
height = rows * 480;
map_bmp = flash.display.BitmapData.loadBitmap("map_" + mapId);
if (foreground) {
fg_bmp = flash.display.BitmapData.loadBitmap(("map_" + mapId) + "_fore");
}
_global.minimap.init();
createMapCells();
createCompounds();
createRailConnections();
createRailSegments();
createBonuses();
createDrops();
initMapCells();
if (nightmap) {
rr.utils.ClipUtils.setTint(_global.stage.bg_mc, 0, 80);
rr.utils.ClipUtils.setTint(_global.stage.fg_mc, 0, 80);
}
}
function createMapCells() {
cells = [];
var _local3 = 1;
while (_local3 <= cols) {
var _local2 = 1;
while (_local2 <= rows) {
this[(("cell_" + _local3) + "_") + _local2] = new rr.MapCell(_local3, _local2);
cells.push(this[(("cell_" + _local3) + "_") + _local2].id);
_local2++;
}
_local3++;
}
}
function createCompounds() {
var _local3 = _global.gameconf.map.cp;
var _local5 = _local3.length;
var _local2 = 0;
while (_local2 < _local5) {
_local3[_local2].id = _local2 + 1;
var _local4 = _global.map.getCellByPos(_local3[_local2].x, _local3[_local2].y);
_local4.addCompound(_local3[_local2]);
_local2++;
}
}
function createRailConnections() {
var _local4 = _global.gameconf.map.rc;
rc = [];
var _local5 = _local4.length;
var _local3 = 0;
while (_local3 < _local5) {
rc.push(_local4[_local3].id);
this["rc" + _local4[_local3].id] = new rr.rail.RailConnection(_local4[_local3]);
_local3++;
}
}
function createRailSegments() {
var _local4 = _global.gameconf.map.rs;
rs = [];
var _local5 = _local4.length;
var _local3 = 0;
while (_local3 < _local5) {
rs.push(_local4[_local3].id);
this["rs" + _local4[_local3].id] = new rr.rail.RailSegment(_local4[_local3]);
_local3++;
}
_local5 = rc.length;
_local3 = 0;
while (_local3 < _local5) {
this["rc" + rc[_local3]].init();
_local3++;
}
}
function createBonuses() {
var _local3 = _global.gameconf.bs;
var _local5 = _local3.length;
var _local2 = 0;
while (_local2 < _local5) {
_local3[_local2].id = _local2;
var _local4 = _global.map.getCellByPos(_local3[_local2].x, _local3[_local2].y);
_local4.addBonus(_local3[_local2]);
_local2++;
}
}
function createDrops() {
var _local3 = _global.gameconf.dp;
var _local5 = _local3.length;
var _local2 = 0;
while (_local2 < _local5) {
_local3[_local2].id = _local2;
var _local4 = _global.map.getCellByPos(_local3[_local2].x, _local3[_local2].y);
_local4.addDrop(_local3[_local2]);
_local2++;
}
}
function initMapCells() {
drawMiniMap("bg");
var _local4 = rc.length;
var _local3 = 0;
while (_local3 < _local4) {
this["rc" + rc[_local3]].checkBlocks();
_local3++;
}
_local4 = rs.length;
_local3 = 0;
while (_local3 < _local4) {
this["rs" + rs[_local3]].checkBlocks();
rr.rail.RailUtils.draw(this["rs" + rs[_local3]], "rail_bg");
_local3++;
}
_local3 = 0;
while (_local3 < _local4) {
rr.rail.RailUtils.draw(this["rs" + rs[_local3]], "rail_beam");
_local3++;
}
_local3 = 0;
while (_local3 < _local4) {
rr.rail.RailUtils.draw(this["rs" + rs[_local3]], "rail");
_local3++;
}
drawMiniMap("fg");
_local4 = cells.length;
_local3 = 0;
while (_local3 < _local4) {
var _local2 = this["cell_" + cells[_local3]];
_local2.createNeighbours();
_local2.createBackground();
if (foreground) {
_local2.createForeground();
}
_local3++;
}
map_bmp.dispose();
fg_bmp.dispose();
delete map_bmp;
delete fg_bmp;
}
function drawMiniMap(layer) {
trace("layer: " + layer);
var _local3 = new flash.geom.Matrix();
var _local4 = _global.minimap.scale;
_local3.scale(_local4, _local4);
if (layer == "bg") {
_global.minimap.map_bmp.draw(map_bmp, _local3);
}
if (layer == "fg") {
_global.minimap.map_bmp.draw(fg_bmp, _local3);
}
}
function getCell(cId) {
var _local4 = cells.length;
var _local2 = 0;
while (_local2 < _local4) {
var _local3 = this["cell_" + cells[_local2]];
if (_local3.id == cId) {
return(_local3);
}
_local2++;
}
}
function getCellByPos(x, y) {
var _local6 = cells.length;
var _local3 = 0;
while (_local3 < _local6) {
var _local2 = this["cell_" + cells[_local3]];
if ((((x >= _local2.left) && (x < _local2.right)) && (y >= _local2.top)) && (y < _local2.bottom)) {
return(_local2);
}
_local3++;
}
}
function addCompoundListeners() {
var _local3 = cells.length;
var _local2 = 0;
while (_local2 < _local3) {
this["cell_" + cells[_local2]].addCompoundListeners();
_local2++;
}
}
}
Symbol 3521 MovieClip [__Packages.rr.rail.RailUtils] Frame 0
class rr.rail.RailUtils
{
function RailUtils () {
}
static function draw(rs, element) {
if (rs.type == "line") {
drawLine(rs, element);
}
if (rs.type == "arc") {
drawArc(rs, element);
}
}
static function drawLine(rs, element) {
var _local9 = Math.PI;
var _local15 = Math.cos;
var _local14 = Math.sin;
var _local8 = flash.display.BitmapData.loadBitmap(element);
var _local12;
var _local11;
var _local10 = rr.utils.MathUtils.formatAngle(rs.ang);
var _local7 = new flash.geom.Point(_local8.width / 2, _local8.height / 2);
var _local2 = new flash.geom.Matrix();
var _local4 = 0;
while (_local4 <= rs.length) {
_local12 = _local15((_local10 * _local9) / 180) * _local4;
_local11 = (-_local14((_local10 * _local9) / 180)) * _local4;
_local2.identity();
_local2.translate(-_local7.x, -_local7.y);
_local2.rotate((rr.utils.MathUtils.formatAngle(-_local10) / 180) * _local9);
_local2.translate(rs.rcs.x + _local12, rs.rcs.y + _local11);
if (element == "rail_bg") {
_global.map.map_bmp.draw(_local8, _local2, null, "overlay");
} else {
_global.map.map_bmp.draw(_local8, _local2);
}
if (element == "rail") {
var _local6 = new flash.display.BitmapData(7, 7, false, _global.minimap.railcolor);
var _local3 = _global.minimap.scale;
_local2.identity();
_local2.scale(_local3, _local3);
_local2.translate((-_local7.x) * _local3, (-_local7.y) * _local3);
_local2.translate((rs.rcs.x + _local12) * _local3, (rs.rcs.y + _local11) * _local3);
_global.minimap.map_bmp.draw(_local6, _local2);
_local6.dispose();
}
_local4 = _local4 + _local8.width;
}
_local8.dispose();
}
static function drawArc(rs, element) {
var _local9 = Math.PI;
var _local17 = Math.cos;
var _local16 = Math.sin;
var _local10 = flash.display.BitmapData.loadBitmap(element);
var _local7 = new flash.geom.Point(_local10.width / 2, _local10.height / 2);
var _local2 = new flash.geom.Matrix();
var _local12;
var _local11;
var _local19 = rs.length / _local10.width;
var _local15 = rr.utils.MathUtils.formatAngle(rs.ang - 90);
var _local13 = new flash.geom.Point((-rs.dir) * (rs.radius * _local17((_local15 * _local9) / 180)), rs.dir * (rs.radius * _local16((_local15 * _local9) / 180)));
var _local18 = (rs.dir * 180) / ((rs.radius * _local9) / _local10.width);
var _local8;
var _local6 = 0;
while (_local6 <= _local19) {
_local8 = rr.utils.MathUtils.formatAngle(_local15 + (_local6 * _local18));
_local12 = _local13.x + ((rs.dir * rs.radius) * _local17((_local8 * _local9) / 180));
_local11 = _local13.y - ((rs.dir * rs.radius) * _local16((_local8 * _local9) / 180));
_local2.identity();
_local2.translate(-_local7.x, -_local7.y);
_local2.rotate((rr.utils.MathUtils.formatAngle((-_local8) - 90) / 180) * _local9);
_local2.translate(rs.rcs.x + _local12, rs.rcs.y + _local11);
if (element == "rail_bg") {
_global.map.map_bmp.draw(_local10, _local2, null, "overlay");
} else {
_global.map.map_bmp.draw(_local10, _local2, null);
}
if (element == "rail") {
var _local5 = new flash.display.BitmapData(7, 7, false, _global.minimap.railcolor);
var _local4 = _global.minimap.scale;
_local2.identity();
_local2.scale(_local4, _local4);
_local2.translate((-_local7.x) * _local4, (-_local7.y) * _local4);
_local2.translate((rs.rcs.x + _local12) * _local4, (rs.rcs.y + _local11) * _local4);
_global.minimap.map_bmp.draw(_local5, _local2);
_local5.dispose();
}
_local6++;
}
_local10.dispose();
}
}
Symbol 3522 MovieClip [__Packages.rr.StageCam] Frame 0
class rr.StageCam extends rr.BaseClass
{
var follow, width, height, left, x, right, top, y, bottom, minx, miny, maxx, maxy, xs, ys, xsprev, ysprev, cx, cy, cell, events, camRef, dist, xdif, ydif;
function StageCam () {
super();
}
function init() {
follow = "mouse";
width = _global.stage.width;
height = _global.stage.height;
left = x - (width / 2);
right = x + (width / 2);
top = y - (height / 2);
bottom = y + (height / 2);
minx = width / 2;
miny = height / 2;
maxx = _global.map.width - (width / 2);
maxy = _global.map.height - (height / 2);
x = _global.gameconf.map.firstrail.x;
y = _global.gameconf.map.firstrail.y;
x = ((x < minx) ? (minx) : (((x > maxx) ? (maxx) : (x))));
y = ((y < miny) ? (miny) : (((y > maxy) ? (maxy) : (y))));
xs = (ys = (xsprev = (ysprev = (cx = (cy = 0)))));
cell = _global.map.getCellByPos(x, y);
cell.isFocused = true;
events.dispatchEvent({type:"onCameraCellChange"});
cell.update();
}
function update() {
follow = "loc";
if (follow == "loc") {
camRef = _global.loc;
dist = rr.utils.MathUtils.getDistance(x, y, camRef.x, camRef.y);
xdif = camRef.x - x;
ydif = camRef.y - y;
xs = camRef.xspeed + (xdif / 100);
ys = camRef.yspeed + (ydif / 100);
}
if (follow == "mouse") {
if (_global.stage._ymouse > 480) {
xs = (ys = 0);
} else {
xdif = _global.stage._xmouse - (width / 2);
ydif = _global.stage._ymouse - (height / 2);
xs = xdif / 20;
ys = ydif / 20;
}
}
if (Math.abs(xs - xsprev) < 0.5) {
xs = xsprev;
}
if (Math.abs(ys - ysprev) < 0.5) {
ys = ysprev;
}
xsprev = xs;
ysprev = ys;
x = (((x + xs) < minx) ? (minx) : (((Math.round(x + xs) > maxx) ? (maxx) : (Math.round(x + xs)))));
y = (((y + ys) < miny) ? (miny) : (((Math.round(y + ys) > maxy) ? (maxy) : (Math.round(y + ys)))));
left = x - (width / 2);
right = x + (width / 2);
top = y - (height / 2);
bottom = y + (height / 2);
cell.checkFocus(x, y);
if (!cell.isFocused) {
cell = _global.map.getCellByPos(x, y);
cell.isFocused = true;
events.dispatchEvent({type:"onCameraCellChange"});
}
cell.update();
}
}
Symbol 3523 MovieClip [__Packages.rr.control.DamageClip] Frame 0
class rr.control.DamageClip extends rr.BaseClip
{
var _y, _height, parent, removeMovieClip;
function DamageClip () {
super();
init();
}
function init() {
_y = 19 - _height;
parent.addEventListener("onDamage", this);
parent.addEventListener("onTrainTargetDie", this);
onDamage();
}
function onDamage() {
var _local2 = Math.round(100 * (parent.damage / parent.killlevel));
rr.control.ControlUtils.setDamageColor(this, _local2);
}
function onTrainTargetDie() {
removeMovieClip();
}
}
Symbol 3524 MovieClip [__Packages.rr.control.ControlUtils] Frame 0
class rr.control.ControlUtils
{
function ControlUtils () {
}
static function setDamageColor(mc, perc) {
var _local2 = [65280, 2997504, 6859264, 10721024, 14450688, 16738048, 16732160, 16725504, 16719360, 16719360, 10027008];
var _local3 = new Color(mc);
var _local1 = (perc - (perc % 10)) / 10;
_local3.setRGB(_local2[_local1]);
}
}
Symbol 3525 MovieClip [__Packages.cr.map.MapStage] Frame 0
class cr.map.MapStage extends rr.BaseClip
{
var _visible, width, height, rsAdded, rcAdded, cpAdded, rs, rc, cp, confshow, bg_mc, createEmptyMovieClip, getNextHighestDepth, bg_bmp, rs_1, onEnterFrame, rc_1, rc_2, rc_9999, rc_10000, rs_10000, rcSel, rsSel, events;
function MapStage () {
super();
_global.stage = this;
_visible = false;
}
function init() {
width = 640;
height = 480;
rsAdded = (rcAdded = (cpAdded = 0));
rs = new Array();
rc = new Array();
cp = new Array();
confshow = false;
bg_mc = createEmptyMovieClip("bg_mc", getNextHighestDepth());
bg_bmp = new flash.display.BitmapData(width, height, false, 16777215);
bg_mc.attachBitmap(bg_bmp, bg_mc.getNextHighestDepth());
}
function startBuild() {
_global.createcontrol.load_mc._visible = false;
selectSegment(rs_1);
var _local3 = rc.length;
onEnterFrame = rr.utils.Delegate.create(this, update);
_global.railcontrol._visible = true;
_visible = true;
}
function update() {
_global.camera.update();
var _local4 = rs.length;
var _local3 = 0;
while (_local3 < _local4) {
this["rs_" + rs[_local3]].checkRender();
_local3++;
}
_local4 = rc.length;
_local3 = 0;
while (_local3 < _local4) {
this["rc_" + rc[_local3]].render();
_local3++;
}
_local4 = cp.length;
_local3 = 0;
while (_local3 < _local4) {
this["cp_" + cp[_local3]].render();
_local3++;
}
if (_global.railcontrol.snap_btn._visible) {
_global.railcontrol.snap_btn._x = _global.railcontrol.snap_btn.x - _global.camera.left;
_global.railcontrol.snap_btn._y = _global.railcontrol.snap_btn.y - _global.camera.top;
}
updateAfterEvent();
}
function addDefaultSegments() {
rc.push(1);
rc.push(2);
rc.push(9999);
rc.push(10000);
rc_1 = new cr.map.RailConnection({id:1});
rc_2 = new cr.map.RailConnection({id:2});
rc_9999 = new cr.map.RailConnection({id:9999});
rc_10000 = new cr.map.RailConnection({id:10000});
var _local4 = _global.map.firstrail;
rc_1.x = _local4.x;
rc_1.y = _local4.y;
rc_1.ang = _local4.ang;
rs.push(1);
rs_1 = new cr.map.RailSegment({id:1, cps:rc_1, cpe:rc_2, l:_local4.l, ang:_local4.ang, r:_local4.r, dir:_local4.dir});
rs_1.initDefault();
var _local3 = _global.map.lastrail;
rc_10000.x = _local3.x;
rc_10000.y = _local3.y;
rc_10000.ang = _local3.ang;
rs.push(10000);
rs_10000 = new cr.map.RailSegment({id:10000, cps:rc_10000, cpe:rc_9999, l:_local3.l, ang:_local3.ang, r:_local3.r, dir:_local3.dir});
rs_10000.initDefault();
rc_2.check();
rc_9999.check();
rsAdded = 1;
rcAdded = 2;
}
function addRailSegment(type) {
if (!rcSel) {
return(undefined);
}
if (!rcSel.possibleSegment(type)) {
return(undefined);
}
if (type == "line") {
_global.railcontrol.reset(100, null, null);
}
if (type == "arc") {
_global.railcontrol.reset(null, 100, null);
}
rsAdded++;
if (rsAdded == 10000) {
rsAdded = 10001;
}
rs.push(rsAdded);
this["rs_" + rsAdded] = new cr.map.RailSegment({id:rsAdded, type:type, cps:rcSel});
this["rs_" + rsAdded].initNew();
}
function deleteSegment() {
var _local4 = rsSel;
if ((_local4.id == 1) || (_local4.id == 10000)) {
return(undefined);
}
_global.railcontrol.snap_btn._visible = false;
selectSegment(null);
selectRailConnection(null);
_local4.remove();
var _local5 = rs.length;
var _local3 = 0;
while (_local3 < _local5) {
if (rs[_local3] == _local4.id) {
rs.splice(_local3, 1);
break;
}
_local3++;
}
delete this["rs_" + _local4.id];
events.dispatchEvent({type:"onDelete"});
}
function selectSegment(s) {
rsSel.deselect();
rsSel = s;
trace("rsSel: " + rsSel.id);
rsSel.select();
selectRailConnection(rsSel.cpe);
events.dispatchEvent({type:"onRailSegmentSelect"});
}
function addRailConnection() {
rcAdded++;
if (rcAdded == 9999) {
rcAdded = 10001;
}
rc.push(rcAdded);
this["rc_" + rcAdded] = new cr.map.RailConnection({id:rcAdded});
return(this["rc_" + rcAdded]);
}
function deleteRailConnection(c) {
c.remove();
var _local4 = rc.length;
var _local2 = 0;
while (_local2 < _local4) {
if (rc[_local2] == c.id) {
rc.splice(_local2, 1);
break;
}
_local2++;
}
delete this["rc_" + c.id];
events.dispatchEvent({type:"onDelete"});
}
function selectRailConnection(c) {
rcSel.deselect();
rcSel = c;
rcSel.select();
}
function addCompound() {
cpAdded++;
cp.push(cpAdded);
this["cp_" + cpAdded] = new cr.map.Compound(cpAdded);
}
function deleteCompound(c) {
c.remove();
var _local4 = cp.length;
var _local2 = 0;
while (_local2 < _local4) {
if (cp[_local2] == c.id) {
cp.splice(_local2, 1);
break;
}
_local2++;
}
delete this["cp_" + c.id];
}
function createLoadedMap() {
var _local4 = _global.createcontrol.confmap;
var _local5 = _local4.cp.length;
var _local3 = 0;
while (_local3 < _local5) {
cpAdded++;
cp.push(cpAdded);
this["cp_" + cpAdded] = new cr.map.Compound(cpAdded);
this["cp_" + cpAdded].x = _local4.cp[_local3].x;
this["cp_" + cpAdded].y = _local4.cp[_local3].y;
this["cp_" + cpAdded].rot = _local4.cp[_local3].rot;
_local3++;
}
addLoadedConnection(0);
}
function addLoadedConnection(idx) {
var _local4 = _global.createcontrol.confmap;
var _local3 = _local4.rc[idx];
_local3.idx = idx;
this["rc_" + _local3.id] = new cr.map.RailConnection(_local3);
rc.push(_local3.id);
rcAdded = Math.max(rcAdded, _local3.id);
this["rc_" + _local3.id].initLoaded();
}
function onConnectionLoaded(c) {
var _local3 = _global.createcontrol.confmap;
if (c.idx >= (_local3.rc.length - 1)) {
addLoadedSegment(0);
} else {
var _local5 = Math.round((50 * c.idx) / (_local3.rc.length - 1));
_global.createcontrol.setLoad(_local5, "creating railconnections");
rr.utils.Delegate.callDelayed(this, addLoadedConnection, 10, c.idx + 1);
}
}
function addLoadedSegment(idx) {
var _local4 = _global.createcontrol.confmap;
var _local3 = _local4.rs[idx];
_local3.idx = idx;
this["rs_" + _local3.id] = new cr.map.RailSegment(_local3);
rs.push(_local3.id);
rsAdded = Math.max(rsAdded, _local3.id);
this["rs_" + _local3.id].initLoaded();
}
function onSegmentLoaded(s) {
var _local3 = _global.createcontrol.confmap;
if (s.idx >= (_local3.rs.length - 1)) {
startBuild();
} else {
var _local5 = Math.round((50 * s.idx) / (_local3.rs.length - 1));
_global.createcontrol.setLoad(_local5, "creating railsegments");
rr.utils.Delegate.callDelayed(this, addLoadedSegment, 10, s.idx + 1);
}
}
}
Symbol 3526 MovieClip [__Packages.cr.map.RailSegment] Frame 0
class cr.map.RailSegment extends rr.BaseClass
{
var initObj, createtype, id, cps, cpe, type, length, radius, dir, idx, endout, toggled, ang, initialized, mm_mov, movx, movs, movy, mov, cos, pi, sin, selected, mov_bmp, mm_mov_bmp;
function RailSegment (iObj) {
super();
initObj = iObj;
}
function initDefault() {
createtype = "default";
id = initObj.id;
cps = initObj.cps;
cpe = initObj.cpe;
type = (initObj.r ? "arc" : "line");
length = initObj.l;
if (initObj.r) {
radius = initObj.r;
}
if (initObj.dir) {
dir = initObj.dir;
}
cps.addSegment(this);
cpe.addSegment(this);
initShared();
updateMov();
}
function initNew() {
createtype = "new";
id = initObj.id;
type = initObj.type;
cps = initObj.cps;
length = _global.railcontrol.length;
dir = _global.railcontrol.direction;
radius = _global.railcontrol.radius;
cpe = _global.stage.addRailConnection();
cps.addSegment(this);
cpe.addSegment(this);
initShared();
updateMov();
_global.stage.selectSegment(this);
}
function initLoaded() {
createtype = "loaded";
id = initObj.id;
idx = initObj.idx;
type = (initObj.r ? "arc" : "line");
cps = _global.stage["rc_" + initObj.s];
cpe = _global.stage["rc_" + initObj.e];
endout = initObj.eo;
toggled = initObj.t;
ang = (toggled ? (cps.ang + 180) : (cps.ang));
if (type == "line") {
length = rr.utils.MathUtils.getDistance(cps.x, cps.y, cpe.x, cpe.y);
}
if (type == "arc") {
radius = initObj.r;
dir = initObj.d;
length = initObj.l;
}
cps.addLoadedSegment(this);
cpe.addLoadedSegment(this);
initShared();
cr.map.RailUtils.draw(this);
}
function onDrawComplete() {
checkSelected();
if (!initialized) {
initialized = true;
if (createtype == "loaded") {
_global.stage.onSegmentLoaded(this);
}
}
}
function initShared() {
mm_mov = _global.minimap.createObjectClip(this);
_global.railcontrol.addEventListener("onLengthChanged", this);
_global.railcontrol.addEventListener("onInOutChanged", this);
if (type == "arc") {
_global.railcontrol.addEventListener("onRadiusChanged", this);
_global.railcontrol.addEventListener("onDirectionChanged", this);
}
}
function checkRender() {
if ((((movx > _global.camera.right) || ((movx + movs) < _global.camera.left)) || (movy > _global.camera.bottom)) || ((movy + movs) < _global.camera.top)) {
if (mov) {
mov._visible = false;
}
} else {
render();
}
}
function render() {
if (!mov) {
mov = _global.stage.createEmptyMovieClip("rsmov" + id, 1000 + id);
Mouse.addListener(mov);
mov.onMouseDown = rr.utils.Delegate.create(this, onMovDown);
cr.map.RailUtils.draw(this);
}
mov._x = movx - _global.camera.left;
mov._y = movy - _global.camera.top;
mov._visible = true;
}
function updateMov() {
setEndConnection();
cr.map.RailUtils.draw(this);
}
function setEndConnection() {
ang = (toggled ? (cps.ang + 180) : (cps.ang));
if (type == "line") {
var _local5 = cps.x + (cos((rr.utils.MathUtils.formatAngle(ang) * pi) / 180) * length);
var _local4 = cps.y - (sin((rr.utils.MathUtils.formatAngle(ang) * pi) / 180) * length);
var _local6 = ang;
cpe.update(_local5, _local4, _local6);
}
if (type == "arc") {
var _local3 = new flash.geom.Point(rr.utils.MathUtils.formatDecimals((-dir) * (radius * cos((rr.utils.MathUtils.formatAngle(ang - 90) * pi) / 180)), 2), rr.utils.MathUtils.formatDecimals(dir * (radius * sin((rr.utils.MathUtils.formatAngle(ang - 90) * pi) / 180)), 2));
var _local7 = (rr.utils.MathUtils.formatAngle(ang - 90) * pi) / 180;
var _local2 = _local7 - (((-dir) * length) / radius);
var _local5 = (cps.x + _local3.x) + ((dir * radius) * cos(_local2));
var _local4 = (cps.y + _local3.y) - ((dir * radius) * sin(_local2));
var _local6 = rr.utils.MathUtils.formatAngle((_local2 / (pi / 180)) + 90);
cpe.update(_local5, _local4, _local6);
}
}
function onLengthChanged() {
if (!selected) {
return(undefined);
}
if (length == _global.railcontrol.length) {
return(undefined);
}
if (cpe.blocked) {
return(undefined);
}
length = _global.railcontrol.length;
updateMov();
}
function onRadiusChanged() {
if (!selected) {
return(undefined);
}
if (radius == _global.railcontrol.radius) {
return(undefined);
}
if (cpe.blocked) {
return(undefined);
}
radius = _global.railcontrol.radius;
updateMov();
}
function onDirectionChanged() {
if (!selected) {
return(undefined);
}
if (cpe.blocked) {
return(undefined);
}
dir = _global.railcontrol.direction;
updateMov();
}
function onInOutChanged() {
if (!selected) {
return(undefined);
}
if (cpe.blocked) {
return(undefined);
}
cps.toggleSegment(this);
updateMov();
}
function onBlockChange(evtObj) {
if (evtObj.target == cps) {
cpe.checkBlock();
} else {
cps.checkBlock();
}
}
function select() {
selected = true;
_global.railcontrol.reset(length, radius, dir);
checkSelected();
}
function deselect() {
selected = false;
checkSelected();
}
function checkSelected() {
var _local2 = new flash.geom.ColorTransform();
if (selected) {
mov.swapDepths(10000 + id);
mov._alpha = 100;
_local2.redMultiplier = 2;
} else {
mov.swapDepths(1000 + id);
mov._alpha = 20;
_local2.redMultiplier = 1;
}
var _local3 = new flash.geom.Transform(mov);
_local3.colorTransform = _local2;
}
function remove() {
_global.railcontrol.removeEventListener("onLengthChanged", this);
_global.railcontrol.removeEventListener("onRadiusChanged", this);
_global.railcontrol.removeEventListener("onDirectionChanged", this);
Mouse.removeListener(mov);
cps.removeSegment(this);
cpe.removeSegment(this);
mov_bmp.dispose();
mm_mov_bmp.dispose();
delete mov_bmp;
delete mm_mov_bmp;
mov.removeMovieClip();
mm_mov.removeMovieClip();
}
function onMovDown() {
var _local3 = new flash.geom.Point(_xmouse, _ymouse);
if (_local3.y > _global.stage.height) {
return(undefined);
}
mov.globalToLocal(_local3);
if (mov_bmp.getPixel32(_local3.x, _local3.y) != 0) {
_global.stage.selectSegment(this);
}
}
function getPoint(d) {
if (d > length) {
d = length;
}
if (d < 0) {
d = 0;
}
if (type == "line") {
var _local5 = rr.utils.MathUtils.formatAngle(ang);
var _local9 = cps.x + (cos((_local5 * pi) / 180) * d);
var _local8 = cps.y - (sin((_local5 * pi) / 180) * d);
var _local7 = -_local5;
return({x:_local9, y:_local8, rot:_local7});
}
if (type == "arc") {
var _local5 = rr.utils.MathUtils.formatAngle(ang - 90);
var _local4 = new flash.geom.Point((-dir) * (radius * cos((_local5 * pi) / 180)), dir * (radius * sin((_local5 * pi) / 180)));
var _local6 = (rr.utils.MathUtils.formatAngle(ang - 90) * pi) / 180;
var _local3 = _local6 - (((-dir) * d) / radius);
var _local9 = (cps.x + _local4.x) + ((dir * radius) * cos(_local3));
var _local8 = (cps.y + _local4.y) - ((dir * radius) * sin(_local3));
var _local7 = -rr.utils.MathUtils.formatAngle((_local3 / (pi / 180)) + 90);
return({x:_local9, y:_local8, rot:_local7});
}
}
}
Symbol 3527 MovieClip [__Packages.cr.map.RailConnection] Frame 0
class cr.map.RailConnection extends rr.BaseClass
{
var initObj, id, linecount, ins, outs, blocked, mov, isopen, rswitch, addEventListener, idx, x, y, ang, possibleSnap, events, rsstart, selected, snapdir, removeEventListener;
function RailConnection (iObj) {
super();
initObj = iObj;
init();
}
function init() {
id = initObj.id;
trace("rc id: " + id);
linecount = 0;
ins = [];
outs = [];
if ((id == 1) || (id == 10000)) {
blocked = true;
mov._visible = false;
return(undefined);
}
mov = _global.stage.attachMovie("RailConnection", "rcmov" + id, 30000 + id);
mov._visible = false;
isopen = true;
linecount = 0;
ins = [];
outs = [];
rswitch = new cr.map.RailSwitchHolder(this);
var _local5 = _global.stage.rc.length;
var _local4 = 0;
while (_local4 < _local5) {
var _local3 = _global.stage["rc_" + _global.stage.rc[_local4]];
if (((_local3.id != 1) && (_local3.id != 10000)) && (_local3 != this)) {
_local3.addEventListener("onConnectionUpdate", this);
addEventListener("onConnectionUpdate", _local3);
}
_local4++;
}
_global.railcontrol.addEventListener("onSnap", this);
_global.stage.addEventListener("onDelete", this);
check();
}
function initLoaded() {
idx = initObj.idx;
x = initObj.x;
y = initObj.y;
ang = initObj.a;
possibleSnap = undefined;
if (initObj.s) {
rswitch.x = initObj.s.x;
rswitch.y = initObj.s.y;
var _local3 = 0;
while (_local3 <= 7) {
if (initObj.s.p[_local3] != -1) {
rswitch.positions[_local3].rsid = initObj.s.p[_local3];
}
_local3++;
}
rswitch.hidden = false;
}
_global.stage.onConnectionLoaded(this);
}
function update(px, py, pang) {
x = Math.round(px);
y = Math.round(py);
ang = Math.round(pang);
possibleSnap = undefined;
check();
events.dispatchEvent({type:"updateMov"});
events.dispatchEvent({type:"onConnectionUpdate", target:this});
}
function check() {
checkBlock();
checkMov();
rswitch.onToggleSwitch();
}
function possibleSegment(type) {
if ((type == "line") && (linecount > 1)) {
return(false);
}
if ((ins.length + outs.length) > 5) {
return(false);
}
return(true);
}
function addSegment(rs) {
if ((rs.cpe == this) && (!rsstart)) {
rsstart = rs;
ins.push(rs);
if (rs.type == "line") {
linecount++;
}
addEventListener("onBlockChange", rs);
return(undefined);
}
if (rs.type == "line") {
if (!hasLineOut()) {
outs.push(rs);
} else {
ins.push(rs);
rs.toggled = true;
}
linecount++;
}
if (rs.type == "arc") {
if (outs.length < 3) {
outs.push(rs);
} else {
ins.push(rs);
rs.toggled = true;
}
}
addEventListener("updateMov", rs);
addEventListener("onBlockChange", rs);
}
function addLoadedSegment(rs) {
if (rs.type == "line") {
linecount++;
}
if (rs.cpe == this) {
if (!rsstart) {
rsstart = rs;
}
if (rs.endout) {
outs.push(rs);
} else {
ins.push(rs);
}
}
if (rs.cps == this) {
if (rs.toggled) {
ins.push(rs);
} else {
outs.push(rs);
}
addEventListener("updateMov", rs);
}
addEventListener("onBlockChange", rs);
}
function removeSegment(rs) {
spliceSegment(rs, ins);
spliceSegment(rs, outs);
if (rs.type == "line") {
linecount--;
}
if ((ins.length + outs.length) == 0) {
_global.stage.deleteRailConnection(this);
}
check();
}
function spliceSegment(rs, arr) {
var _local3 = arr.length;
var _local1 = 0;
while (_local1 < _local3) {
if (arr[_local1] == rs) {
arr.splice(_local1, 1);
break;
}
_local1++;
}
}
function toggleSegment(rs) {
if ((rs.type == "line") && (linecount > 1)) {
return(undefined);
}
if (rs.toggled && (outs.length >= 3)) {
return(undefined);
}
if ((!rs.toggled) && (ins.length >= 3)) {
return(undefined);
}
if (rs.toggled) {
spliceSegment(rs, ins);
outs.push(rs);
} else {
spliceSegment(rs, outs);
ins.push(rs);
}
rs.toggled = !rs.toggled;
check();
}
function render() {
if ((id == 1) || (id == 10000)) {
return(undefined);
}
if (((x + mov._width) - _global.camera.left) < 0) {
mov._visible = false;
} else if (((x - mov._width) - _global.camera.left) > _global.stage.width) {
mov._visible = false;
} else if (((y + mov._height) - _global.camera.top) < 0) {
mov._visible = false;
} else if (((y - mov._height) - _global.camera.top) > _global.stage.height) {
mov._visible = false;
} else {
mov._visible = true;
}
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
rswitch.render();
}
function select() {
selected = true;
check();
}
function deselect() {
selected = false;
check();
}
function setBlock(val) {
if (blocked == val) {
return(undefined);
}
blocked = val;
events.dispatchEvent({type:"onBlockChange", target:this});
check();
}
function checkBlock() {
if ((outs.length + ins.length) > 2) {
setBlock(true);
return(undefined);
}
var _local3 = ins.length;
var _local2 = 0;
while (_local2 < _local3) {
if (ins[_local2] != rsstart) {
if (!ins[_local2].cpe.isopen) {
setBlock(true);
return(undefined);
}
}
_local2++;
}
_local3 = outs.length;
_local2 = 0;
while (_local2 < _local3) {
if (outs[_local2] != rsstart) {
if (!outs[_local2].cpe.isopen) {
setBlock(true);
return(undefined);
}
}
_local2++;
}
setBlock(false);
}
function checkMov() {
if (blocked) {
isopen = false;
mov.gotoAndStop("blocked");
} else if ((outs.length == 0) || (ins.length == 0)) {
isopen = true;
mov.gotoAndStop("open");
} else {
isopen = false;
mov.gotoAndStop("closed");
}
if (selected) {
possibleSnap = undefined;
mov._xscale = (mov._yscale = 200);
} else if (possibleSnap) {
mov._xscale = (mov._yscale = 400);
} else {
mov._xscale = (mov._yscale = 100);
}
}
function onConnectionUpdate(evtObj) {
var _local3 = evtObj.target;
if (!_local3.isopen) {
possibleSnap = undefined;
return(undefined);
}
var _local4;
if (rr.utils.MathUtils.getDistance(x, y, _local3.x, _local3.y) < 4) {
if (ins.length < 3) {
var _local6 = rr.utils.MathUtils.angDiff(ang, _local3.ang);
if (_local6 <= 4) {
_local4 = "in";
}
}
if (outs.length < 3) {
var _local7 = rr.utils.MathUtils.angDiff(ang, _local3.ang - 180);
if (_local7 <= 4) {
_local4 = "out";
}
}
}
if (!_local4) {
if (possibleSnap) {
possibleSnap = undefined;
_global.railcontrol.snap_btn._visible = false;
}
} else {
possibleSnap = _local3;
snapdir = _local4;
var _local5 = {x:x - 40, y:y + 30};
_global.railcontrol.snap_btn.x = _local5.x;
_global.railcontrol.snap_btn.y = _local5.y;
_global.railcontrol.snap_btn._visible = true;
}
check();
}
function onSnap() {
if (!possibleSnap) {
return(undefined);
}
var _local3 = possibleSnap.rsstart;
if (snapdir == "in") {
ins.push(_local3);
_local3.endout = false;
} else {
outs.push(_local3);
_local3.endout = true;
}
_local3.cpe = this;
if (_local3.type == "line") {
linecount++;
}
setBlock(true);
_global.stage.deleteRailConnection(possibleSnap);
possibleSnap = undefined;
_global.railcontrol.snap_btn._visible = false;
_global.stage.selectRailConnection(this);
events.dispatchEvent({type:"onConnectionUpdate", target:this});
}
function remove() {
rswitch.remove();
_global.railcontrol.removeEventListener("onSnap", this);
var _local5 = _global.stage.rc.length;
var _local4 = 0;
while (_local4 < _local5) {
var _local3 = _global.stage["rc_" + _global.stage.rc[_local4]];
if (_local3 != this) {
_local3.removeEventListener("onConnectionUpdate", this);
removeEventListener("onConnectionUpdate", _local3);
}
_local4++;
}
mov.removeMovieClip();
}
function onDelete() {
onConnectionUpdate();
check();
}
function hasLineOut() {
var _local3 = outs.length;
var _local2 = 0;
while (_local2 < _local3) {
if (outs[_local2].type == "line") {
return(true);
}
_local2++;
}
return(false);
}
}
Symbol 3528 MovieClip [__Packages.cr.map.RailSwitchHolder] Frame 0
class cr.map.RailSwitchHolder extends rr.BaseClass
{
var parent, pos, hidden, dragging, positions, mov, x, y, cos, pi, sin;
function RailSwitchHolder (rc) {
super();
parent = rc;
init();
}
function init() {
pos = 0;
hidden = true;
dragging = false;
positions = [{code:"n", rsid:null}, {code:"ne", rsid:null}, {code:"e", rsid:null}, {code:"se", rsid:null}, {code:"s", rsid:null}, {code:"sw", rsid:null}, {code:"w", rsid:null}, {code:"nw", rsid:null}];
mov = _global.stage.attachMovie("RailSwitchHolder", "rsh" + parent.id, 4000 + parent.id, {parent:this});
mov._visible = false;
mov.handle_mc.onPress = rr.utils.Delegate.create(this, startDrag);
mov.handle_mc.onRelease = (mov.handle_mc.onReleaseOutside = rr.utils.Delegate.create(this, stopDrag));
_global.stage.addEventListener("onRailSegmentSelect", this);
_global.railcontrol.addEventListener("onToggleSwitch", this);
parent.addEventListener("onConnectionUpdate", this);
onToggleSwitch();
}
function show() {
if ((parent.ins.length <= 1) && (parent.outs.length <= 1)) {
return(undefined);
}
hidden = false;
}
function hide() {
mov._visible = false;
hidden = true;
}
function startDrag() {
mov.switch_mc.gotoAndStop("over");
dragging = true;
mov.startDrag();
}
function stopDrag() {
mov.switch_mc.gotoAndStop("out");
dragging = false;
mov.stopDrag();
x = Math.round(mov._x + _global.camera.left);
y = Math.round(mov._y + _global.camera.top);
}
function onConnectionUpdate() {
x = Math.round(parent.x + (cos((rr.utils.MathUtils.formatAngle(parent.ang + 90) * pi) / 180) * 40));
y = Math.round(parent.y - (sin((rr.utils.MathUtils.formatAngle(parent.ang + 90) * pi) / 180) * 40));
}
function onRailSegmentSelect() {
var _local7;
var _local4 = _global.stage.rsSel;
var _local8 = (_local4.cps == parent) || (_local4.cpe == parent);
if (!_local8) {
_local7 = false;
} else {
var _local5;
var _local6 = parent.ins.length;
var _local3 = 0;
while (_local3 < _local6) {
if (parent.ins[_local3] == _local4) {
_local5 = true;
break;
}
_local3++;
}
if (_local5 && (parent.ins.length > 1)) {
_local7 = true;
} else if ((!_local5) && (parent.outs.length > 1)) {
_local7 = true;
} else {
_local7 = false;
}
}
if (_local7) {
setSelectionDir();
} else {
var _local3 = 0;
while (_local3 <= 7) {
mov.switch_mc[positions[_local3].code + "_mc"]._visible = false;
_local3++;
}
}
}
function setSelectionDir() {
var _local3 = 0;
while (_local3 <= 7) {
mov.switch_mc[positions[_local3].code + "_mc"]._visible = true;
if (positions[_local3].rsid == _global.stage.rsSel.id) {
mov.switch_mc[positions[_local3].code + "_mc"].gotoAndStop("on");
} else {
mov.switch_mc[positions[_local3].code + "_mc"].gotoAndStop("off");
}
_local3++;
}
}
function setDirection(dir) {
var _local4 = _global.stage.rsSel;
var _local3 = 0;
while (_local3 <= 7) {
if (positions[_local3].code == dir) {
positions[_local3].rsid = ((positions[_local3].rsid == _local4.id) ? null : (_local4.id));
break;
}
_local3++;
}
setSelectionDir();
}
function onToggleSwitch() {
hide();
if (_global.railcontrol.showswitch) {
show();
} else {
hide();
}
onRailSegmentSelect();
}
function render() {
if (x == undefined) {
onConnectionUpdate();
}
if (hidden || (dragging)) {
return(undefined);
}
if (((x + mov._width) - _global.camera.left) < 0) {
mov._visible = false;
} else if (((x - mov._width) - _global.camera.left) > _global.stage.width) {
mov._visible = false;
} else if (((y + mov._height) - _global.camera.top) < 0) {
mov._visible = false;
} else if (((y - mov._height) - _global.camera.top) > _global.stage.height) {
mov._visible = false;
} else {
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov._visible = true;
}
}
function remove() {
_global.stage.removeEventListener("onRailSegmentSelect", this);
_global.railcontrol.removeEventListener("onToggleSwitch", this);
parent.removeEventListener("onConnectionUpdate", this);
mov.removeMovieClip();
}
}
Symbol 3529 MovieClip [__Packages.cr.map.RailUtils] Frame 0
class cr.map.RailUtils
{
function RailUtils () {
}
static function draw(rs) {
if (rs.mov) {
if (rs.type == "line") {
drawLine(rs);
}
if (rs.type == "arc") {
drawArc(rs);
}
} else {
if (rs.type == "line") {
setLine(rs);
}
if (rs.type == "arc") {
setArc(rs);
}
}
}
static function drawLine(rs) {
var _local12 = Math.PI;
var _local21 = Math.cos;
var _local23 = Math.acos;
var _local20 = Math.sin;
var _local25 = Math.asin;
var _local24 = Math.atan2;
var _local6 = 10 + (rs.length * 2);
var _local17 = new flash.display.BitmapData(_local6, _local6, true, 0);
var _local16 = new flash.display.BitmapData(_local6, _local6, true, 0);
var _local14 = flash.display.BitmapData.loadBitmap("rail");
var _local18 = flash.display.BitmapData.loadBitmap("railcreate_bg");
var _local3 = _global.minimap.scale;
var _local15 = new flash.display.BitmapData(_local6 * _local3, _local6 * _local3, true, 0);
var _local19 = new flash.display.BitmapData(7, 7, false, _global.minimap.railcolor);
var _local9;
var _local7;
var _local13 = rr.utils.MathUtils.formatAngle(rs.ang);
var _local4 = new flash.geom.Point(_local14.width / 2, _local14.height / 2);
var _local2 = new flash.geom.Matrix();
var _local11;
var _local10;
var _local5 = 0;
while (_local5 < rs.length) {
_local9 = _local21((_local13 * _local12) / 180) * _local5;
_local7 = (-_local20((_local13 * _local12) / 180)) * _local5;
_local9 = rr.utils.MathUtils.formatDecimals(_local9, 2);
_local7 = rr.utils.MathUtils.formatDecimals(_local7, 2);
_local11 = ((_local6 / 2) + _local9) + _local4.x;
_local10 = ((_local6 / 2) + _local7) + _local4.y;
_local2.identity();
_local2.translate(-_local4.x, -_local4.y);
_local2.rotate((rr.utils.MathUtils.formatAngle(-_local13) / 180) * _local12);
_local2.translate(_local11, _local10);
_local17.draw(_local14, _local2);
_local16.draw(_local18, _local2);
_local2.identity();
_local2.scale(_local3, _local3);
_local2.translate((-_local4.x) * _local3, (-_local4.y) * _local3);
_local2.translate(_local11 * _local3, _local10 * _local3);
_local15.draw(_local19, _local2);
_local5 = _local5 + _local14.width;
}
var _local22 = new flash.geom.Rectangle(0, 0, _local6, _local6);
rs.mov_bmp = new flash.display.BitmapData(_local6, _local6, true, 0);
rs.mov.attachBitmap(rs.mov_bmp, 10);
rs.mov_bmp.copyPixels(_local16, _local22, new flash.geom.Point(0, 0), null, null, true);
rs.mov_bmp.copyPixels(_local17, _local22, new flash.geom.Point(0, 0), null, null, true);
rs.movx = (rs.cps.x - _local11) + _local9;
rs.movy = (rs.cps.y - _local10) + _local7;
rs.movs = _local6;
_local22 = new flash.geom.Rectangle(0, 0, _local6 * _local3, _local6 * _local3);
rs.mm_mov_bmp = new flash.display.BitmapData(_local6 * _local3, _local6 * _local3, true, 0);
rs.mm_mov.attachBitmap(rs.mm_mov_bmp, 10);
rs.mm_mov_bmp.copyPixels(_local15, _local22, new flash.geom.Point(0, 0), null, null, true);
rs.mm_mov._x = _local3 * ((rs.cps.x - _local11) + _local9);
rs.mm_mov._y = (_local3 * ((rs.cps.y - _local10) + _local7)) + _global.minimap.map_mc._y;
_local17.dispose();
_local14.dispose();
_local16.dispose();
_local18.dispose();
_local19.dispose();
_local15.dispose();
rs.onDrawComplete();
}
static function setLine(rs) {
var _local12 = Math.PI;
var _local18 = Math.cos;
var _local22 = Math.acos;
var _local17 = Math.sin;
var _local24 = Math.asin;
var _local23 = Math.atan2;
var _local9 = 10 + (rs.length * 2);
var _local19 = flash.display.BitmapData.loadBitmap("rail");
var _local16 = _local19.width;
var _local20 = _local19.height;
_local19.dispose();
var _local7 = new flash.geom.Point(_local16 / 2, _local20 / 2);
var _local2 = _global.minimap.scale;
var _local14 = new flash.display.BitmapData(_local9 * _local2, _local9 * _local2, true, 0);
var _local15 = new flash.display.BitmapData(7, 7, false, _global.minimap.railcolor);
var _local4 = new flash.geom.Matrix();
var _local6;
var _local5;
var _local13 = rr.utils.MathUtils.formatAngle(rs.ang);
var _local11;
var _local10;
var _local3 = 0;
while (_local3 < rs.length) {
_local6 = _local18((_local13 * _local12) / 180) * _local3;
_local5 = (-_local17((_local13 * _local12) / 180)) * _local3;
_local6 = rr.utils.MathUtils.formatDecimals(_local6, 2);
_local5 = rr.utils.MathUtils.formatDecimals(_local5, 2);
_local11 = ((_local9 / 2) + _local6) + _local7.x;
_local10 = ((_local9 / 2) + _local5) + _local7.y;
_local4.identity();
_local4.scale(_local2, _local2);
_local4.translate((-_local7.x) * _local2, (-_local7.y) * _local2);
_local4.translate(_local11 * _local2, _local10 * _local2);
_local14.draw(_local15, _local4);
_local3 = _local3 + _local16;
}
rs.movx = (rs.cps.x - _local11) + _local6;
rs.movy = (rs.cps.y - _local10) + _local5;
rs.movs = _local9;
var _local21 = new flash.geom.Rectangle(0, 0, _local9 * _local2, _local9 * _local2);
rs.mm_mov_bmp = new flash.display.BitmapData(_local9 * _local2, _local9 * _local2, true, 0);
rs.mm_mov.attachBitmap(rs.mm_mov_bmp, 10);
rs.mm_mov_bmp.copyPixels(_local14, _local21, new flash.geom.Point(0, 0), null, null, true);
rs.mm_mov._x = _local2 * ((rs.cps.x - _local11) + _local6);
rs.mm_mov._y = (_local2 * ((rs.cps.y - _local10) + _local5)) + _global.minimap.map_mc._y;
_local15.dispose();
_local14.dispose();
rs.onDrawComplete();
}
static function drawArc(rs) {
var _local12 = Math.PI;
var _local23 = Math.cos;
var _local27 = Math.acos;
var _local22 = Math.sin;
var _local29 = Math.asin;
var _local28 = Math.atan2;
var _local7 = 20 + (rs.radius * 4);
var _local18 = new flash.display.BitmapData(_local7, _local7, true, 0);
var _local17 = new flash.display.BitmapData(_local7, _local7, true, 0);
var _local15 = flash.display.BitmapData.loadBitmap("rail");
var _local19 = flash.display.BitmapData.loadBitmap("railcreate_bg");
var _local4 = _global.minimap.scale;
var _local16 = new flash.display.BitmapData(_local7 * _local4, _local7 * _local4, true, 0);
var _local21 = new flash.display.BitmapData(7, 7, false, _global.minimap.railcolor);
var _local5 = new flash.geom.Point(_local15.width / 2, _local15.height / 2);
var _local2 = new flash.geom.Matrix();
var _local9;
var _local8;
var _local25 = rs.length / _local15.width;
var _local20 = rr.utils.MathUtils.formatAngle(rs.ang - 90);
var _local10 = new flash.geom.Point(rr.utils.MathUtils.formatDecimals((-rs.dir) * (rs.radius * _local23((_local20 * _local12) / 180)), 2), rr.utils.MathUtils.formatDecimals(rs.dir * (rs.radius * _local22((_local20 * _local12) / 180)), 2));
var _local24 = (rs.dir * 180) / ((rs.radius * _local12) / _local15.width);
var _local11;
var _local14;
var _local13;
var _local6 = 0;
while (_local6 < _local25) {
_local11 = rr.utils.MathUtils.formatAngle(_local20 + (_local6 * _local24));
_local9 = _local10.x + ((rs.dir * rs.radius) * _local23((_local11 * _local12) / 180));
_local8 = _local10.y - ((rs.dir * rs.radius) * _local22((_local11 * _local12) / 180));
_local9 = rr.utils.MathUtils.formatDecimals(_local9, 2);
_local8 = rr.utils.MathUtils.formatDecimals(_local8, 2);
_local14 = (((_local7 / 2) + _local9) + _local5.x) - _local10.x;
_local13 = (((_local7 / 2) + _local8) + _local5.y) - _local10.y;
_local2.identity();
_local2.translate(-_local5.x, -_local5.y);
_local2.rotate((rr.utils.MathUtils.formatAngle((-_local11) - 90) / 180) * _local12);
_local2.translate(_local14, _local13);
_local18.draw(_local15, _local2);
_local17.draw(_local19, _local2);
_local2.identity();
_local2.scale(_local4, _local4);
_local2.translate((-_local5.x) * _local4, (-_local5.y) * _local4);
_local2.translate(_local14 * _local4, _local13 * _local4);
_local16.draw(_local21, _local2);
_local6++;
}
var _local26 = new flash.geom.Rectangle(0, 0, _local7, _local7);
rs.mov_bmp = new flash.display.BitmapData(_local7, _local7, true, 0);
rs.mov.attachBitmap(rs.mov_bmp, 10);
rs.mov_bmp.copyPixels(_local17, _local26, new flash.geom.Point(0, 0), null, null, true);
rs.mov_bmp.copyPixels(_local18, _local26, new flash.geom.Point(0, 0), null, null, true);
rs.movx = (rs.cps.x - _local14) + _local9;
rs.movy = (rs.cps.y - _local13) + _local8;
rs.movs = _local7;
_local26 = new flash.geom.Rectangle(0, 0, _local7 * _local4, _local7 * _local4);
rs.mm_mov_bmp = new flash.display.BitmapData(_local7 * _local4, _local7 * _local4, true, 0);
rs.mm_mov.attachBitmap(rs.mm_mov_bmp, 10);
rs.mm_mov_bmp.copyPixels(_local16, _local26, new flash.geom.Point(0, 0), null, null, true);
rs.mm_mov._x = _local4 * ((rs.cps.x - _local14) + _local9);
rs.mm_mov._y = (_local4 * ((rs.cps.y - _local13) + _local8)) + _global.minimap.map_mc._y;
_local18.dispose();
_local15.dispose();
_local17.dispose();
_local19.dispose();
_local21.dispose();
_local16.dispose();
rs.onDrawComplete();
}
static function setArc(rs) {
var _local12 = Math.PI;
var _local19 = Math.cos;
var _local26 = Math.acos;
var _local18 = Math.sin;
var _local28 = Math.asin;
var _local27 = Math.atan2;
var _local10 = 20 + (rs.radius * 4);
var _local22 = flash.display.BitmapData.loadBitmap("rail");
var _local23 = _local22.width;
var _local24 = _local22.height;
_local22.dispose();
var _local9 = new flash.geom.Point(_local23 / 2, _local24 / 2);
var _local3 = _global.minimap.scale;
var _local15 = new flash.display.BitmapData(_local10 * _local3, _local10 * _local3, true, 0);
var _local17 = new flash.display.BitmapData(7, 7, false, _global.minimap.railcolor);
var _local4 = new flash.geom.Matrix();
var _local7;
var _local6;
var _local21 = rs.length / _local23;
var _local16 = rr.utils.MathUtils.formatAngle(rs.ang - 90);
var _local8 = new flash.geom.Point(rr.utils.MathUtils.formatDecimals((-rs.dir) * (rs.radius * _local19((_local16 * _local12) / 180)), 2), rr.utils.MathUtils.formatDecimals(rs.dir * (rs.radius * _local18((_local16 * _local12) / 180)), 2));
var _local20 = (rs.dir * 180) / ((rs.radius * _local12) / _local23);
var _local11;
var _local14;
var _local13;
var _local5 = 0;
while (_local5 < _local21) {
_local11 = rr.utils.MathUtils.formatAngle(_local16 + (_local5 * _local20));
_local7 = _local8.x + ((rs.dir * rs.radius) * _local19((_local11 * _local12) / 180));
_local6 = _local8.y - ((rs.dir * rs.radius) * _local18((_local11 * _local12) / 180));
_local7 = rr.utils.MathUtils.formatDecimals(_local7, 2);
_local6 = rr.utils.MathUtils.formatDecimals(_local6, 2);
_local14 = (((_local10 / 2) + _local7) + _local9.x) - _local8.x;
_local13 = (((_local10 / 2) + _local6) + _local9.y) - _local8.y;
_local4.identity();
_local4.scale(_local3, _local3);
_local4.translate((-_local9.x) * _local3, (-_local9.y) * _local3);
_local4.translate(_local14 * _local3, _local13 * _local3);
_local15.draw(_local17, _local4);
_local5++;
}
rs.movx = (rs.cps.x - _local14) + _local7;
rs.movy = (rs.cps.y - _local13) + _local6;
rs.movs = _local10;
var _local25 = new flash.geom.Rectangle(0, 0, _local10 * _local3, _local10 * _local3);
rs.mm_mov_bmp = new flash.display.BitmapData(_local10 * _local3, _local10 * _local3, true, 0);
rs.mm_mov.attachBitmap(rs.mm_mov_bmp, 10);
rs.mm_mov_bmp.copyPixels(_local15, _local25, new flash.geom.Point(0, 0), null, null, true);
rs.mm_mov._x = _local3 * ((rs.cps.x - _local14) + _local7);
rs.mm_mov._y = (_local3 * ((rs.cps.y - _local13) + _local6)) + _global.minimap.map_mc._y;
_local17.dispose();
_local15.dispose();
rs.onDrawComplete();
}
}
Symbol 3530 MovieClip [__Packages.cr.map.Compound] Frame 0
class cr.map.Compound extends rr.BaseClass
{
var id, x, y, type, rot, mov, mm_mov, isdragging;
function Compound (pid) {
super();
id = pid;
init();
}
function init() {
x = Math.round(_global.camera.x);
y = Math.round(_global.camera.y);
type = _global.map.maptype;
rot = 0;
mov = _global.stage.attachMovie("CompoundHolder", "comp" + id, 100 + id);
mov.gotoAndStop(type);
mov.press_btn.onPress = rr.utils.Delegate.create(this, drag);
mov.press_btn.onRelease = (mov.press_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopdrag));
mov.rot_btn.onPress = rr.utils.Delegate.create(this, startRotate);
mov.rot_btn.onRelease = (mov.rot_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopRotate));
mov.delete_btn.onPress = rr.utils.Delegate.create(_global.stage, _global.stage.deleteCompound, this);
mm_mov = _global.minimap.createObjectClip(this);
_global.minimap.setObjectClip(this, {x:x, y:y, rot:rot, w:120, h:120});
render();
}
function drag() {
isdragging = true;
mov.swapDepths(50000 + id);
mov.startDrag();
}
function stopdrag() {
mov.stopDrag();
mov.swapDepths(100 + id);
x = Math.round(mov._x + _global.camera.left);
y = Math.round(mov._y + _global.camera.top);
isdragging = false;
}
function startRotate() {
mov.swapDepths(50000 + id);
mov.onMouseMove = rr.utils.Delegate.create(this, doRotate);
}
function stopRotate() {
mov.swapDepths(100 + id);
delete mov.onMouseMove;
}
function doRotate() {
var _local4;
var _local3;
_local4 = _root._xmouse - mov._x;
_local3 = _root._ymouse - mov._y;
rot = Math.round(((180 * Math.atan2(_local3, _local4)) / Math.PI) + 45);
}
function render() {
if (((x + mov._width) - _global.camera.left) < 0) {
mov._visible = false;
} else if (((x - mov._width) - _global.camera.left) > _global.stage.width) {
mov._visible = false;
} else if (((y + mov._height) - _global.camera.top) < 0) {
mov._visible = false;
} else if (((y - mov._height) - _global.camera.top) > _global.stage.height) {
mov._visible = false;
} else {
if (!isdragging) {
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov._rotation = rot;
}
mov._visible = true;
}
_global.minimap.setObjectClip(this, {x:x, y:y, rot:rot, w:120, h:120});
}
function remove() {
mov.removeMovieClip();
mm_mov.removeMovieClip();
}
}
Symbol 3531 MovieClip [__Packages.cr.level.LevelStage] Frame 0
class cr.level.LevelStage extends rr.BaseClip
{
var width, height, combinations, areas, objecttypes, areasAdded, combAdded, startcash, isnightlevel, bg_mc, createEmptyMovieClip, getNextHighestDepth, bg_bmp, areaSel, events, objSel;
function LevelStage () {
super();
_global.stage = this;
}
function init() {
width = 640;
height = 480;
combinations = [];
areas = [];
objecttypes = ["AirField", "Bunker", "RocketBase", "Bonus", "Drop"];
areasAdded = (combAdded = 0);
startcash = 5500;
isnightlevel = false;
var _local4 = objecttypes.length;
var _local2 = 0;
while (_local2 < _local4) {
var _local3 = objecttypes[_local2];
this[_local3 + "count"] = 0;
this[_local3 + "arr"] = [];
_local2++;
}
bg_mc = createEmptyMovieClip("bg_mc", getNextHighestDepth());
bg_bmp = new flash.display.BitmapData(width, height, false, 16777215);
bg_mc.attachBitmap(bg_bmp, bg_mc.getNextHighestDepth());
}
function onEnterFrame() {
_global.camera.update();
var _local7 = areas.length;
var _local5 = 0;
while (_local5 < _local7) {
this["area_" + areas[_local5]].render();
_local5++;
}
_local7 = objecttypes.length;
_local5 = 0;
while (_local5 < _local7) {
var _local4 = objecttypes[_local5];
var _local6 = this[_local4 + "arr"].length;
var _local3 = 0;
while (_local3 < _local6) {
this[_local4 + this[_local4 + "arr"][_local3]].render();
_local3++;
}
_local5++;
}
updateAfterEvent();
}
function addArea() {
areasAdded++;
this["area_" + areasAdded] = new cr.level.EnemyArea(areasAdded);
areas.push(areasAdded);
return(this["area_" + areasAdded]);
}
function selectArea(a) {
areaSel = a;
if (a) {
selectObject(undefined);
}
events.dispatchEvent({type:"onAreaSelect"});
}
function deleteArea(a) {
a.mov.removeMovieClip();
var _local4 = areas.length;
var _local2 = 0;
while (_local2 < _local4) {
if (areas[_local2] == a.id) {
areas.splice(_local2, 1);
break;
}
_local2++;
}
delete this["area_" + a.id];
selectArea(undefined);
}
function addCombination() {
combAdded++;
combinations.push(combAdded);
this["comb_" + combAdded] = new cr.level.AreaCombination(combAdded);
return(this["comb_" + combAdded]);
}
function deleteCombination(c) {
var _local3 = combinations.length;
var _local2 = 0;
while (_local2 < _local3) {
if (combinations[_local2] == c.id) {
combinations.splice(_local2, 1);
break;
}
_local2++;
}
delete this["comb_" + c.id];
}
function addObject(t) {
this[t + "count"]++;
this[t + "arr"].push(this[t + "count"]);
this[t + this[t + "count"]] = createObj(t);
return(this[t + this[t + "count"]]);
}
function createObj(t) {
var _local2;
switch (t) {
case "AirField" :
_local2 = new cr.level.AirField(this[t + "count"]);
break;
case "Bunker" :
_local2 = new cr.level.Bunker(this[t + "count"]);
break;
case "RocketBase" :
_local2 = new cr.level.RocketBase(this[t + "count"]);
break;
case "Bonus" :
_local2 = new cr.level.Bonus(this[t + "count"]);
break;
case "Drop" :
_local2 = new cr.level.Drop(this[t + "count"]);
}
return(_local2);
}
function selectObject(obj) {
objSel = obj;
if (obj) {
selectArea(undefined);
}
events.dispatchEvent({type:"onObjectSelect"});
}
function deleteObject(obj) {
obj.mov.removeMovieClip();
var _local3 = this[obj.linkId + "arr"];
var _local5 = _local3.length;
var _local2 = 0;
while (_local2 < _local5) {
if (_local3[_local2] == obj.id) {
_local3.splice(_local2, 1);
break;
}
_local2++;
}
delete this[obj.linkId + obj.id];
selectObject(undefined);
}
function createLoadedLevel() {
var _local5 = _global.createcontrol.conflevel;
isnightlevel = _local5.nightmap;
startcash = _local5.startcash;
_global.levelcontrol.checkNightLevel();
_global.levelcontrol.startcash_txt.text = startcash.toString();
var _local6 = _local5.ea.length;
var _local8 = 0;
while (_local8 < _local6) {
var _local4 = _local5.ea[_local8];
if (_local4.a) {
var _local7 = addCombination();
_local7.enemies = rr.conf.Config.translateEnemyCodes(_local4.e);
var _local9 = _local4.a.length;
var _local3 = 0;
while (_local3 < _local9) {
var _local12 = addArea();
_local12.initLoaded(_local4.a[_local3]);
_local7.addArea(_local12);
_local3++;
}
} else {
var _local12 = addArea();
_local12.initLoaded(_local4);
}
_local8++;
}
selectArea(null);
_local6 = _local5.af.length;
_local8 = 0;
while (_local8 < _local6) {
var _local13 = _local5.af[_local8];
var _local12 = addObject("AirField");
_local12.initLoaded(_local13);
_local8++;
}
_local6 = _local5.bk.length;
_local8 = 0;
while (_local8 < _local6) {
var _local17 = _local5.bk[_local8];
var _local11 = addObject("Bunker");
_local11.initLoaded(_local17);
_local8++;
}
_local6 = _local5.rb.length;
_local8 = 0;
while (_local8 < _local6) {
var _local15 = _local5.rb[_local8];
var _local11 = addObject("RocketBase");
_local11.initLoaded(_local15);
_local8++;
}
_local6 = _local5.bs.length;
_local8 = 0;
while (_local8 < _local6) {
var _local14 = _local5.bs[_local8];
var _local11 = addObject("Bonus");
_local11.initLoaded(_local14);
_local8++;
}
_local6 = _local5.dp.length;
_local8 = 0;
while (_local8 < _local6) {
var _local16 = _local5.dp[_local8];
var _local10 = addObject("Drop");
_local10.initLoaded(_local16);
_local8++;
}
selectObject(null);
_global.createcontrol.load_mc._visible = false;
}
function toggleNight() {
isnightlevel = !isnightlevel;
_global.levelcontrol.checkNightLevel();
}
function setStartCash() {
trace("setStartCash: ");
var _local3;
var _local4 = _global.levelcontrol.startcash_txt.text;
if (_local4 == "") {
_local3 = 5500;
} else {
_local3 = Number(_local4);
}
if (_local3 > 25000) {
_local3 = 25000;
}
startcash = _local3;
_global.levelcontrol.startcash_txt.text = startcash.toString();
}
}
Symbol 3532 MovieClip [__Packages.cr.level.EnemyArea] Frame 0
class cr.level.EnemyArea
{
var id, w, minw, h, minh, x, y, area, maxenemies, enemies, mov, mm_mov, combination, lcol, scol, selected, isdragging, combiselected;
function EnemyArea (pid) {
id = pid;
init();
}
function init() {
w = (minw = 85);
h = (minh = 85);
x = _global.camera.x - (w / 2);
y = _global.camera.y - (h / 2);
area = w * h;
maxenemies = Math.floor(area / 7000);
enemies = [];
mov = _global.stage.attachMovie("EnemyArea", "ea" + id, 1000 + id);
mov.count_txt.autoSize = true;
mov.count_txt.text = ((enemies.length + " ENEMIES IN AREA\r(MAX. ") + maxenemies) + ")";
mov.area_mc.onPress = rr.utils.Delegate.create(this, drag);
mov.area_mc.onRelease = (mov.area_mc.onReleaseOutside = rr.utils.Delegate.create(this, stopdrag));
mov.delete_btn.onPress = rr.utils.Delegate.create(this, remove);
mov.handle_btn.onPress = rr.utils.Delegate.create(this, startResize);
mov.handle_btn.onRelease = (mov.handle_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopResize));
mm_mov = _global.minimap.createObjectClip(this);
_global.minimap.setObjectClip(this, {x:x, y:y, w:w, h:h});
_global.stage.addEventListener("onAreaSelect", this);
select();
render();
}
function initLoaded(initObj) {
x = initObj.x;
y = initObj.y;
w = initObj.w;
h = initObj.h;
if (initObj.e) {
enemies = rr.conf.Config.translateEnemyCodes(initObj.e);
}
area = w * h;
maxenemies = Math.floor(area / 7000);
onEnemyUpdate();
drawArea();
render();
}
function addEnemy(lid) {
if (combination) {
return(combination.addEnemy(lid));
}
if (enemies.length >= maxenemies) {
return(false);
}
enemies.push(lid);
onEnemyUpdate();
return(true);
}
function removeEnemy(lid) {
if (combination) {
return(combination.removeEnemy(lid));
}
var _local3 = enemies.length;
var _local2 = 0;
while (_local2 < _local3) {
if (enemies[_local2] == lid) {
enemies.splice(_local2, 1);
onEnemyUpdate();
return(true);
}
_local2++;
}
return(false);
}
function onEnemyUpdate() {
if (combination) {
mov.count_txt.text = ((((("COMBINED AREA (" + combination.areas.length) + " AREAS)\r") + combination.enemies.length) + " ENEMIES IN AREAS\r(MAX. ") + combination.maxenemies) + ")";
} else {
mov.count_txt.text = ((enemies.length + " ENEMIES IN AREA\r(MAX. ") + maxenemies) + ")";
}
}
function drawArea() {
mov.area_mc.clear();
mov.area_mc.lineStyle(2, lcol, 100);
mov.area_mc.moveTo(0, 0);
mov.area_mc.lineTo(w, 0);
mov.area_mc.lineTo(w, h);
mov.area_mc.lineTo(0, h);
mov.area_mc.lineTo(0, 0);
mov.area_mc.lineStyle(0, 0, 0);
mov.area_mc.beginFill(scol, 40);
mov.area_mc.moveTo(4, 4);
mov.area_mc.lineTo(w - 4, 4);
mov.area_mc.lineTo(w - 4, h - 4);
mov.area_mc.lineTo(4, h - 4);
mov.area_mc.lineTo(4, 4);
mov.area_mc.endFill();
mov.delete_btn._y = h + 4;
mov.handle_btn._x = w;
mov.handle_btn._y = h;
mov.count_txt._y = h - mov.count_txt._height;
}
function drag() {
if (!selected) {
select();
}
isdragging = true;
mov.startDrag();
}
function stopdrag() {
mov.stopDrag();
x = mov._x + _global.camera.left;
y = mov._y + _global.camera.top;
isdragging = false;
}
function startResize() {
mov.onMouseMove = rr.utils.Delegate.create(this, doResize);
}
function stopResize() {
delete mov.onMouseMove;
}
function doResize() {
var _local3 = {x:_global.stage._xmouse, y:_global.stage._ymouse};
mov.globalToLocal(_local3);
w = Math.max(_local3.x, minw);
h = Math.max(_local3.y, minh);
area = w * h;
combination.updateArea();
maxenemies = Math.floor(area / 7000);
onEnemyUpdate();
drawArea();
updateAfterEvent();
}
function select() {
if (Key.isDown(16)) {
var _local3 = _global.stage.areaSel;
if (_local3) {
if (_local3 == this) {
if (combination) {
combination.removeArea(this);
onEnemyUpdate();
}
} else {
if (!_local3.combination) {
var _local4 = _global.stage.addCombination();
_local4.addArea(_local3);
} else {
var _local4 = _local3.combination;
}
_local4.addArea(this);
}
}
}
_global.stage.selectArea(this);
}
function onAreaSelect() {
selected = (combiselected = false);
scol = (lcol = ((_global.map.maptype == "ice") ? 29845 : 13103871));
if (_global.stage.areaSel == this) {
selected = (combiselected = true);
scol = (lcol = 13724672);
mov.swapDepths(10000 + id);
mov.handle_btn._visible = true;
mov.delete_btn._visible = true;
mov.click_txt.text = "";
drawArea();
return(undefined);
}
if (combination && (_global.stage.areaSel.combination == combination)) {
lcol = 13724672 /* 0xD16C00 */;
combiselected = true;
}
mov.swapDepths(1000 + id);
mov.handle_btn._visible = false;
mov.delete_btn._visible = false;
mov.click_txt.text = "CLICK AREA TO ACTIVATE\rAND FILL WITH ENEMIES";
drawArea();
}
function remove() {
mm_mov.removeMovieClip();
combination.removeArea(this);
_global.stage.deleteArea(this);
}
function render() {
if (((x + mov._width) - _global.camera.left) < 0) {
mov._visible = false;
} else if ((x - _global.camera.left) > _global.stage.width) {
mov._visible = false;
} else if (((y + mov._height) - _global.camera.top) < 0) {
mov._visible = false;
} else if ((y - _global.camera.top) > _global.stage.height) {
mov._visible = false;
} else {
if (!isdragging) {
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
}
mov._visible = true;
}
_global.minimap.setObjectClip(this, {x:x + (w / 2), y:y + (h / 2), w:w, h:h});
}
}
Symbol 3533 MovieClip [__Packages.cr.level.AreaCombination] Frame 0
class cr.level.AreaCombination extends rr.BaseClass
{
var id, areas, enemies, addEventListener, removeEventListener, events, area, maxenemies;
function AreaCombination (pid) {
super();
id = pid;
init();
}
function init() {
areas = [];
enemies = [];
}
function addArea(a) {
if (a.combination) {
if (a.combination == this) {
return(undefined);
}
a.combination.removeArea(a);
} else {
enemies = enemies.concat(a.enemies);
a.enemies = [];
}
areas.push(a);
a.combination = this;
addEventListener("onEnemyUpdate", a);
updateArea();
}
function removeArea(a) {
var _local3 = 0;
while (_local3 < areas.length) {
if (areas[_local3] == a) {
areas.splice(_local3, 1);
break;
}
_local3++;
}
updateArea();
removeEventListener("onEnemyUpdate", a);
a.combination = undefined;
checkEnemies();
if (areas.length < 2) {
areas[0].enemies = areas[0].enemies.concat(enemies);
areas[0].combination = undefined;
events.dispatchEvent({type:"onEnemyUpdate"});
removeEventListener("onEnemyUpdate", areas[0]);
_global.stage.deleteCombination(this);
}
}
function updateArea() {
area = 0;
var _local2 = 0;
while (_local2 < areas.length) {
area = area + (areas[_local2].w * areas[_local2].h);
_local2++;
}
maxenemies = Math.floor(area / 7000);
events.dispatchEvent({type:"onEnemyUpdate"});
}
function checkEnemies() {
if (enemies.length > maxenemies) {
enemies.splice(maxenemies);
events.dispatchEvent({type:"onEnemyUpdate"});
}
}
function addEnemy(lid) {
if (enemies.length >= maxenemies) {
return(false);
}
enemies.push(lid);
events.dispatchEvent({type:"onEnemyUpdate"});
return(true);
}
function removeEnemy(lid) {
var _local4 = enemies.length;
var _local2 = 0;
while (_local2 < _local4) {
if (enemies[_local2] == lid) {
enemies.splice(_local2, 1);
events.dispatchEvent({type:"onEnemyUpdate"});
return(true);
}
_local2++;
}
return(false);
}
}
Symbol 3534 MovieClip [__Packages.cr.level.AirField] Frame 0
class cr.level.AirField extends rr.BaseClass
{
var linkId, id, x, y, rot, maxenemies, enemies, bdepth, mov, mm_mov, isdragging;
function AirField (pid) {
super();
linkId = "AirField";
id = pid;
init();
}
function init() {
x = _global.camera.x;
y = _global.camera.y;
rot = 0;
maxenemies = 15;
enemies = [];
bdepth = 2000;
mov = _global.stage.attachMovie("AirFieldHolder", "air" + id, bdepth + id);
mov.count_txt.text = ((enemies.length + " PLANES IN AIRFIELD\r(MAX. ") + maxenemies) + ")";
mov.press_btn.onPress = rr.utils.Delegate.create(this, drag);
mov.press_btn.onRelease = (mov.press_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopdrag));
mov.image_mc.rot_btn.onPress = rr.utils.Delegate.create(this, startRotate);
mov.image_mc.rot_btn.onRelease = (mov.image_mc.rot_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopRotate));
mov.delete_btn.onPress = rr.utils.Delegate.create(this, remove);
mm_mov = _global.minimap.createObjectClip(this);
_global.minimap.setObjectClip(this, {x:x, y:y, rot:rot, w:190, h:180});
_global.stage.addEventListener("onObjectSelect", this);
_global.stage.selectObject(this);
render();
}
function initLoaded(initObj) {
x = initObj.x;
y = initObj.y;
rot = initObj.r;
if (initObj.e) {
enemies = rr.conf.Config.translateEnemyCodes(initObj.e);
}
mov.count_txt.text = ((enemies.length + " PLANES IN AIRFIELD\r(MAX. ") + maxenemies) + ")";
render();
}
function addEnemy(lid) {
if (enemies.length >= maxenemies) {
return(false);
}
enemies.push(lid);
mov.count_txt.text = ((enemies.length + " PLANES IN AIRFIELD\r(MAX. ") + maxenemies) + ")";
return(true);
}
function removeEnemy(lid) {
var _local3 = enemies.length;
var _local2 = 0;
while (_local2 < _local3) {
if (enemies[_local2] == lid) {
enemies.splice(_local2, 1);
mov.count_txt.text = ((enemies.length + " PLANES IN AIRFIELD\r(MAX. ") + maxenemies) + ")";
return(true);
}
_local2++;
}
return(false);
}
function drag() {
_global.stage.selectObject(this);
isdragging = true;
mov.startDrag();
}
function stopdrag() {
mov.stopDrag();
x = mov._x + _global.camera.left;
y = mov._y + _global.camera.top;
isdragging = false;
}
function startRotate() {
mov.onMouseMove = rr.utils.Delegate.create(this, doRotate);
}
function stopRotate() {
delete mov.onMouseMove;
}
function doRotate() {
var _local4;
var _local3;
_local4 = _root._xmouse - mov._x;
_local3 = _root._ymouse - mov._y;
rot = ((180 * Math.atan2(_local3, _local4)) / Math.PI) + 45;
}
function onObjectSelect() {
if (_global.stage.objSel == this) {
mov.swapDepths((bdepth + 10000) + id);
mov.press_btn._alpha = 20;
mov.image_mc.rot_btn._visible = true;
mov.click_txt.text = "";
mov.delete_btn._visible = true;
} else {
mov.swapDepths(bdepth + id);
mov.press_btn._alpha = 0;
mov.image_mc.rot_btn._visible = false;
mov.click_txt.text = "CLICK AIRFIELD TO ACTIVATE\rAND FILL WITH AIRUNITS";
mov.delete_btn._visible = false;
}
}
function remove() {
mm_mov.removeMovieClip();
_global.stage.deleteObject(this);
}
function render() {
if (((x + mov._width) - _global.camera.left) < 0) {
mov._visible = false;
} else if (((x - mov._width) - _global.camera.left) > _global.stage.width) {
mov._visible = false;
} else if (((y + mov._height) - _global.camera.top) < 0) {
mov._visible = false;
} else if (((y - mov._height) - _global.camera.top) > _global.stage.height) {
mov._visible = false;
} else {
if (!isdragging) {
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov.image_mc._rotation = rot;
}
mov._visible = true;
}
_global.minimap.setObjectClip(this, {x:x, y:y, rot:rot, w:190, h:180});
}
}
Symbol 3535 MovieClip [__Packages.cr.level.Bunker] Frame 0
class cr.level.Bunker extends rr.BaseClass
{
var linkId, id, x, y, rot, scale, bdepth, mov, mm_mov, isdragging;
function Bunker (pid) {
super();
linkId = "Bunker";
id = pid;
init();
}
function init() {
x = _global.camera.x;
y = _global.camera.y;
rot = 0;
scale = 100;
bdepth = 5000;
mov = _global.stage.attachMovie("BunkerHolder", "bunk" + id, bdepth + id);
mov.press_btn.onPress = rr.utils.Delegate.create(this, drag);
mov.press_btn.onRelease = (mov.press_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopdrag));
mov.image_mc.rot_btn.onPress = rr.utils.Delegate.create(this, startRotate);
mov.image_mc.rot_btn.onRelease = (mov.image_mc.rot_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopRotate));
mov.image_mc.scale_btn.onPress = rr.utils.Delegate.create(this, startScale);
mov.image_mc.scale_btn.onRelease = (mov.image_mc.scale_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopScale));
mov.delete_btn.onPress = rr.utils.Delegate.create(this, remove);
mm_mov = _global.minimap.createObjectClip(this);
_global.minimap.setObjectClip(this, {x:x, y:y, rot:rot, w:50, h:50, scale:scale});
_global.stage.addEventListener("onObjectSelect", this);
_global.stage.selectObject(this);
render();
}
function initLoaded(initObj) {
x = Math.round(initObj.x);
y = Math.round(initObj.y);
rot = Math.round(initObj.r);
scale = Math.round(initObj.s);
render();
}
function drag() {
_global.stage.selectObject(this);
isdragging = true;
mov.startDrag();
}
function stopdrag() {
mov.stopDrag();
x = mov._x + _global.camera.left;
y = mov._y + _global.camera.top;
isdragging = false;
}
function startRotate() {
mov.onMouseMove = rr.utils.Delegate.create(this, doRotate);
}
function stopRotate() {
delete mov.onMouseMove;
}
function doRotate() {
var _local4;
var _local3;
_local4 = _root._xmouse - mov._x;
_local3 = _root._ymouse - mov._y;
rot = Math.round(((180 * Math.atan2(_local3, _local4)) / Math.PI) + 45);
}
function startScale() {
mov.onMouseMove = rr.utils.Delegate.create(this, doScale);
}
function stopScale() {
delete mov.onMouseMove;
}
function doScale() {
var _local5;
var _local4;
_local5 = _root._xmouse - mov._x;
_local4 = _root._ymouse - mov._y;
var _local3 = rr.utils.MathUtils.getDistance(_root._xmouse, _root._ymouse, mov._x, mov._y);
scale = Math.round((100 * _local3) / 49.5);
if (scale > 100) {
scale = 100;
}
if (scale < 40) {
scale = 40;
}
}
function onObjectSelect() {
if (_global.stage.objSel == this) {
mov.swapDepths((bdepth + 10000) + id);
mov.press_btn._alpha = 20;
mov.image_mc.rot_btn._visible = true;
mov.image_mc.scale_btn._visible = true;
mov.delete_btn._visible = true;
} else {
mov.swapDepths(bdepth + id);
mov.press_btn._alpha = 0;
mov.image_mc.rot_btn._visible = false;
mov.image_mc.scale_btn._visible = false;
mov.delete_btn._visible = false;
}
}
function remove() {
mm_mov.removeMovieClip();
_global.stage.deleteObject(this);
}
function render() {
if (((x + mov._width) - _global.camera.left) < 0) {
mov._visible = false;
} else if (((x - mov._width) - _global.camera.left) > _global.stage.width) {
mov._visible = false;
} else if (((y + mov._height) - _global.camera.top) < 0) {
mov._visible = false;
} else if (((y - mov._height) - _global.camera.top) > _global.stage.height) {
mov._visible = false;
} else {
if (!isdragging) {
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov.image_mc._rotation = rot;
mov.image_mc._xscale = (mov.image_mc._yscale = scale);
}
mov._visible = true;
}
_global.minimap.setObjectClip(this, {x:x, y:y, rot:rot, w:50, h:50, scale:scale});
}
}
Symbol 3536 MovieClip [__Packages.cr.level.RocketBase] Frame 0
class cr.level.RocketBase extends rr.BaseClass
{
var linkId, id, x, y, rot, bdepth, mov, mm_mov, isdragging;
function RocketBase (pid) {
super();
linkId = "RocketBase";
id = pid;
init();
}
function init() {
x = _global.camera.x;
y = _global.camera.y;
rot = 0;
bdepth = 3000;
mov = _global.stage.attachMovie("RocketBaseHolder", "rocketbase" + id, bdepth + id);
mov.press_btn.onPress = rr.utils.Delegate.create(this, drag);
mov.press_btn.onRelease = (mov.press_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopdrag));
mov.image_mc.rot_btn.onPress = rr.utils.Delegate.create(this, startRotate);
mov.image_mc.rot_btn.onRelease = (mov.image_mc.rot_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopRotate));
mov.delete_btn.onPress = rr.utils.Delegate.create(this, remove);
mm_mov = _global.minimap.createObjectClip(this);
_global.minimap.setObjectClip(this, {x:x, y:y, rot:rot, w:110, h:70});
_global.stage.addEventListener("onObjectSelect", this);
_global.stage.selectObject(this);
render();
}
function initLoaded(initObj) {
x = initObj.x;
y = initObj.y;
rot = initObj.r;
render();
}
function drag() {
_global.stage.selectObject(this);
isdragging = true;
mov.startDrag();
}
function stopdrag() {
mov.stopDrag();
x = mov._x + _global.camera.left;
y = mov._y + _global.camera.top;
isdragging = false;
}
function startRotate() {
mov.onMouseMove = rr.utils.Delegate.create(this, doRotate);
}
function stopRotate() {
delete mov.onMouseMove;
}
function doRotate() {
var _local4;
var _local3;
_local4 = _root._xmouse - mov._x;
_local3 = _root._ymouse - mov._y;
rot = ((180 * Math.atan2(_local3, _local4)) / Math.PI) + 45;
}
function onObjectSelect() {
if (_global.stage.objSel == this) {
mov.swapDepths((bdepth + 10000) + id);
mov.press_btn._alpha = 20;
mov.image_mc.rot_btn._visible = true;
mov.delete_btn._visible = true;
} else {
mov.swapDepths(bdepth + id);
mov.press_btn._alpha = 0;
mov.image_mc.rot_btn._visible = false;
mov.delete_btn._visible = false;
}
}
function remove() {
mm_mov.removeMovieClip();
_global.stage.deleteObject(this);
}
function render() {
if (((x + mov._width) - _global.camera.left) < 0) {
mov._visible = false;
} else if (((x - mov._width) - _global.camera.left) > _global.stage.width) {
mov._visible = false;
} else if (((y + mov._height) - _global.camera.top) < 0) {
mov._visible = false;
} else if (((y - mov._height) - _global.camera.top) > _global.stage.height) {
mov._visible = false;
} else {
if (!isdragging) {
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
mov.image_mc._rotation = rot;
}
mov._visible = true;
}
_global.minimap.setObjectClip(this, {x:x, y:y, rot:rot, w:110, h:70});
}
}
Symbol 3537 MovieClip [__Packages.cr.level.Bonus] Frame 0
class cr.level.Bonus extends rr.BaseClass
{
var linkId, id, type, idx, x, y, types, bdepth, mov, mm_mov, title, tdrag, isdragging;
function Bonus (pid) {
super();
linkId = "Bonus";
id = pid;
init();
}
function init() {
type = "e";
idx = 1;
x = _global.camera.x;
y = _global.camera.y;
types = ["m", "e", "r"];
bdepth = 4000;
mov = _global.stage.attachMovie("BonusHolder", "bonus" + id, bdepth + id);
mm_mov = _global.minimap.createIcon(this, "b");
_global.minimap.setIcon(this, "b");
setTitle();
mov.press_btn.onPress = rr.utils.Delegate.create(this, drag);
mov.press_btn.onRelease = (mov.press_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopdrag));
mov.delete_btn.onPress = rr.utils.Delegate.create(this, remove);
_global.stage.addEventListener("onObjectSelect", this);
_global.stage.selectObject(this);
render();
}
function initLoaded(initObj) {
x = initObj.x;
y = initObj.y;
type = initObj.t;
var _local2 = 0;
while (_local2 < types.length) {
if (types[_local2] == type) {
idx = _local2;
break;
}
_local2++;
}
setTitle();
mov.image_mc.gotoAndStop(type);
if (type == "m") {
mov.image_mc.cash_txt.text = initObj.c;
mov.image_mc.cash_txt.maxChars = 5;
mov.image_mc.cash_txt.restrict = "0-9";
}
render();
}
function setTitle() {
if (type == "m") {
title = "CASH BONUS";
}
if (type == "e") {
title = "FUEL BONUS";
}
if (type == "r") {
title = "REPAIR BONUS";
}
mov.title_txt.autoSize = true;
mov.title_txt.text = title;
}
function nextBonus() {
if (idx == undefined) {
idx = 0;
} else {
idx++;
}
if (idx > (types.length - 1)) {
idx = 0;
}
type = types[idx];
setTitle();
mov.image_mc.gotoAndStop(type);
if (type == "m") {
mov.image_mc.cash_txt.text = 10000;
mov.image_mc.cash_txt.maxChars = 5;
mov.image_mc.cash_txt.restrict = "0-9";
}
}
function drag() {
if (_global.stage.objSel != this) {
_global.stage.selectObject(this);
} else {
tdrag = getTimer();
}
isdragging = true;
mov.startDrag();
}
function stopdrag() {
if ((getTimer() - tdrag) < 400) {
nextBonus();
}
mov.stopDrag();
x = mov._x + _global.camera.left;
y = mov._y + _global.camera.top;
isdragging = false;
}
function onObjectSelect() {
if (_global.stage.objSel == this) {
mov.swapDepths((bdepth + 10000) + id);
mov.press_btn._alpha = 100;
mov.delete_btn._visible = true;
mov.title_txt._visible = true;
} else {
mov.swapDepths(bdepth + id);
mov.press_btn._alpha = 0;
mov.delete_btn._visible = false;
mov.title_txt._visible = false;
}
}
function remove() {
mm_mov.removeMovieClip();
_global.stage.deleteObject(this);
}
function render() {
if (((x + mov._width) - _global.camera.left) < 0) {
mov._visible = false;
} else if (((x - mov._width) - _global.camera.left) > _global.stage.width) {
mov._visible = false;
} else if (((y + mov._height) - _global.camera.top) < 0) {
mov._visible = false;
} else if (((y - mov._height) - _global.camera.top) > _global.stage.height) {
mov._visible = false;
} else {
if (!isdragging) {
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
}
mov._visible = true;
}
_global.minimap.setIcon(this, "b");
}
}
Symbol 3538 MovieClip [__Packages.cr.level.Drop] Frame 0
class cr.level.Drop extends rr.BaseClass
{
var linkId, id, type, mode, idx, x, y, types, bdepth, mov, mm_mov, title, tdrag, isdragging;
function Drop (pid) {
super();
linkId = "Drop";
id = pid;
init();
}
function init() {
type = "f";
mode = "d";
idx = 0;
x = _global.camera.x;
y = _global.camera.y;
types = ["f", "p", "a", "t", "b"];
bdepth = 6000;
mov = _global.stage.attachMovie("DropHolder", "drop" + id, bdepth + id);
mm_mov = _global.minimap.createIcon(this, mode);
_global.minimap.setIcon(this, mode);
setTitle();
mov.press_btn.onPress = rr.utils.Delegate.create(this, drag);
mov.press_btn.onRelease = (mov.press_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopdrag));
mov.delete_btn.onPress = rr.utils.Delegate.create(this, remove);
mov.pickup_btn.onPress = rr.utils.Delegate.create(this, toggleMode);
mov.dropoff_btn.onPress = rr.utils.Delegate.create(this, toggleMode);
_global.stage.addEventListener("onObjectSelect", this);
_global.stage.selectObject(this);
toggleMode();
render();
}
function initLoaded(initObj) {
x = initObj.x;
y = initObj.y;
type = initObj.t;
mode = initObj.m;
var _local2 = 0;
while (_local2 < types.length) {
if (types[_local2] == type) {
idx = _local2;
break;
}
_local2++;
}
setTitle();
mov.pickup_btn._visible = mode == "p";
mov.dropoff_btn._visible = mode == "d";
mov.image_mc.gotoAndStop(type);
render();
}
function toggleMode() {
mode = ((mode == "d") ? "p" : "d");
mov.pickup_btn._visible = mode == "p";
mov.dropoff_btn._visible = mode == "d";
}
function setTitle() {
if (type == "f") {
title = "FUEL TANK";
}
if (type == "p") {
title = "PASSENGERWAGON";
}
if (type == "a") {
title = "ARMORED\rPASSENGERWAGON";
}
if (type == "t") {
title = "TANK TRAILER";
}
if (type == "b") {
title = "ATOMIC BOMB";
}
mov.title_txt.autoSize = true;
mov.title_txt.text = title;
}
function nextType() {
if (idx == undefined) {
idx = 0;
} else {
idx++;
}
if (idx > (types.length - 1)) {
idx = 0;
}
type = types[idx].toString();
setTitle();
mov.image_mc.gotoAndStop(type);
}
function drag() {
if (_global.stage.objSel != this) {
_global.stage.selectObject(this);
} else {
tdrag = getTimer();
}
isdragging = true;
mov.startDrag();
}
function stopdrag() {
if ((getTimer() - tdrag) < 400) {
nextType();
}
mov.stopDrag();
x = mov._x + _global.camera.left;
y = mov._y + _global.camera.top;
isdragging = false;
}
function onObjectSelect() {
if (_global.stage.objSel == this) {
mov.swapDepths((bdepth + 10000) + id);
mov.press_btn._alpha = 100;
mov.delete_btn._visible = true;
mov.pickup_btn._visible = mode == "p";
mov.dropoff_btn._visible = mode == "d";
mov.title_txt._visible = true;
} else {
mov.swapDepths(bdepth + id);
mov.press_btn._alpha = 0;
mov.delete_btn._visible = false;
mov.pickup_btn._visible = false;
mov.dropoff_btn._visible = false;
mov.title_txt._visible = false;
}
}
function remove() {
mm_mov.removeMovieClip();
_global.stage.deleteObject(this);
}
function render() {
if (((x + mov._width) - _global.camera.left) < 0) {
mov._visible = false;
} else if (((x - mov._width) - _global.camera.left) > _global.stage.width) {
mov._visible = false;
} else if (((y + mov._height) - _global.camera.top) < 0) {
mov._visible = false;
} else if (((y - mov._height) - _global.camera.top) > _global.stage.height) {
mov._visible = false;
} else {
if (!isdragging) {
mov._x = x - _global.camera.left;
mov._y = y - _global.camera.top;
}
mov._visible = true;
}
_global.minimap.setIcon(this, mode);
}
}
Symbol 3539 MovieClip [__Packages.cr.MiniMap] Frame 0
class cr.MiniMap extends rr.BaseClip
{
var _visible, map_bmp, container_mc, margin, scale, w, h, railcolor, createEmptyMovieClip, getNextHighestDepth, map_mc, label_mc, legenda_mc, icons_mc, edge_mc, cam_mc, onEnterFrame, events;
function MiniMap () {
super();
_global.minimap = this;
_visible = false;
}
function init() {
map_bmp.dispose();
delete map_bmp;
container_mc.removeMovieClip();
margin = 5;
var _local3 = _global.map.width;
var _local4 = _global.map.height;
scale = ((_local3 > _local4) ? ((640 - (2 * margin)) / _local3) : ((480 - (2 * margin)) / _local4));
w = _local3 * scale;
h = _local4 * scale;
railcolor = 13103871 /* 0xC7F2FF */;
if ((_global.map.mapId == 2) || (_global.map.mapId == 3)) {
railcolor = 11836;
}
container_mc = createEmptyMovieClip("container_mc", getNextHighestDepth());
map_mc = container_mc.createEmptyMovieClip("map_mc", container_mc.getNextHighestDepth());
map_bmp = new flash.display.BitmapData(w, h, true, 0);
map_mc.attachBitmap(map_bmp, map_mc.getNextHighestDepth());
label_mc = container_mc.attachMovie("MiniMapLabel", "label_mc", container_mc.getNextHighestDepth());
label_mc.mission_txt.autoSize = true;
label_mc.mission_txt.wordWrap = false;
setMissionText();
legenda_mc = container_mc.attachMovie("MiniMapLegenda", "legenda_mc", container_mc.getNextHighestDepth());
icons_mc = container_mc.createEmptyMovieClip("icons_mc", container_mc.getNextHighestDepth());
if (w > h) {
map_mc._y = label_mc._height;
label_mc._x = 0;
legenda_mc._x = w - legenda_mc._width;
legenda_mc._y = (label_mc._height - legenda_mc._height) - margin;
} else {
map_mc._y = 0;
label_mc._x = w;
legenda_mc._x = w;
legenda_mc._y = h - legenda_mc._height;
}
container_mc._y = ((480 - margin) - h) - map_mc._y;
edge_mc = container_mc.createEmptyMovieClip("edge_mc", container_mc.getNextHighestDepth());
edge_mc.lineStyle(1, 202014);
rr.utils.DrawUtils.drawRect(edge_mc, 0, map_mc._y, w, h);
cam_mc = container_mc.createEmptyMovieClip("cam_mc", container_mc.getNextHighestDepth());
cam_mc._x = 0;
cam_mc._y = 0 + map_mc._y;
cam_mc.lineStyle(1, 16711680);
rr.utils.DrawUtils.drawFillRect(cam_mc, 0, 0, 640 * scale, 480 * scale, 16777215, 30);
cam_mc.onPress = rr.utils.Delegate.create(this, startCamDrag);
cam_mc.onRelease = (cam_mc.onReleaseOutside = rr.utils.Delegate.create(this, stopCamDrag));
}
function showMap() {
setCam();
container_mc._x = 650 + margin;
_visible = true;
onEnterFrame = rr.utils.Delegate.create(this, shiftShow);
}
function createIcon(obj, frame) {
var _local2 = icons_mc.attachMovie("MiniMapIcon", rr.utils.StringUtils.getUniqueName(), icons_mc.getNextHighestDepth());
_local2.gotoAndPlay(frame);
return(_local2);
}
function setIcon(obj, frame) {
var _local2 = obj.mm_mov;
_local2.gotoAndPlay(frame);
_local2._x = obj.x * scale;
_local2._y = (obj.y * scale) + map_mc._y;
}
function createObjectClip(obj) {
var _local2 = container_mc.createEmptyMovieClip(rr.utils.StringUtils.getUniqueName(), container_mc.getNextHighestDepth());
return(_local2);
}
function setObjectClip(obj, iObj) {
var _local3 = obj.mm_mov;
_local3.clear();
_local3.lineStyle(1, 29845);
rr.utils.DrawUtils.drawFillRect(_local3, ((-scale) * iObj.w) / 2, ((-scale) * iObj.h) / 2, iObj.w * scale, iObj.h * scale, 29845, 50);
_local3._x = iObj.x * scale;
_local3._y = (iObj.y * scale) + map_mc._y;
if (iObj.rot != undefined) {
_local3._rotation = iObj.rot;
}
if (iObj.scale != undefined) {
_local3._xscale = (_local3._yscale = iObj.scale);
}
}
function shiftShow() {
if (container_mc._x > margin) {
container_mc._x = container_mc._x - 50;
updateAfterEvent();
} else {
delete onEnterFrame;
}
}
function closeMap() {
_visible = false;
}
function startCamDrag() {
_global.stage.selectSegment(null);
cam_mc.startDrag(false, 0, map_mc._y, w - (640 * scale), (map_mc._y + h) - (480 * scale));
}
function stopCamDrag() {
cam_mc.stopDrag();
events.dispatchEvent({type:"onMiniMapCamReset"});
}
function setCam() {
cam_mc._x = _global.camera.left * scale;
cam_mc._y = (_global.camera.top * scale) + map_mc._y;
}
function setMissionText() {
label_mc.mission_txt.text = "";
}
}
Symbol 3540 MovieClip [__Packages.cr.map.RailControl] Frame 0
class cr.map.RailControl extends rr.BaseClip
{
var _visible, length, radius, direction, showswitch, snap_btn, all_mc, curve_mc, line_btn, curve_btn, conf_btn, load_btn, save_btn, main_btn, minimap_btn, lengthStep, radStep, lplus, lmin, rplus, rmin, events, isButtonDown, ivalIncreaseStep;
function RailControl () {
super();
_global.railcontrol = this;
_visible = false;
}
function init() {
length = (radius = (direction = 1));
showswitch = true;
snap_btn._visible = false;
all_mc.lmin_btn.onRelease = rr.utils.Delegate.create(this, doAction, "lmin");
all_mc.lplus_btn.onRelease = rr.utils.Delegate.create(this, doAction, "lplus");
curve_mc.rmin_btn.onRelease = rr.utils.Delegate.create(this, doAction, "rmin");
curve_mc.rplus_btn.onRelease = rr.utils.Delegate.create(this, doAction, "rplus");
all_mc.lminmin_btn.onPress = rr.utils.Delegate.create(this, startIncrease, "lminmin");
all_mc.lplusplus_btn.onPress = rr.utils.Delegate.create(this, startIncrease, "lplusplus");
curve_mc.rminmin_btn.onPress = rr.utils.Delegate.create(this, startIncrease, "rminmin");
curve_mc.rplusplus_btn.onPress = rr.utils.Delegate.create(this, startIncrease, "rplusplus");
curve_mc.flip_btn.onPress = rr.utils.Delegate.create(this, doAction, "flip");
all_mc.inout_btn.onPress = rr.utils.Delegate.create(this, doAction, "inout");
line_btn.onRelease = rr.utils.Delegate.create(_global.stage, _global.stage.addRailSegment, "line");
curve_btn.onRelease = rr.utils.Delegate.create(_global.stage, _global.stage.addRailSegment, "arc");
all_mc.compound_btn.onRelease = rr.utils.Delegate.create(_global.stage, _global.stage.addCompound);
all_mc.del_btn.onRelease = rr.utils.Delegate.create(_global.stage, _global.stage.deleteSegment);
conf_btn.onRelease = rr.utils.Delegate.create(_global.xmlcontrol, _global.xmlcontrol.showMapXml);
load_btn.onRelease = rr.utils.Delegate.create(_global.stage, _global.stage.loadRailSegments);
save_btn.onRelease = rr.utils.Delegate.create(_global.savecontrol, _global.savecontrol.showMapSave);
main_btn.onRelease = rr.utils.Delegate.create(_global.createcontrol, _global.createcontrol.init);
snap_btn.onRelease = rr.utils.Delegate.create(this, onSnap);
minimap_btn.onPress = rr.utils.Delegate.create(this, toggleMiniMap);
all_mc.lminmin_btn.onRelease = (all_mc.lminmin_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopIncrease));
all_mc.lplusplus_btn.onRelease = (all_mc.lplusplus_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopIncrease));
curve_mc.rminmin_btn.onRelease = (curve_mc.rminmin_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopIncrease));
curve_mc.rplusplus_btn.onRelease = (curve_mc.rplusplus_btn.onReleaseOutside = rr.utils.Delegate.create(this, stopIncrease));
all_mc._visible = (curve_mc._visible = (all_mc.switch_mc._visible = (all_mc.switch_mc.show_btn._visible = false)));
_global.stage.addEventListener("onRailSegmentSelect", this);
_global.stage.addEventListener("onRailConnectionSelect", this);
}
function reset(l, r, d) {
if (l != null) {
length = Math.round(l);
}
if (r != null) {
radius = Math.round(r);
if (l == null) {
length = (radius * 90) * (Math.PI/180);
}
}
if (d != null) {
direction = d;
}
lengthStep = 1;
radStep = 1;
curve_mc.r_txt.text = radius;
all_mc.l_txt.text = length.toString();
}
function doAction(btn) {
lengthStep = 1;
radStep = 1;
lplus = (lmin = (rplus = (rmin = false)));
if (btn == "lmin") {
lmin = true;
doStep();
}
if (btn == "lplus") {
lplus = true;
doStep();
}
if (btn == "rmin") {
rmin = true;
doStep();
}
if (btn == "rplus") {
rplus = true;
doStep();
}
if (btn == "flip") {
direction = -direction;
events.dispatchEvent({type:"onDirectionChanged", target:this});
}
if (btn == "inout") {
events.dispatchEvent({type:"onInOutChanged", target:this});
}
}
function startIncrease(btn) {
lengthStep = 1;
radStep = 1;
lplus = (lmin = (rplus = (rmin = false)));
isButtonDown = true;
if (btn == "lminmin") {
lmin = true;
ivalIncreaseStep = setInterval(this, "increaseStep", 500);
}
if (btn == "rminmin") {
rmin = true;
ivalIncreaseStep = setInterval(this, "increaseStep", 500);
}
if (btn == "lplusplus") {
lplus = true;
ivalIncreaseStep = setInterval(this, "increaseStep", 500);
}
if (btn == "rplusplus") {
rplus = true;
ivalIncreaseStep = setInterval(this, "increaseStep", 500);
}
}
function stopIncrease() {
clearInterval(ivalIncreaseStep);
isButtonDown = false;
}
function onEnterFrame() {
curve_mc.r_txt.text = radius;
all_mc.l_txt.text = length.toString();
if (isButtonDown) {
doStep();
}
}
function doStep() {
if (lmin) {
length = length - lengthStep;
length = ((length < 8) ? 8 : (((length > 1000) ? 1000 : (length))));
events.dispatchEvent({type:"onLengthChanged", target:this});
}
if (lplus) {
length = length + lengthStep;
length = ((length < 8) ? 8 : (((length > 1000) ? 1000 : (length))));
events.dispatchEvent({type:"onLengthChanged", target:this});
}
if (rmin) {
radius = radius - radStep;
radius = ((radius < 100) ? 100 : (((radius > 700) ? 700 : (radius))));
events.dispatchEvent({type:"onRadiusChanged", target:this});
}
if (rplus) {
radius = radius + radStep;
radius = ((radius < 100) ? 100 : (((radius > 700) ? 700 : (radius))));
events.dispatchEvent({type:"onRadiusChanged", target:this});
}
}
function increaseStep() {
if (lengthStep < 10) {
lengthStep++;
}
if (radStep < 10) {
radStep++;
}
}
function onSnap() {
events.dispatchEvent({type:"onSnap", target:this});
}
function onRailSegmentSelect() {
var _local3 = _global.stage.rsSel;
if (!_local3) {
line_btn._visible = (curve_btn._visible = false);
all_mc._visible = false;
curve_mc._visible = false;
all_mc.switch_mc._visible = false;
all_mc.compound_mc._visible = false;
return(undefined);
}
line_btn._visible = (curve_btn._visible = true);
curve_mc._visible = _local3.type == "arc";
all_mc._visible = true;
all_mc.switch_mc._visible = true;
all_mc.del_btn._visible = true;
if ((_local3.id == 1) || (_local3.id == 10000)) {
all_mc._visible = false;
curve_mc._visible = false;
}
if (!_local3.cpe.isopen) {
}
}
function toggleSwitch() {
showswitch = !showswitch;
all_mc.switch_mc.hide_btn._visible = showswitch;
all_mc.switch_mc.show_btn._visible = !showswitch;
events.dispatchEvent({type:"onToggleSwitch", target:this});
}
function toggleMiniMap() {
if (_global.minimap._visible) {
_global.minimap.closeMap();
} else {
_global.minimap.showMap();
}
}
}
Symbol 3541 MovieClip [__Packages.cr.level.LevelControl] Frame 0
class cr.level.LevelControl extends rr.BaseClip
{
var startcash_txt, area_btn, airfield_btn, bunker_btn, rocketbase_btn, bonus_btn, drop_btn, conf_btn, save_btn, main_btn, togglenight_mc, minimap_btn;
function LevelControl () {
super();
_global.levelcontrol = this;
}
function init() {
startcash_txt.restrict = "0-9";
startcash_txt.maxChars = 5;
startcash_txt.text = _global.stage.startcash.toString();
startcash_txt.onChanged = rr.utils.Delegate.create(_global.stage, _global.stage.setStartCash);
area_btn.onRelease = rr.utils.Delegate.create(_global.stage, _global.stage.addArea);
airfield_btn.onRelease = rr.utils.Delegate.create(_global.stage, _global.stage.addObject, "AirField");
bunker_btn._alpha = 50;
rocketbase_btn._alpha = 50;
bonus_btn.onRelease = rr.utils.Delegate.create(_global.stage, _global.stage.addObject, "Bonus");
drop_btn.onRelease = rr.utils.Delegate.create(_global.stage, _global.stage.addObject, "Drop");
conf_btn.onRelease = rr.utils.Delegate.create(_global.xmlcontrol, _global.xmlcontrol.showLevelXml);
save_btn.onRelease = rr.utils.Delegate.create(this, save);
main_btn.onRelease = rr.utils.Delegate.create(_global.createcontrol, _global.createcontrol.init);
togglenight_mc._alpha = 50;
minimap_btn.onPress = rr.utils.Delegate.create(this, toggleMiniMap);
}
function save() {
_global.savecontrol.showLevelSave();
}
function toggleMiniMap() {
if (_global.minimap._visible) {
_global.minimap.closeMap();
} else {
_global.minimap.showMap();
}
}
}
Symbol 3542 MovieClip [__Packages.rr.DemoAlert] Frame 0
class rr.DemoAlert extends rr.BaseClip
{
var message_txt, _visible, continue_btn, onMouseDown;
function DemoAlert () {
super();
_global.demoalert = this;
init();
}
function init() {
message_txt.autoSize = true;
message_txt.wordWrap = false;
_visible = false;
continue_btn.onPress = rr.utils.Delegate.create(this, hide);
}
function show(m) {
if ((!m) || (m == "")) {
m = "THIS FEATURE IS AVAILABLE IN THE FULL VERSION ONLY";
}
message_txt.text = m.toUpperCase();
_visible = true;
onMouseDown = function () {
trace("DemoAlert onMouseDown: ");
this.hide();
};
}
function hide() {
_visible = false;
delete onMouseDown;
}
}
Symbol 3543 MovieClip [__Packages.cr.CreateControl] Frame 0
class cr.CreateControl extends rr.BaseClip
{
var load_mc, gotoAndPlay, main_btn, create_btn, import_btn, import_mc, menu_mc, mapId, mapTitle, gotoAndStop, confmap, levelTitle, conflevel;
function CreateControl () {
super();
_global.createcontrol = this;
init();
}
function init() {
load_mc._visible = false;
(gotoAndPlay(1));// not popped
showMenu();
main_btn.onPress = function () {
_global.root.gotoAndPlay("startmenu");
};
create_btn.onPress = rr.utils.Delegate.create(this, showMenu);
import_btn.onPress = rr.utils.Delegate.create(this, showImport);
}
function showMenu() {
import_mc._visible = false;
menu_mc.gotoAndStop(1);
menu_mc._visible = true;
}
function showImport() {
menu_mc._visible = false;
import_mc._visible = true;
import_mc.showImport();
}
function createMap(mId) {
mapId = mId;
mapTitle = "";
(gotoAndStop("map"));// not popped
rr.utils.Delegate.callDelayed(this, initCreateMap, 500);
}
function initCreateMap() {
new cr.map.Map();
new cr.map.StageCam();
_global.stage.init();
_global.map.init();
_global.camera.init();
_global.railcontrol.init();
_global.stage.addDefaultSegments();
_global.stage.startBuild();
}
function loadMap(mapConfig) {
confmap = mapConfig;
mapId = confmap.mapid;
mapTitle = confmap.title;
(gotoAndStop("map"));// not popped
rr.utils.Delegate.callDelayed(this, initLoadMap, 500);
}
function initLoadMap() {
new cr.map.Map();
new cr.map.StageCam();
setLoad(0, "creating map");
_global.stage.init();
_global.map.init();
_global.camera.init();
_global.railcontrol.init();
_global.stage.createLoadedMap();
}
function createLevel(mapConfig) {
confmap = mapConfig;
mapId = confmap.mapid;
mapTitle = confmap.title;
levelTitle = "";
(gotoAndStop("level"));// not popped
rr.utils.Delegate.callDelayed(this, initCreateLevel, 500);
}
function initCreateLevel() {
new cr.level.LevelMap();
new cr.level.LevelCam();
_global.stage.init();
_global.map.init();
_global.camera.init();
_global.levelcontrol.init();
}
function loadLevel(levelConfig) {
conflevel = levelConfig;
confmap = levelConfig.map;
levelTitle = conflevel.title;
(gotoAndStop("level"));// not popped
rr.utils.Delegate.callDelayed(this, initLoadLevel, 500);
}
function initLoadLevel() {
new cr.level.LevelMap();
new cr.level.LevelCam();
setLoad(0, "creating level");
_global.stage.init();
_global.map.init();
_global.camera.init();
_global.levelcontrol.init();
_global.stage.createLoadedLevel();
}
function setLoad(perc, lbl) {
if (perc == 50) {
} else {
load_mc.ldr_txt.text = lbl.toUpperCase();
load_mc.gotoAndStop(perc);
load_mc._visible = true;
}
}
}
Symbol 3544 MovieClip [__Packages.cr.map.Map] Frame 0
class cr.map.Map extends rr.BaseClass
{
var mapId, cols, rows, width, height, maptype, map_bmp, firstrail, lastrail, cells;
function Map () {
super();
_global.map = this;
}
function init() {
mapId = _global.createcontrol.mapId;
cols = rr.conf.Config.getMapValue(mapId, "cols");
rows = rr.conf.Config.getMapValue(mapId, "rows");
width = cols * 640;
height = rows * 480;
maptype = rr.conf.Config.getMapValue(mapId, "maptype");
map_bmp = flash.display.BitmapData.loadBitmap("map_" + mapId);
firstrail = rr.conf.Config.getMapValue(mapId, "firstrail");
lastrail = rr.conf.Config.getMapValue(mapId, "lastrail");
createMapCells();
initMapCells();
}
function createMapCells() {
cells = [];
var _local3 = 1;
while (_local3 <= cols) {
var _local2 = 1;
while (_local2 <= rows) {
cells.push(new cr.map.MapCell(_local3, _local2));
_local2++;
}
_local3++;
}
}
function initMapCells() {
drawMiniMap();
var _local3 = cells.length;
var _local2 = 0;
while (_local2 < _local3) {
cells[_local2].createNeighbours();
cells[_local2].createBackground();
_local2++;
}
map_bmp.dispose();
delete map_bmp;
}
function drawMiniMap() {
_global.minimap.init();
_global.minimap.label_mc._visible = false;
_global.minimap.legenda_mc._visible = false;
var _local4 = new flash.geom.Matrix();
var _local3 = _global.minimap.scale;
_local4.scale(_local3, _local3);
_global.minimap.map_bmp.draw(map_bmp, _local4);
}
function getCell(cId) {
var _local3 = cells.length;
var _local2 = 0;
while (_local2 < _local3) {
if (cells[_local2].id == cId) {
return(cells[_local2]);
}
_local2++;
}
}
function getCellByPos(x, y) {
var _local6 = cells.length;
var _local3 = 0;
while (_local3 < _local6) {
var _local2 = cells[_local3];
if ((((x >= _local2.left) && (x < _local2.right)) && (y >= _local2.top)) && (y < _local2.bottom)) {
return(_local2);
}
_local3++;
}
}
}
Symbol 3545 MovieClip [__Packages.cr.map.MapCell] Frame 0
class cr.map.MapCell extends rr.BaseClass
{
var colId, rowId, width, height, id, left, right, top, bottom, center, bg_bmp, nb, da, rectX, rectY, rectW, rectH, pX, pY, isFocused;
function MapCell (cId, rId) {
super();
colId = cId;
rowId = rId;
init();
}
function init() {
width = 640;
height = 480;
id = (colId + "_") + rowId;
left = (colId - 1) * width;
right = colId * width;
top = (rowId - 1) * height;
bottom = rowId * height;
center = new flash.geom.Point(left + (width / 2), top + (height / 2));
}
function createBackground() {
var _local3 = new flash.geom.Rectangle(left, top, width, height);
bg_bmp = new flash.display.BitmapData(width, height, true, 0);
bg_bmp.copyPixels(_global.map.map_bmp, _local3, new flash.geom.Point(0, 0), null, null, true);
}
function createNeighbours() {
nb = [];
nb[1] = (((colId > 1) && (rowId > 1)) ? (_global.map.getCell(((colId - 1) + "_") + (rowId - 1))) : undefined);
nb[2] = ((rowId > 1) ? (_global.map.getCell((colId + "_") + (rowId - 1))) : undefined);
nb[3] = (((colId < _global.map.cols) && (rowId > 1)) ? (_global.map.getCell(((colId + 1) + "_") + (rowId - 1))) : undefined);
nb[4] = ((colId > 1) ? (_global.map.getCell(((colId - 1) + "_") + rowId)) : undefined);
nb[5] = ((colId < _global.map.cols) ? (_global.map.getCell(((colId + 1) + "_") + rowId)) : undefined);
nb[6] = (((colId > 1) && (rowId < _global.map.rows)) ? (_global.map.getCell(((colId - 1) + "_") + (rowId + 1))) : undefined);
nb[7] = ((rowId < _global.map.rows) ? (_global.map.getCell((colId + "_") + (rowId + 1))) : undefined);
nb[8] = (((colId < _global.map.cols) && (rowId < _global.map.rows)) ? (_global.map.getCell(((colId + 1) + "_") + (rowId + 1))) : undefined);
}
function update() {
var _local5 = _global.camera.left;
var _local7 = _global.camera.right;
var _local6 = _global.camera.top;
var _local8 = _global.camera.bottom;
if ((((_local7 < left) || (_local5 > right)) || (_local8 < top)) || (_local6 > bottom)) {
da = undefined;
} else {
rectX = ((left > _local5) ? 0 : (_local5 - left));
rectY = ((top < _local6) ? 0 : (_local6 - top));
rectW = ((rectX == 0) ? (_local7 - left) : (right - _local5));
rectH = ((rectY == 0) ? (_local8 - top) : (bottom - _local6));
pX = ((rectX == 0) ? (_global.stage.width - rectW) : 0);
pY = ((rectY == 0) ? (_global.stage.height - rectH) : 0);
da = {rect:new flash.geom.Rectangle(rectX, rectY, rectW, rectH), point:new flash.geom.Point(pX, pY)};
}
if (da) {
_global.stage.bg_bmp.copyPixels(bg_bmp, da.rect, da.point, null, null, true);
}
if (isFocused) {
var _local4 = nb.length;
var _local3 = 0;
while (_local3 < _local4) {
nb[_local3].update();
_local3++;
}
}
}
function checkFocus(x, y) {
if ((((x >= left) && (x < right)) && (y >= top)) && (y < bottom)) {
return(undefined);
}
isFocused = false;
}
}
Symbol 3546 MovieClip [__Packages.cr.map.StageCam] Frame 0
class cr.map.StageCam extends rr.BaseClass
{
var follow, width, height, minx, miny, maxx, maxy, x, y, left, right, top, bottom, xs, ys, xsprev, ysprev, cell, xdif, ydif, rcfollowx, rcfollowy;
function StageCam () {
super();
_global.camera = this;
}
function init() {
follow = "mouse";
width = _global.stage.width;
height = _global.stage.height;
minx = width / 2;
miny = height / 2;
maxx = _global.map.width - (width / 2);
maxy = _global.map.height - (height / 2);
x = _global.map.firstrail.x;
y = _global.map.firstrail.y;
x = ((x < minx) ? (minx) : (((x > maxx) ? (maxx) : (x))));
y = ((y < miny) ? (miny) : (((y > maxy) ? (maxy) : (y))));
left = x - (width / 2);
right = x + (width / 2);
top = y - (height / 2);
bottom = y + (height / 2);
_global.minimap.addEventListener("onMiniMapCamReset", this);
xs = (ys = (xsprev = (ysprev = 0)));
cell = _global.map.getCellByPos(x, y);
cell.isFocused = true;
cell.update();
}
function update() {
if (_global.railcontrol.isButtonDown) {
return(undefined);
}
follow = (Key.isDown(17) ? "mouse" : "");
if (follow == "mouse") {
if (_global.stage._ymouse > 480) {
xs = (ys = 0);
} else {
xdif = _global.stage._xmouse - (width / 2);
ydif = _global.stage._ymouse - (height / 2);
xs = xdif / 20;
ys = ydif / 20;
}
} else if (_global.stage.rsSel) {
var _local3 = _global.stage.rsSel.getPoint((_global.stage.rsSel.length * 3) / 4);
xdif = _local3.x - x;
ydif = _local3.y - y;
if (Math.abs(xdif) > 150) {
rcfollowx = true;
} else if (Math.abs(xdif) < 50) {
rcfollowx = false;
}
if (Math.abs(ydif) > 150) {
rcfollowy = true;
} else if (Math.abs(ydif) < 10) {
rcfollowy = false;
}
xs = (rcfollowx ? (xdif / 20) : 0);
ys = (rcfollowy ? (ydif / 20) : 0);
} else {
return(undefined);
}
if (Math.abs(xs - xsprev) < 0.5) {
xs = xsprev;
}
if (Math.abs(ys - ysprev) < 0.5) {
ys = ysprev;
}
xsprev = xs;
ysprev = ys;
x = (((x + xs) < minx) ? (minx) : (((Math.round(x + xs) > maxx) ? (maxx) : (Math.round(x + xs)))));
y = (((y + ys) < miny) ? (miny) : (((Math.round(y + ys) > maxy) ? (maxy) : (Math.round(y + ys)))));
_global.minimap.setCam();
left = x - (width / 2);
right = x + (width / 2);
top = y - (height / 2);
bottom = y + (height / 2);
cell.checkFocus(x, y);
if (!cell.isFocused) {
cell = _global.map.getCellByPos(x, y);
cell.isFocused = true;
}
cell.update();
}
function onMiniMapCamReset() {
left = _global.minimap.cam_mc._x / _global.minimap.scale;
top = (_global.minimap.cam_mc._y - _global.minimap.map_mc._y) / _global.minimap.scale;
x = left + (width / 2);
y = top + (height / 2);
right = x + (width / 2);
bottom = y + (height / 2);
cell.checkFocus(x, y);
cell = _global.map.getCellByPos(x, y);
cell.isFocused = true;
cell.update();
}
}
Symbol 3547 MovieClip [__Packages.cr.level.LevelMap] Frame 0
class cr.level.LevelMap extends rr.BaseClass
{
var confmap, mapId, maptype, cols, rows, width, height, map_bmp, pi, rc, rs, cells;
function LevelMap () {
super();
_global.map = this;
}
function init() {
confmap = _global.createcontrol.confmap;
mapId = confmap.mapid;
maptype = rr.conf.Config.getMapValue(mapId, "maptype");
cols = rr.conf.Config.getMapValue(mapId, "cols");
rows = rr.conf.Config.getMapValue(mapId, "rows");
width = cols * 640;
height = rows * 480;
map_bmp = flash.display.BitmapData.loadBitmap("map_" + mapId);
createCompounds();
createMapCells();
createRailConnections();
createRailSegments();
initMapCells();
}
function createCompounds() {
var _local3 = confmap.cp;
var _local4 = _local3.length;
var _local2 = 0;
while (_local2 < _local4) {
drawCompound(_local3[_local2], "base");
drawCompound(_local3[_local2], "top");
_local2++;
}
}
function drawCompound(conf, part) {
var _local2 = flash.display.BitmapData.loadBitmap("grass1_" + part);
var _local3 = new flash.display.BitmapData(500, 500, true, 0);
var _local6 = new flash.geom.Rectangle(0, 0, 500, 500);
var _local4 = new flash.geom.Matrix();
_local4.translate((-_local2.width) / 2, (-_local2.height) / 2);
_local4.rotate((rr.utils.MathUtils.formatAngle(conf.rot) / 180) * pi);
_local4.translate((_local2.width / 2) + 250, (_local2.height / 2) + 250);
_local3.draw(_local2, _local4);
map_bmp.copyPixels(_local3, _local6, new flash.geom.Point((conf.x - 250) - (_local2.width / 2), (conf.y - 250) - (_local2.height / 2)), null, null, true);
_local2.dispose();
_local3.dispose();
}
function createRailConnections() {
var _local3 = confmap.rc;
rc = [];
var _local4 = _local3.length;
var _local2 = 0;
while (_local2 < _local4) {
rc.push(_local3[_local2].id);
this["rc" + _local3[_local2].id] = new cr.level.LevelRailConnection(_local3[_local2]);
_local2++;
}
}
function createRailSegments() {
var _local3 = confmap.rs;
rs = [];
var _local4 = _local3.length;
var _local2 = 0;
while (_local2 < _local4) {
rs.push(_local3[_local2].id);
this["rs" + _local3[_local2].id] = new cr.level.LevelRailSegment(_local3[_local2]);
_local2++;
}
}
function createMapCells() {
cells = [];
var _local3 = 1;
while (_local3 <= cols) {
var _local2 = 1;
while (_local2 <= rows) {
cells.push(new cr.level.LevelMapCell(_local3, _local2));
_local2++;
}
_local3++;
}
}
function initMapCells() {
drawMiniMap();
var _local3 = rs.length;
var _local2 = 0;
while (_local2 < _local3) {
cr.level.LevelUtils.draw(this["rs" + rs[_local2]], "rail_bg");
_local2++;
}
_local2 = 0;
while (_local2 < _local3) {
cr.level.LevelUtils.draw(this["rs" + rs[_local2]], "rail_beam");
_local2++;
}
_local2 = 0;
while (_local2 < _local3) {
cr.level.LevelUtils.draw(this["rs" + rs[_local2]], "rail");
_local2++;
}
_local3 = cells.length;
_local2 = 0;
while (_local2 < _local3) {
cells[_local2].createNeighbours();
cells[_local2].createBackground();
_local2++;
}
map_bmp.dispose();
delete map_bmp;
}
function drawMiniMap() {
_global.minimap.init();
var _local4 = new flash.geom.Matrix();
var _local3 = _global.minimap.scale;
_local4.scale(_local3, _local3);
_global.minimap.map_bmp.draw(map_bmp, _local4);
}
function getCell(cId) {
var _local3 = cells.length;
var _local2 = 0;
while (_local2 < _local3) {
if (cells[_local2].id == cId) {
return(cells[_local2]);
}
_local2++;
}
}
function getCellByPos(x, y) {
var _local6 = cells.length;
var _local3 = 0;
while (_local3 < _local6) {
var _local2 = cells[_local3];
if ((((x >= _local2.left) && (x < _local2.right)) && (y >= _local2.top)) && (y < _local2.bottom)) {
return(_local2);
}
_local3++;
}
}
}
Symbol 3548 MovieClip [__Packages.cr.level.LevelRailConnection] Frame 0
class cr.level.LevelRailConnection
{
var id, x, y, ang, s, ins, outs;
function LevelRailConnection (initObj) {
id = initObj.id;
x = initObj.x;
y = initObj.y;
ang = initObj.a;
s = initObj.s;
ins = [];
outs = [];
}
}
Symbol 3549 MovieClip [__Packages.cr.level.LevelRailSegment] Frame 0
class cr.level.LevelRailSegment
{
var id, type, rcs, rce, eo, t, ang, length, radius, dir;
function LevelRailSegment (initObj) {
id = initObj.id;
type = (initObj.r ? "arc" : "line");
rcs = _global.map["rc" + initObj.s];
rce = _global.map["rc" + initObj.e];
eo = initObj.eo;
t = initObj.t;
if (t) {
rcs.ins.push(id);
ang = rcs.ang + 180;
} else {
rcs.outs.push(id);
ang = rcs.ang;
}
if (eo) {
rce.outs.push(id);
} else {
rce.ins.push(id);
}
if (type == "line") {
length = rr.utils.MathUtils.getDistance(rcs.x, rcs.y, rce.x, rce.y);
}
if (type == "arc") {
radius = initObj.r;
dir = initObj.d;
length = initObj.l;
}
}
var pi = Math.PI;
var cos = Math.cos;
var acos = Math.acos;
var sin = Math.sin;
var asin = Math.asin;
var atan2 = Math.atan2;
}
Symbol 3550 MovieClip [__Packages.cr.level.LevelMapCell] Frame 0
class cr.level.LevelMapCell extends rr.BaseClass
{
var colId, rowId, width, height, id, left, right, top, bottom, center, bg_bmp, nb, da, rectX, rectY, rectW, rectH, pX, pY, isFocused;
function LevelMapCell (cId, rId) {
super();
colId = cId;
rowId = rId;
init();
}
function init() {
width = 640;
height = 480;
id = (colId + "_") + rowId;
left = (colId - 1) * width;
right = colId * width;
top = (rowId - 1) * height;
bottom = rowId * height;
center = new flash.geom.Point(left + (width / 2), top + (height / 2));
}
function createBackground() {
var _local3 = new flash.geom.Rectangle(left, top, width, height);
bg_bmp = new flash.display.BitmapData(width, height, true, 0);
bg_bmp.copyPixels(_global.map.map_bmp, _local3, new flash.geom.Point(0, 0), null, null, true);
}
function createNeighbours() {
nb = [];
nb[1] = (((colId > 1) && (rowId > 1)) ? (_global.map.getCell(((colId - 1) + "_") + (rowId - 1))) : undefined);
nb[2] = ((rowId > 1) ? (_global.map.getCell((colId + "_") + (rowId - 1))) : undefined);
nb[3] = (((colId < _global.map.cols) && (rowId > 1)) ? (_global.map.getCell(((colId + 1) + "_") + (rowId - 1))) : undefined);
nb[4] = ((colId > 1) ? (_global.map.getCell(((colId - 1) + "_") + rowId)) : undefined);
nb[5] = ((colId < _global.map.cols) ? (_global.map.getCell(((colId + 1) + "_") + rowId)) : undefined);
nb[6] = (((colId > 1) && (rowId < _global.map.rows)) ? (_global.map.getCell(((colId - 1) + "_") + (rowId + 1))) : undefined);
nb[7] = ((rowId < _global.map.rows) ? (_global.map.getCell((colId + "_") + (rowId + 1))) : undefined);
nb[8] = (((colId < _global.map.cols) && (rowId < _global.map.rows)) ? (_global.map.getCell(((colId + 1) + "_") + (rowId + 1))) : undefined);
}
function update() {
var _local5 = _global.camera.left;
var _local7 = _global.camera.right;
var _local6 = _global.camera.top;
var _local8 = _global.camera.bottom;
if ((((_local7 < left) || (_local5 > right)) || (_local8 < top)) || (_local6 > bottom)) {
da = undefined;
} else {
rectX = ((left > _local5) ? 0 : (_local5 - left));
rectY = ((top < _local6) ? 0 : (_local6 - top));
rectW = ((rectX == 0) ? (_local7 - left) : (right - _local5));
rectH = ((rectY == 0) ? (_local8 - top) : (bottom - _local6));
pX = ((rectX == 0) ? (_global.stage.width - rectW) : 0);
pY = ((rectY == 0) ? (_global.stage.height - rectH) : 0);
da = {rect:new flash.geom.Rectangle(rectX, rectY, rectW, rectH), point:new flash.geom.Point(pX, pY)};
}
if (da) {
_global.stage.bg_bmp.copyPixels(bg_bmp, da.rect, da.point, null, null, true);
}
if (isFocused) {
var _local4 = nb.length;
var _local3 = 0;
while (_local3 < _local4) {
nb[_local3].update();
_local3++;
}
}
}
function checkFocus(x, y) {
if ((((x >= left) && (x < right)) && (y >= top)) && (y < bottom)) {
return(undefined);
}
isFocused = false;
}
}
Symbol 3551 MovieClip [__Packages.cr.level.LevelUtils] Frame 0
class cr.level.LevelUtils
{
function LevelUtils () {
}
static function draw(rs, element) {
if (rs.type == "line") {
drawLine(rs, element);
}
if (rs.type == "arc") {
drawArc(rs, element);
}
}
static function drawLine(rs, element) {
var _local9 = Math.PI;
var _local15 = Math.cos;
var _local14 = Math.sin;
var _local8 = flash.display.BitmapData.loadBitmap(element);
var _local12;
var _local11;
var _local10 = rr.utils.MathUtils.formatAngle(rs.ang);
var _local7 = new flash.geom.Point(_local8.width / 2, _local8.height / 2);
var _local2 = new flash.geom.Matrix();
var _local4 = 0;
while (_local4 <= rs.length) {
_local12 = _local15((_local10 * _local9) / 180) * _local4;
_local11 = (-_local14((_local10 * _local9) / 180)) * _local4;
_local2.identity();
_local2.translate(-_local7.x, -_local7.y);
_local2.rotate((rr.utils.MathUtils.formatAngle(-_local10) / 180) * _local9);
_local2.translate(rs.rcs.x + _local12, rs.rcs.y + _local11);
if (element == "rail_bg") {
_global.map.map_bmp.draw(_local8, _local2, null, "overlay");
} else {
_global.map.map_bmp.draw(_local8, _local2);
}
if (element == "rail") {
var _local6 = new flash.display.BitmapData(7, 7, false, _global.minimap.railcolor);
var _local3 = _global.minimap.scale;
_local2.identity();
_local2.scale(_local3, _local3);
_local2.translate((-_local7.x) * _local3, (-_local7.y) * _local3);
_local2.translate((rs.rcs.x + _local12) * _local3, (rs.rcs.y + _local11) * _local3);
_global.minimap.map_bmp.draw(_local6, _local2);
_local6.dispose();
}
_local4 = _local4 + _local8.width;
}
_local8.dispose();
}
static function drawArc(rs, element) {
var _local9 = Math.PI;
var _local17 = Math.cos;
var _local16 = Math.sin;
var _local10 = flash.display.BitmapData.loadBitmap(element);
var _local7 = new flash.geom.Point(_local10.width / 2, _local10.height / 2);
var _local2 = new flash.geom.Matrix();
var _local12;
var _local11;
var _local19 = rs.length / _local10.width;
var _local15 = rr.utils.MathUtils.formatAngle(rs.ang - 90);
var _local13 = new flash.geom.Point((-rs.dir) * (rs.radius * _local17((_local15 * _local9) / 180)), rs.dir * (rs.radius * _local16((_local15 * _local9) / 180)));
var _local18 = (rs.dir * 180) / ((rs.radius * _local9) / _local10.width);
var _local8;
var _local6 = 0;
while (_local6 <= _local19) {
_local8 = rr.utils.MathUtils.formatAngle(_local15 + (_local6 * _local18));
_local12 = _local13.x + ((rs.dir * rs.radius) * _local17((_local8 * _local9) / 180));
_local11 = _local13.y - ((rs.dir * rs.radius) * _local16((_local8 * _local9) / 180));
_local2.identity();
_local2.translate(-_local7.x, -_local7.y);
_local2.rotate((rr.utils.MathUtils.formatAngle((-_local8) - 90) / 180) * _local9);
_local2.translate(rs.rcs.x + _local12, rs.rcs.y + _local11);
if (element == "rail_bg") {
_global.map.map_bmp.draw(_local10, _local2, null, "overlay");
} else {
_global.map.map_bmp.draw(_local10, _local2, null);
}
if (element == "rail") {
var _local5 = new flash.display.BitmapData(7, 7, false, _global.minimap.railcolor);
var _local4 = _global.minimap.scale;
_local2.identity();
_local2.scale(_local4, _local4);
_local2.translate((-_local7.x) * _local4, (-_local7.y) * _local4);
_local2.translate((rs.rcs.x + _local12) * _local4, (rs.rcs.y + _local11) * _local4);
_global.minimap.map_bmp.draw(_local5, _local2);
_local5.dispose();
}
_local6++;
}
_local10.dispose();
}
}
Symbol 3552 MovieClip [__Packages.cr.level.LevelCam] Frame 0
class cr.level.LevelCam extends rr.BaseClass
{
var follow, width, height, minx, miny, maxx, maxy, x, y, left, right, top, bottom, cell, xs, ys, xdif, ydif, xsprev, ysprev;
function LevelCam () {
super();
_global.camera = this;
}
function init() {
follow = "mouse";
width = _global.stage.width;
height = _global.stage.height;
minx = width / 2;
miny = height / 2;
maxx = _global.map.width - (width / 2);
maxy = _global.map.height - (height / 2);
x = (rr.conf.Config.getMapValue(_global.map.mapId, "startcol") * _global.stage.width) - (_global.stage.width / 2);
y = (rr.conf.Config.getMapValue(_global.map.mapId, "startrow") * _global.stage.height) - (_global.stage.height / 2);
x = ((x < minx) ? (minx) : (((x > maxx) ? (maxx) : (x))));
y = ((y < miny) ? (miny) : (((y > maxy) ? (maxy) : (y))));
left = x - (width / 2);
right = x + (width / 2);
top = y - (height / 2);
bottom = y + (height / 2);
_global.minimap.addEventListener("onMiniMapCamReset", this);
cell = _global.map.getCellByPos(x, y);
cell.isFocused = true;
cell.update();
}
function update() {
follow = (Key.isDown(17) ? "mouse" : "");
if (follow == "mouse") {
if (_global.stage._ymouse > 480) {
xs = (ys = 0);
} else {
xdif = _global.stage._xmouse - (width / 2);
ydif = _global.stage._ymouse - (height / 2);
xs = xdif / 20;
ys = ydif / 20;
}
} else {
return(undefined);
}
if (Math.abs(xs - xsprev) < 0.5) {
xs = xsprev;
}
if (Math.abs(ys - ysprev) < 0.5) {
ys = ysprev;
}
xsprev = xs;
ysprev = ys;
x = (((x + xs) < minx) ? (minx) : (((Math.round(x + xs) > maxx) ? (maxx) : (Math.round(x + xs)))));
y = (((y + ys) < miny) ? (miny) : (((Math.round(y + ys) > maxy) ? (maxy) : (Math.round(y + ys)))));
_global.minimap.setCam();
left = x - (width / 2);
right = x + (width / 2);
top = y - (height / 2);
bottom = y + (height / 2);
cell.checkFocus(x, y);
if (!cell.isFocused) {
cell = _global.map.getCellByPos(x, y);
cell.isFocused = true;
}
cell.update();
}
function onMiniMapCamReset() {
left = _global.minimap.cam_mc._x / _global.minimap.scale;
top = (_global.minimap.cam_mc._y - _global.minimap.map_mc._y) / _global.minimap.scale;
x = left + (width / 2);
y = top + (height / 2);
right = x + (width / 2);
bottom = y + (height / 2);
cell.checkFocus(x, y);
cell = _global.map.getCellByPos(x, y);
cell.isFocused = true;
cell.update();
}
}
Symbol 3553 MovieClip [__Packages.rr.Hangar] Frame 0
class rr.Hangar extends rr.BaseClip
{
var locs, levelId;
function Hangar () {
super();
init();
}
function init() {
locs = ["SaddleTank", "BulpFrog", "Rhino", "Loewy", "Pennsylvania", "SuperChief", "Dragon", "ICE"];
levelId = _global.superlevel;
setLocs();
}
function setLocs() {
var _local8 = locs.length;
var _local4 = 0;
while (_local4 < _local8) {
var _local3 = locs[_local4].toString();
var _local7 = rr.conf.Config.getObjectValue(_local3, "availabilityLevel");
var _local2 = this[_local3 + "_mc"];
var _local5 = this[_local3 + "_btn"];
var _local6 = this[_local3 + "_lock"];
if ((levelId >= _local7) && (_local4 < 2)) {
_local2._alpha = 100;
_local2.tar = 100;
_local5.onPress = rr.utils.Delegate.create(this, toggleLoc, _local2);
_local6._visible = false;
} else {
_local2._visible = false;
_local5._alpha = 20;
_local6._visible = true;
}
_local4++;
}
}
function toggleLoc(mc) {
mc.tar = ((mc.tar == 100) ? 0 : 100);
if (mc.onEnterFrame == undefined) {
mc.onEnterFrame = rr.utils.Delegate.create(this, fade, mc);
}
}
function fade(mc) {
if (mc._alpha > mc.tar) {
mc._alpha = Math.round(mc._alpha - 2);
} else if (mc._alpha < mc.tar) {
mc._alpha = Math.round(mc._alpha + 2);
} else {
delete mc.onEnterFrame;
}
}
}
Symbol 3554 MovieClip [__Packages.rr.MissionMenu] Frame 0
class rr.MissionMenu extends rr.BaseClip
{
var _visible;
function MissionMenu () {
super();
_global.missionmenu = this;
_visible = false;
}
function playMission(id) {
trace("miss id: " + id);
var _local2 = 0;
while (_local2 <= 10) {
this[("mission" + _local2) + "_mc"]._visible = false;
this[("mission" + _local2) + "_mc"].gotoAndStop(1);
_local2++;
}
this[("mission" + id) + "_mc"]._visible = true;
_visible = true;
this[("mission" + id) + "_mc"].gotoAndPlay(1);
}
}
Symbol 80 MovieClip [MiniMapIcon] Frame 1
stop();
Symbol 80 MovieClip [MiniMapIcon] Frame 2
stop();
Symbol 80 MovieClip [MiniMapIcon] Frame 3
stop();
Symbol 88 Button
on (press) {
this.gotoAndStop(224);
}
Symbol 109 Button
on (press) {
this.gotoAndPlay(this._currentframe + 1);
}
Symbol 137 Button
on (release) {
_global.game.startLevel();
}
Symbol 138 MovieClip Frame 73
stop();
Symbol 138 MovieClip Frame 121
stop();
Symbol 138 MovieClip Frame 224
stop();
Symbol 139 Button
on (press) {
this.gotoAndStop(155);
}
Symbol 167 MovieClip Frame 1
stop();
Symbol 187 MovieClip Frame 52
stop();
Symbol 187 MovieClip Frame 155
stop();
Symbol 192 Button
on (press) {
_global.control.quitGame();
}
Symbol 193 MovieClip [MissionMenu] Frame 1
#initclip 329
Object.registerClass("MissionMenu", rr.MissionMenu);
#endinitclip
Symbol 200 MovieClip [AirCraneLoad] Frame 1
stop();
Symbol 205 MovieClip [MiniMap] Frame 1
#initclip 253
Object.registerClass("MiniMap", rr.control.MiniMap);
#endinitclip
Symbol 222 MovieClip [Card ICE] Frame 1
#initclip 254
Object.registerClass("Card ICE", rr.control.TabCardLocomotive);
#endinitclip
Symbol 231 MovieClip [Card Dragon] Frame 1
#initclip 255
Object.registerClass("Card Dragon", rr.control.TabCardLocomotive);
#endinitclip
Symbol 239 MovieClip [Card SuperChief] Frame 1
#initclip 256
Object.registerClass("Card SuperChief", rr.control.TabCardLocomotive);
#endinitclip
Symbol 248 MovieClip [Card Pennsylvania] Frame 1
#initclip 257
Object.registerClass("Card Pennsylvania", rr.control.TabCardLocomotive);
#endinitclip
Symbol 256 MovieClip [Card Loewy] Frame 1
#initclip 258
Object.registerClass("Card Loewy", rr.control.TabCardLocomotive);
#endinitclip
Symbol 264 MovieClip [Card Rhino] Frame 1
#initclip 259
Object.registerClass("Card Rhino", rr.control.TabCardLocomotive);
#endinitclip
Symbol 280 MovieClip [Card BulpFrog] Frame 1
#initclip 260
Object.registerClass("Card BulpFrog", rr.control.TabCardLocomotive);
#endinitclip
Symbol 292 MovieClip [Card SaddleTank] Frame 1
#initclip 261
Object.registerClass("Card SaddleTank", rr.control.TabCardLocomotive);
#endinitclip
Symbol 303 MovieClip [TrainSelect] Frame 1
#initclip 262
Object.registerClass("TrainSelect", rr.control.TrainSelect);
#endinitclip
Instance of Symbol 222 MovieClip [Card ICE] "IC_mc" in Symbol 303 MovieClip [TrainSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "ICE";
}
Instance of Symbol 231 MovieClip [Card Dragon] "DR_mc" in Symbol 303 MovieClip [TrainSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "Dragon";
}
Instance of Symbol 239 MovieClip [Card SuperChief] "SC_mc" in Symbol 303 MovieClip [TrainSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "SuperChief";
}
Instance of Symbol 248 MovieClip [Card Pennsylvania] "PN_mc" in Symbol 303 MovieClip [TrainSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "Pennsylvania";
}
Instance of Symbol 256 MovieClip [Card Loewy] "LW_mc" in Symbol 303 MovieClip [TrainSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "Loewy";
}
Instance of Symbol 264 MovieClip [Card Rhino] "RH_mc" in Symbol 303 MovieClip [TrainSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "Rhino";
}
Instance of Symbol 280 MovieClip [Card BulpFrog] "BF_mc" in Symbol 303 MovieClip [TrainSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "BulpFrog";
}
Instance of Symbol 292 MovieClip [Card SaddleTank] "ST_mc" in Symbol 303 MovieClip [TrainSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "SaddleTank";
}
Symbol 313 MovieClip [Card PowerGenerator] Frame 1
#initclip 263
Object.registerClass("Card PowerGenerator", rr.control.TabCardWeapon);
#endinitclip
Symbol 320 MovieClip [Card Oiltank] Frame 1
#initclip 264
Object.registerClass("Card Oiltank", rr.control.TabCardWeapon);
#endinitclip
Symbol 327 MovieClip [Card ColeCart] Frame 1
#initclip 265
Object.registerClass("Card ColeCart", rr.control.TabCardWeapon);
#endinitclip
Symbol 334 MovieClip [Card Size4 Wagon] Frame 1
#initclip 266
Object.registerClass("Card Size4 Wagon", rr.control.TabCardWagon);
#endinitclip
Symbol 341 MovieClip [Card Size3 Wagon] Frame 1
#initclip 267
Object.registerClass("Card Size3 Wagon", rr.control.TabCardWagon);
#endinitclip
Symbol 350 MovieClip [Card Size2 Wagon] Frame 1
#initclip 268
Object.registerClass("Card Size2 Wagon", rr.control.TabCardWagon);
#endinitclip
Symbol 360 MovieClip [Card Size1 Wagon] Frame 1
#initclip 269
Object.registerClass("Card Size1 Wagon", rr.control.TabCardWagon);
#endinitclip
Symbol 361 MovieClip [WagonSelect] Frame 1
#initclip 270
Object.registerClass("WagonSelect", rr.control.WagonSelect);
#endinitclip
Instance of Symbol 313 MovieClip [Card PowerGenerator] "PG_mc" in Symbol 361 MovieClip [WagonSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "PowerGenerator";
}
Instance of Symbol 320 MovieClip [Card Oiltank] "OT_mc" in Symbol 361 MovieClip [WagonSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "OilTank";
}
Instance of Symbol 327 MovieClip [Card ColeCart] "CC_mc" in Symbol 361 MovieClip [WagonSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "ColeCart";
}
Instance of Symbol 334 MovieClip [Card Size4 Wagon] "W4_mc" in Symbol 361 MovieClip [WagonSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "Wagon4";
}
Instance of Symbol 341 MovieClip [Card Size3 Wagon] "W3_mc" in Symbol 361 MovieClip [WagonSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "Wagon3";
}
Instance of Symbol 350 MovieClip [Card Size2 Wagon] "W2_mc" in Symbol 361 MovieClip [WagonSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "Wagon2";
}
Instance of Symbol 360 MovieClip [Card Size1 Wagon] "W1_mc" in Symbol 361 MovieClip [WagonSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "Wagon1";
}
Symbol 371 MovieClip [XmlControl] Frame 1
#initclip 271
Object.registerClass("XmlControl", cr.XmlControl);
#endinitclip
Symbol 404 MovieClip [XmlImport] Frame 1
#initclip 272
Object.registerClass("XmlImport", cr.XmlImport);
#endinitclip
Symbol 597 MovieClip Frame 26
stop();
Symbol 598 MovieClip [BellHuey] Frame 1
stop();
Symbol 598 MovieClip [BellHuey] Frame 35
stop();
Symbol 608 MovieClip [DropHolderImage] Frame 1
stop();
Symbol 624 MovieClip [CompoundHolder] Frame 1
stop();
Symbol 624 MovieClip [CompoundHolder] Frame 2
stop();
Symbol 624 MovieClip [CompoundHolder] Frame 3
stop();
Symbol 657 MovieClip Frame 1
stop();
Symbol 660 MovieClip Frame 1
stop();
Symbol 666 MovieClip [MapContainer] Frame 1
#initclip 273
Object.registerClass("MapContainer", cr.map.MapContainer);
#endinitclip
Symbol 667 MovieClip [NewMapContainer] Frame 1
#initclip 274
Object.registerClass("NewMapContainer", cr.map.NewMapContainer);
#endinitclip
Symbol 670 MovieClip [LevelContainer] Frame 1
#initclip 275
Object.registerClass("LevelContainer", cr.level.LevelContainer);
#endinitclip
Symbol 673 MovieClip [GameContainer] Frame 1
#initclip 276
Object.registerClass("GameContainer", rr.GameContainer);
#endinitclip
Symbol 678 Button
on (press) {
gotoAndPlay ("savebox");
}
Symbol 685 Button
on (press) {
submit();
}
Symbol 686 MovieClip [SaveControl] Frame 1
#initclip 277
Object.registerClass("SaveControl", cr.SaveControl);
#endinitclip
result_txt._visible = false;
stop();
Symbol 686 MovieClip [SaveControl] Frame 14
title_txt.restrict = "a-zA-Z0-9";
header_txt.text = header;
title_txt.text = title;
Symbol 686 MovieClip [SaveControl] Frame 16
stop();
Symbol 686 MovieClip [SaveControl] Frame 23
result_txt._visible = true;
Symbol 686 MovieClip [SaveControl] Frame 24
result_txt._visible = false;
Symbol 686 MovieClip [SaveControl] Frame 25
result_txt._visible = true;
Symbol 686 MovieClip [SaveControl] Frame 26
result_txt._visible = false;
Symbol 686 MovieClip [SaveControl] Frame 27
result_txt._visible = true;
Symbol 686 MovieClip [SaveControl] Frame 28
result_txt._visible = false;
Symbol 686 MovieClip [SaveControl] Frame 29
result_txt._visible = true;
Symbol 686 MovieClip [SaveControl] Frame 44
result_txt._visible = false;
Symbol 686 MovieClip [SaveControl] Frame 51
Symbol 693 MovieClip Frame 1
stop();
Symbol 696 MovieClip Frame 1
stop();
Instance of Symbol 693 MovieClip "ne_mc" in Symbol 696 MovieClip Frame 1
on (press) {
_parent._parent.parent.setDirection("ne");
}
Instance of Symbol 693 MovieClip "se_mc" in Symbol 696 MovieClip Frame 1
on (press) {
_parent._parent.parent.setDirection("se");
}
Instance of Symbol 693 MovieClip "e_mc" in Symbol 696 MovieClip Frame 1
on (press) {
_parent._parent.parent.setDirection("e");
}
Instance of Symbol 693 MovieClip "nw_mc" in Symbol 696 MovieClip Frame 1
on (press) {
_parent._parent.parent.setDirection("nw");
}
Instance of Symbol 693 MovieClip "sw_mc" in Symbol 696 MovieClip Frame 1
on (press) {
_parent._parent.parent.setDirection("sw");
}
Instance of Symbol 693 MovieClip "w_mc" in Symbol 696 MovieClip Frame 1
on (press) {
_parent._parent.parent.setDirection("w");
}
Instance of Symbol 693 MovieClip "n_mc" in Symbol 696 MovieClip Frame 1
on (press) {
_parent._parent.parent.setDirection("n");
}
Instance of Symbol 693 MovieClip "s_mc" in Symbol 696 MovieClip Frame 1
on (press) {
_parent._parent.parent.setDirection("s");
}
Symbol 701 MovieClip [RailConnection] Frame 1
stop();
Symbol 702 MovieClip [Sounds] Frame 1
#initclip 278
Object.registerClass("Sounds", rr.Sounds);
#endinitclip
Symbol 703 MovieClip [Stage] Frame 1
#initclip 279
Object.registerClass("Stage", rr.Stage);
#endinitclip
Symbol 719 MovieClip [DamageMeter] Frame 1
#initclip 280
Object.registerClass("DamageMeter", rr.control.Damage);
#endinitclip
Symbol 733 MovieClip [Fuel meter] Frame 1
#initclip 281
Object.registerClass("Fuel meter", rr.control.FuelMeter);
#endinitclip
Symbol 749 MovieClip [Green Light] Frame 1
#initclip 282
Object.registerClass("Green Light", rr.control.SpeedLight);
#endinitclip
stop();
Symbol 749 MovieClip [Green Light] Frame 2
stop();
Symbol 749 MovieClip [Green Light] Frame 15
gotoAndPlay ("blink");
Symbol 757 MovieClip [Red light] Frame 1
#initclip 283
Object.registerClass("Red light", rr.control.SpeedLight);
#endinitclip
stop();
Symbol 757 MovieClip [Red light] Frame 2
stop();
Symbol 757 MovieClip [Red light] Frame 15
gotoAndPlay ("blink");
Symbol 765 MovieClip [Orange light] Frame 1
#initclip 284
Object.registerClass("Orange light", rr.control.SpeedLight);
#endinitclip
stop();
Symbol 765 MovieClip [Orange light] Frame 2
stop();
Symbol 765 MovieClip [Orange light] Frame 15
gotoAndPlay ("blink");
Instance of Symbol 749 MovieClip [Green Light] "light6_mc" in Symbol 766 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
speedref = 6;
}
Instance of Symbol 757 MovieClip [Red light] "light0_mc" in Symbol 766 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
speedref = 0;
}
Instance of Symbol 749 MovieClip [Green Light] "light5_mc" in Symbol 766 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
speedref = 5;
}
Instance of Symbol 749 MovieClip [Green Light] "light4_mc" in Symbol 766 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
speedref = 4;
}
Instance of Symbol 749 MovieClip [Green Light] "light3_mc" in Symbol 766 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
speedref = 3;
}
Instance of Symbol 749 MovieClip [Green Light] "light2_mc" in Symbol 766 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
speedref = 2;
}
Instance of Symbol 749 MovieClip [Green Light] "light1_mc" in Symbol 766 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
speedref = 1;
}
Instance of Symbol 765 MovieClip [Orange light] "light-2_mc" in Symbol 766 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
speedref = -2;
}
Instance of Symbol 765 MovieClip [Orange light] "light-1_mc" in Symbol 766 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
speedref = -1;
}
Instance of Symbol 765 MovieClip [Orange light] "light-3_mc" in Symbol 766 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
speedref = -3;
}
Symbol 819 MovieClip [CompoundMenu] Frame 1
#initclip 285
Object.registerClass("CompoundMenu", rr.control.CompoundMenu);
#endinitclip
Symbol 821 MovieClip [DisabledMenu] Frame 1
#initclip 286
Object.registerClass("DisabledMenu", rr.control.DisabledMenu);
#endinitclip
Symbol 854 MovieClip [Card Small Fast Cannon] Frame 1
#initclip 287
Object.registerClass("Card Small Fast Cannon", rr.control.TabCardWeapon);
#endinitclip
Symbol 863 MovieClip [Card RocketLauncher] Frame 1
#initclip 288
Object.registerClass("Card RocketLauncher", rr.control.TabCardWeapon);
#endinitclip
Symbol 874 Button
on (press) {
_root.gotoAndStop("buyfull");
}
Symbol 879 MovieClip Frame 1
stop();
Instance of Symbol 280 MovieClip [Card BulpFrog] in Symbol 879 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "BulpFrog";
}
Instance of Symbol 854 MovieClip [Card Small Fast Cannon] in Symbol 879 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "SmallFastCannon";
}
Instance of Symbol 863 MovieClip [Card RocketLauncher] in Symbol 879 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "RocketLauncher";
}
Symbol 884 Button
on (press) {
gotoAndStop (2);
}
Symbol 927 MovieClip Frame 1
stop();
Symbol 927 MovieClip Frame 30
gotoAndPlay (1);
Symbol 930 MovieClip Frame 1
this._visible = false;
Symbol 939 Button
on (release) {
gameURL = ("http://www.miniclip.com/games/" + gamename) + "/en/";
trace("Going to game: " + gameURL);
getURL (gameURL, "_blank");
}
Symbol 941 MovieClip Frame 1
System.security.allowDomain("www.miniclip.com");
Instance of Symbol 930 MovieClip "mcHighscores" in Symbol 941 MovieClip Frame 1
onClipEvent (load) {
_visible = false;
}
Symbol 941 MovieClip Frame 2
if ((((_url.indexOf("miniclip.com") == -1) && (_url.indexOf("miniclip.net") == -1)) && (_url.indexOf("miniclip.co.uk") == -1)) && (_url.indexOf("miniclips.com"))) {
gotoAndStop(_currentframe + 1);
} else {
var noCache = (getTimer() + random(100000));
mcTarget.loadMovie("http://www.miniclip.com/swfcontent/highscore.swf?noCache=" + noCache);
stop();
}
Symbol 941 MovieClip Frame 3
stop();
Symbol 942 MovieClip Frame 1
stop();
Instance of Symbol 941 MovieClip in Symbol 942 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
scoreLocation = "_level0.playerpoints";
gamename = "rowdemo";
saveScore = true;
scoreIsTime = false;
scoreReversed = false;
negativeScoreAllowed = false;
}
Symbol 942 MovieClip Frame 3
trace("frame .playerpoints: " + _level0.playerpoints);
stop();
Symbol 943 MovieClip [LevelResult] Frame 1
#initclip 289
Object.registerClass("LevelResult", rr.control.LevelResult);
#endinitclip
Symbol 956 MovieClip [TrainBuild] Frame 1
#initclip 290
Object.registerClass("TrainBuild", rr.control.TrainBuild);
#endinitclip
Symbol 998 MovieClip [SelectBox] Frame 1
#initclip 291
Object.registerClass("SelectBox", rr.control.SelectBox);
#endinitclip
Symbol 1004 Button
on (press) {
showTab("selectweapon");
}
Symbol 1009 Button
on (press) {
showTab("selectwagon");
}
Symbol 1014 Button
on (press) {
showTab("selecttrain");
}
Symbol 1053 MovieClip [Card Huge Cannon] Frame 1
#initclip 292
Object.registerClass("Card Huge Cannon", rr.control.TabCardWagon);
#endinitclip
Symbol 1060 MovieClip [Card EMP] Frame 1
#initclip 293
Object.registerClass("Card EMP", rr.control.TabCardWeapon);
#endinitclip
Symbol 1067 MovieClip [Card Large Cannon] Frame 1
#initclip 294
Object.registerClass("Card Large Cannon", rr.control.TabCardWeapon);
#endinitclip
Symbol 1074 MovieClip [Card BunkerBuster] Frame 1
#initclip 295
Object.registerClass("Card BunkerBuster", rr.control.TabCardWeapon);
#endinitclip
Symbol 1080 MovieClip [Card RailRockets] Frame 1
#initclip 296
Object.registerClass("Card RailRockets", rr.control.TabCardWeapon);
#endinitclip
Symbol 1089 MovieClip [Card Medium Cannon] Frame 1
#initclip 297
Object.registerClass("Card Medium Cannon", rr.control.TabCardWeapon);
#endinitclip
Symbol 1096 MovieClip [Card Small Cannon] Frame 1
#initclip 298
Object.registerClass("Card Small Cannon", rr.control.TabCardWeapon);
#endinitclip
Symbol 1097 MovieClip [WeaponSelect] Frame 1
#initclip 299
Object.registerClass("WeaponSelect", rr.control.WeaponSelect);
#endinitclip
Instance of Symbol 1053 MovieClip [Card Huge Cannon] "HC_mc" in Symbol 1097 MovieClip [WeaponSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "HugeCannon";
}
Instance of Symbol 1060 MovieClip [Card EMP] "EMP_mc" in Symbol 1097 MovieClip [WeaponSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "EMP";
}
Instance of Symbol 1067 MovieClip [Card Large Cannon] "LC_mc" in Symbol 1097 MovieClip [WeaponSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "LargeCannon";
}
Instance of Symbol 1074 MovieClip [Card BunkerBuster] "BB_mc" in Symbol 1097 MovieClip [WeaponSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "BunkerBuster";
}
Instance of Symbol 1080 MovieClip [Card RailRockets] "RR_mc" in Symbol 1097 MovieClip [WeaponSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "RailRockets";
}
Instance of Symbol 863 MovieClip [Card RocketLauncher] "RL_mc" in Symbol 1097 MovieClip [WeaponSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "RocketLauncher";
}
Instance of Symbol 854 MovieClip [Card Small Fast Cannon] "SFC_mc" in Symbol 1097 MovieClip [WeaponSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "SmallFastCannon";
}
Instance of Symbol 1089 MovieClip [Card Medium Cannon] "MC_mc" in Symbol 1097 MovieClip [WeaponSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "MediumCannon";
}
Instance of Symbol 1096 MovieClip [Card Small Cannon] "SC_mc" in Symbol 1097 MovieClip [WeaponSelect] Frame 1
//component parameters
onClipEvent (construct) {
linkId = "SmallCannon";
}
Symbol 1104 MovieClip [BuildMenu] Frame 1
#initclip 300
Object.registerClass("BuildMenu", rr.control.BuildMenu);
#endinitclip
stop();
Symbol 1104 MovieClip [BuildMenu] Frame 36
stop();
Symbol 1104 MovieClip [BuildMenu] Frame 49
afterCloseTab();
Symbol 1104 MovieClip [BuildMenu] Frame 70
stop();
Symbol 1104 MovieClip [BuildMenu] Frame 83
afterCloseTab();
Symbol 1104 MovieClip [BuildMenu] Frame 101
stop();
Symbol 1104 MovieClip [BuildMenu] Frame 115
afterCloseTab();
Symbol 1114 MovieClip Frame 1
stop();
Symbol 1115 MovieClip [Guide] Frame 1
#initclip 301
Object.registerClass("Guide", rr.Guide);
#endinitclip
Symbol 1116 MovieClip [Control] Frame 1
#initclip 302
Object.registerClass("Control", rr.control.Control);
#endinitclip
Symbol 1117 MovieClip [Game] Frame 1
#initclip 303
Object.registerClass("Game", rr.Game);
#endinitclip
Symbol 1146 MovieClip Frame 1
stop();
Symbol 1171 MovieClip [AmmoFockeWolf1] Frame 6
stop();
Symbol 1172 MovieClip [AmmoFockeWolf2] Frame 6
stop();
Symbol 1219 MovieClip Frame 24
stop();
Symbol 1220 MovieClip [AmmoPotTank] Frame 13
stop();
Symbol 1221 MovieClip [AmmoPanther] Frame 13
stop();
Symbol 1222 MovieClip [AmmoAbrahams] Frame 25
stop();
Symbol 1223 MovieClip [AmmoElephant] Frame 25
stop();
Symbol 1248 MovieClip Frame 13
stop();
Symbol 1249 MovieClip [AmmoC47] Frame 32
stop();
Symbol 1284 MovieClip Frame 18
stop();
Symbol 1285 MovieClip [AmmoBasilisk] Frame 25
stop();
Symbol 1286 MovieClip [AmmoGatlingSingle] Frame 20
stop();
Symbol 1287 MovieClip [AmmoGatlingDouble] Frame 15
stop();
Symbol 1288 MovieClip [AmmoOldJeep] Frame 13
stop();
Symbol 1309 MovieClip Frame 11
stop();
Symbol 1310 MovieClip [AmmoGunTruck] Frame 13
stop();
Symbol 1335 MovieClip Frame 13
stop();
Symbol 1336 MovieClip [AmmoArmoredJeep] Frame 15
stop();
Symbol 1337 MovieClip [AmmoBunker] Frame 25
stop();
Symbol 1342 MovieClip Frame 1
gotoAndStop(_global.map.maptype);
stop();
Symbol 1355 MovieClip [Aim] Frame 1
stop();
Symbol 1355 MovieClip [Aim] Frame 2
stop();
Symbol 1355 MovieClip [Aim] Frame 3
stop();
Symbol 1364 MovieClip [AmmoSaddleTank] Frame 1
stop();
Symbol 1364 MovieClip [AmmoSaddleTank] Frame 5
stop();
Symbol 1365 MovieClip [AmmoMediumCannon] Frame 1
stop();
Symbol 1365 MovieClip [AmmoMediumCannon] Frame 5
stop();
Symbol 1368 MovieClip [damage_saddletank] Frame 1
#initclip 304
Object.registerClass("damage_saddletank", rr.control.DamageClip);
#endinitclip
Symbol 1371 MovieClip [damage_bulpfrog] Frame 1
#initclip 305
Object.registerClass("damage_bulpfrog", rr.control.DamageClip);
#endinitclip
Symbol 1374 MovieClip [damage_passenger] Frame 1
#initclip 306
Object.registerClass("damage_passenger", rr.control.DamageClip);
#endinitclip
Symbol 1377 MovieClip [damage_colecart] Frame 1
#initclip 307
Object.registerClass("damage_colecart", rr.control.DamageClip);
#endinitclip
Symbol 1380 MovieClip [damage_powergenerator] Frame 1
#initclip 308
Object.registerClass("damage_powergenerator", rr.control.DamageClip);
#endinitclip
Symbol 1383 MovieClip [damage_smallcannon] Frame 1
#initclip 309
Object.registerClass("damage_smallcannon", rr.control.DamageClip);
#endinitclip
Symbol 1386 MovieClip [damage_rocketlauncher] Frame 1
#initclip 310
Object.registerClass("damage_rocketlauncher", rr.control.DamageClip);
#endinitclip
Symbol 1389 MovieClip [damage_smallfastcannon] Frame 1
#initclip 311
Object.registerClass("damage_smallfastcannon", rr.control.DamageClip);
#endinitclip
Symbol 1392 MovieClip [damage_oiltank] Frame 1
#initclip 312
Object.registerClass("damage_oiltank", rr.control.DamageClip);
#endinitclip
Symbol 1395 MovieClip [damage_fueltank] Frame 1
#initclip 313
Object.registerClass("damage_fueltank", rr.control.DamageClip);
#endinitclip
Symbol 1398 MovieClip [damage_mediumcannon] Frame 1
#initclip 314
Object.registerClass("damage_mediumcannon", rr.control.DamageClip);
#endinitclip
Symbol 1401 MovieClip [damage_wagon1] Frame 1
#initclip 315
Object.registerClass("damage_wagon1", rr.control.DamageClip);
#endinitclip
Symbol 1404 MovieClip [damage_tanktrailer] Frame 1
#initclip 316
Object.registerClass("damage_tanktrailer", rr.control.DamageClip);
#endinitclip
Symbol 1406 MovieClip [damage_wagon2] Frame 1
#initclip 317
Object.registerClass("damage_wagon2", rr.control.DamageClip);
#endinitclip
Symbol 1407 MovieClip [AmmoSmallCannon] Frame 1
stop();
Symbol 1407 MovieClip [AmmoSmallCannon] Frame 5
stop();
Symbol 1408 MovieClip [AmmoSmallFastCannon] Frame 1
stop();
Symbol 1408 MovieClip [AmmoSmallFastCannon] Frame 5
stop();
Symbol 1415 MovieClip [Compound] Frame 1
stop();
Symbol 1415 MovieClip [Compound] Frame 2
stop();
Symbol 1415 MovieClip [Compound] Frame 3
stop();
Symbol 1415 MovieClip [Compound] Frame 4
stop();
Symbol 1415 MovieClip [Compound] Frame 5
stop();
Symbol 1415 MovieClip [Compound] Frame 6
stop();
Symbol 1421 MovieClip [AmmoBulpFrog] Frame 1
stop();
Symbol 1421 MovieClip [AmmoBulpFrog] Frame 5
stop();
Symbol 1422 MovieClip [MapStage] Frame 1
#initclip 318
Object.registerClass("MapStage", cr.map.MapStage);
#endinitclip
Symbol 1423 MovieClip [LevelStage] Frame 1
#initclip 319
Object.registerClass("LevelStage", cr.level.LevelStage);
#endinitclip
Symbol 1460 Button
on (press) {
_global.railcontrol.toggleSwitch();
}
Symbol 1465 Button
on (press) {
_global.railcontrol.toggleSwitch();
}
Symbol 1505 MovieClip [MiniMapCreate] Frame 1
#initclip 320
Object.registerClass("MiniMapCreate", cr.MiniMap);
#endinitclip
Symbol 1506 MovieClip [RailControl] Frame 1
#initclip 321
Object.registerClass("RailControl", cr.map.RailControl);
#endinitclip
Symbol 1527 MovieClip Frame 1
stop();
Symbol 1597 MovieClip [EnemySelectorLeft] Frame 1
#initclip 322
Object.registerClass("EnemySelectorLeft", cr.level.EnemySelector);
#endinitclip
Symbol 1601 MovieClip [EnemySelector] Frame 1
#initclip 323
Object.registerClass("EnemySelector", cr.level.EnemySelector);
#endinitclip
Instance of Symbol 1597 MovieClip [EnemySelectorLeft] in Symbol 1602 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "ArmoredJeep";
type = "left";
}
Instance of Symbol 1601 MovieClip [EnemySelector] in Symbol 1602 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "Basilisk";
type = "right";
}
Instance of Symbol 1597 MovieClip [EnemySelectorLeft] in Symbol 1602 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "GunTruck";
type = "left";
}
Instance of Symbol 1597 MovieClip [EnemySelectorLeft] in Symbol 1602 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "OldJeep";
type = "left";
}
Instance of Symbol 1597 MovieClip [EnemySelectorLeft] in Symbol 1602 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "PotTank";
type = "left";
}
Instance of Symbol 1601 MovieClip [EnemySelector] in Symbol 1602 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "GatlingSingle";
type = "right";
}
Instance of Symbol 1601 MovieClip [EnemySelector] in Symbol 1602 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "GatlingDouble";
type = "right";
}
Instance of Symbol 1601 MovieClip [EnemySelector] in Symbol 1602 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "Abrahams";
type = "right";
}
Instance of Symbol 1597 MovieClip [EnemySelectorLeft] in Symbol 1602 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "Elephant";
type = "left";
}
Instance of Symbol 1601 MovieClip [EnemySelector] in Symbol 1602 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "BullDozer";
type = "right";
}
Instance of Symbol 1597 MovieClip [EnemySelectorLeft] in Symbol 1602 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "Panther";
type = "left";
}
Instance of Symbol 1601 MovieClip [EnemySelector] in Symbol 1602 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "Rocketeer";
type = "right";
}
Symbol 1608 MovieClip [AirUnitSelector] Frame 1
#initclip 324
Object.registerClass("AirUnitSelector", cr.level.AirUnitSelector);
#endinitclip
Instance of Symbol 1608 MovieClip [AirUnitSelector] in Symbol 1609 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "FockeWolf";
}
Instance of Symbol 1608 MovieClip [AirUnitSelector] in Symbol 1609 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "MesserSchmidt";
}
Instance of Symbol 1608 MovieClip [AirUnitSelector] in Symbol 1609 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "WartHog";
}
Instance of Symbol 1608 MovieClip [AirUnitSelector] in Symbol 1609 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "C47";
}
Instance of Symbol 1608 MovieClip [AirUnitSelector] in Symbol 1609 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "B2";
}
Instance of Symbol 1608 MovieClip [AirUnitSelector] in Symbol 1609 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "BellHuey";
}
Instance of Symbol 1608 MovieClip [AirUnitSelector] in Symbol 1609 MovieClip Frame 1
//component parameters
onClipEvent (construct) {
linkId = "Apache";
}
Symbol 1610 MovieClip [LevelControl] Frame 1
#initclip 325
Object.registerClass("LevelControl", cr.level.LevelControl);
#endinitclip
Symbol 1615 Button
on (press) {
gotoAndPlay ("newlevel");
}
Symbol 1616 Button
on (press) {
gotoAndPlay ("loadlevel");
}
Symbol 1621 Button
on (press) {
gotoAndPlay ("newmap");
}
Symbol 1622 Button
on (press) {
gotoAndPlay ("loadmap");
}
Symbol 1640 Button
on (press) {
clickedbut = "newlevel";
gotoAndPlay ("loadmapclose");
}
Symbol 1641 Button
on (press) {
clickedbut = "loadlevel";
gotoAndPlay ("loadmapclose");
}
Symbol 1642 Button
on (press) {
clickedbut = "newmap";
gotoAndPlay ("loadmapclose");
}
Symbol 1658 Button
on (press) {
clickedbut = "newlevel";
gotoAndPlay ("newmapclose");
}
Symbol 1659 Button
on (press) {
clickedbut = "loadlevel";
gotoAndPlay ("newmapclose");
}
Symbol 1662 Button
on (press) {
clickedbut = "loadmap";
gotoAndPlay ("newmapclose");
}
Symbol 1674 Button
on (press) {
clickedbut = "newlevel";
gotoAndPlay ("loadlevelclose");
}
Symbol 1676 Button
on (press) {
clickedbut = "newmap";
gotoAndPlay ("loadlevelclose");
}
Symbol 1677 Button
on (press) {
clickedbut = "loadmap";
gotoAndPlay ("loadlevelclose");
}
Symbol 1690 Button
on (press) {
clickedbut = "loadlevel";
gotoAndPlay ("newlevelclose");
}
Symbol 1691 Button
on (press) {
clickedbut = "newmap";
gotoAndPlay ("newlevelclose");
}
Symbol 1692 Button
on (press) {
clickedbut = "loadmap";
gotoAndPlay ("newlevelclose");
}
Symbol 1699 MovieClip Frame 1
stop();
Symbol 1699 MovieClip Frame 5
_global.createaction = "loadmap";
Symbol 1699 MovieClip Frame 24
stop();
Symbol 1699 MovieClip Frame 38
if (clickedbut == "newmap") {
gotoAndPlay ("newmap");
} else if (clickedbut == "loadlevel") {
gotoAndPlay ("loadlevel");
} else if (clickedbut == "newlevel") {
gotoAndPlay ("newlevel");
}
Symbol 1699 MovieClip Frame 56
stop();
Symbol 1699 MovieClip Frame 67
if (clickedbut == "loadmap") {
gotoAndPlay ("loadmap");
} else if (clickedbut == "loadlevel") {
gotoAndPlay ("loadlevel");
} else if (clickedbut == "newlevel") {
gotoAndPlay ("newlevel");
}
Symbol 1699 MovieClip Frame 83
stop();
Symbol 1699 MovieClip Frame 99
if (clickedbut == "loadmap") {
gotoAndPlay ("loadmap");
} else if (clickedbut == "newmap") {
gotoAndPlay ("newmap");
} else if (clickedbut == "newlevel") {
gotoAndPlay ("newlevel");
}
Symbol 1699 MovieClip Frame 100
_global.createaction = "newlevel";
Symbol 1699 MovieClip Frame 115
stop();
Symbol 1699 MovieClip Frame 124
if (clickedbut == "loadmap") {
gotoAndPlay ("loadmap");
} else if (clickedbut == "newmap") {
gotoAndPlay ("newmap");
} else if (clickedbut == "loadlevel") {
gotoAndPlay ("loadlevel");
}
Symbol 1711 MovieClip [DemoAlert] Frame 1
#initclip 326
Object.registerClass("DemoAlert", rr.DemoAlert);
#endinitclip
Symbol 1712 MovieClip [CreateControl] Frame 1
#initclip 327
Object.registerClass("CreateControl", cr.CreateControl);
#endinitclip
stop();
Symbol 1722 MovieClip Frame 1
stop();
Symbol 1723 MovieClip [RailSwitch] Frame 1
stop();
Symbol 1743 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 1743 MovieClip Frame 3
nightglow_mc._visible = _global.map.nightmap;
Symbol 1804 MovieClip Frame 26
stop();
Symbol 1805 MovieClip [SaddleTank] Frame 1
stop();
Symbol 1805 MovieClip [SaddleTank] Frame 32
stop();
Symbol 1841 MovieClip Frame 17
stop();
Symbol 1842 MovieClip [Wagon2] Frame 1
stop();
Symbol 1842 MovieClip [Wagon2] Frame 23
stop();
Symbol 1846 MovieClip [Wagon1] Frame 1
stop();
Symbol 1846 MovieClip [Wagon1] Frame 23
stop();
Symbol 1896 MovieClip Frame 24
stop();
Symbol 1897 MovieClip [ColeCart] Frame 1
stop();
Symbol 1897 MovieClip [ColeCart] Frame 30
stop();
Symbol 1947 MovieClip Frame 24
stop();
Symbol 1948 MovieClip [OilTank] Frame 1
stop();
Symbol 1948 MovieClip [OilTank] Frame 30
stop();
Symbol 2000 MovieClip Frame 25
stop();
Symbol 2001 MovieClip [Passenger] Frame 1
stop();
Symbol 2001 MovieClip [Passenger] Frame 35
stop();
Symbol 2005 MovieClip [FuelTank] Frame 1
stop();
Symbol 2005 MovieClip [FuelTank] Frame 31
stop();
Symbol 2055 MovieClip Frame 24
stop();
Symbol 2056 MovieClip [ABomb] Frame 1
stop();
Symbol 2056 MovieClip [ABomb] Frame 40
stop();
Symbol 2060 MovieClip [PowerGenerator] Frame 1
stop();
Symbol 2060 MovieClip [PowerGenerator] Frame 40
stop();
Symbol 2104 MovieClip Frame 21
stop();
Symbol 2105 MovieClip [TankTrailer] Frame 1
stop();
Symbol 2105 MovieClip [TankTrailer] Frame 30
stop();
Symbol 2173 MovieClip Frame 33
stop();
Symbol 2174 MovieClip [PassengerArmored] Frame 1
stop();
Symbol 2174 MovieClip [PassengerArmored] Frame 40
stop();
Symbol 2183 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2183 MovieClip Frame 3
nightglow_mc._visible = _global.map.nightmap;
Symbol 2232 MovieClip Frame 25
stop();
Symbol 2233 MovieClip [MediumCannon] Frame 1
stop();
Symbol 2233 MovieClip [MediumCannon] Frame 35
stop();
Symbol 2241 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2241 MovieClip Frame 3
nightglow_mc._visible = _global.map.nightmap;
Symbol 2306 MovieClip Frame 33
stop();
Symbol 2307 MovieClip [SmallCannon] Frame 1
stop();
Symbol 2307 MovieClip [SmallCannon] Frame 40
parent.destroy();
stop();
Symbol 2315 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2315 MovieClip Frame 3
nightglow_mc._visible = _global.map.nightmap;
Symbol 2316 MovieClip [SmallFastCannon] Frame 1
stop();
Symbol 2316 MovieClip [SmallFastCannon] Frame 40
parent.destroy();
stop();
Symbol 2320 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2320 MovieClip Frame 2
nightglow_mc._visible = _global.map.nightmap;
Symbol 2320 MovieClip Frame 7
nightglow_mc._visible = _global.map.nightmap;
Symbol 2321 MovieClip [RocketLauncher] Frame 1
stop();
Symbol 2321 MovieClip [RocketLauncher] Frame 40
parent.destroy();
stop();
Symbol 2333 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2333 MovieClip Frame 3
nightglow_mc._visible = _global.map.nightmap;
Symbol 2341 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2341 MovieClip Frame 3
nightglow_mc._visible = _global.map.nightmap;
Symbol 2342 MovieClip [BulpFrog] Frame 1
stop();
Symbol 2342 MovieClip [BulpFrog] Frame 31
stop();
Symbol 2345 MovieClip [SmokeTrail] Frame 1
onEnterFrame = function () {
_x = (x - _global.camera.left);
_y = (y - _global.camera.top);
};
Symbol 2345 MovieClip [SmokeTrail] Frame 6
this.removeMovieClip();
Symbol 2404 MovieClip Frame 1
stop();
Symbol 2404 MovieClip Frame 5
Symbol 2407 MovieClip Frame 1
stop();
Symbol 2407 MovieClip Frame 5
Symbol 2409 MovieClip [FockeWolf] Frame 1
stop();
Symbol 2409 MovieClip [FockeWolf] Frame 30
stop();
Symbol 2444 MovieClip [C47] Frame 1
stop();
Symbol 2444 MovieClip [C47] Frame 30
stop();
Symbol 2455 MovieClip Frame 1
stop();
Symbol 2455 MovieClip Frame 2
stop();
Symbol 2455 MovieClip Frame 3
stop();
Symbol 2455 MovieClip Frame 4
stop();
Symbol 2455 MovieClip Frame 5
stop();
Symbol 2455 MovieClip Frame 6
stop();
Symbol 2456 MovieClip [AirField] Frame 1
stop();
Symbol 2456 MovieClip [AirField] Frame 37
stop();
Symbol 2461 MovieClip Frame 1
gotoAndStop(_global.map.maptype);
stop();
Symbol 2466 MovieClip Frame 1
gotoAndStop(_global.map.maptype);
stop();
Symbol 2467 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2474 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2474 MovieClip Frame 2
nightglow_mc._visible = _global.map.nightmap;
Symbol 2475 MovieClip [Pottank] Frame 1
stop();
Symbol 2475 MovieClip [Pottank] Frame 35
stop();
Symbol 2480 MovieClip Frame 1
stop();
Symbol 2483 MovieClip Frame 1
stop();
Symbol 2488 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2488 MovieClip Frame 2
base_mc.gotoAndPlay("shoot");
Symbol 2488 MovieClip Frame 3
nightglow_mc._visible = _global.map.nightmap;
Symbol 2489 MovieClip [Basilisk] Frame 1
stop();
Symbol 2489 MovieClip [Basilisk] Frame 20
stop();
Symbol 2489 MovieClip [Basilisk] Frame 21
stop();
Symbol 2494 MovieClip Frame 1
gotoAndStop(_global.map.maptype);
stop();
Symbol 2502 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2502 MovieClip Frame 2
nightglow_mc._visible = _global.map.nightmap;
Symbol 2503 MovieClip [OldJeep] Frame 1
stop();
Symbol 2503 MovieClip [OldJeep] Frame 31
stop();
Symbol 2508 MovieClip Frame 1
gotoAndStop(_global.map.maptype);
stop();
Symbol 2512 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2517 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2517 MovieClip Frame 2
base_mc.gotoAndPlay("shoot");
nightglow_mc._visible = _global.map.nightmap;
Symbol 2518 MovieClip [GunTruck] Frame 1
stop();
Symbol 2518 MovieClip [GunTruck] Frame 37
stop();
Symbol 2523 MovieClip Frame 1
gotoAndStop(_global.map.maptype);
stop();
Symbol 2527 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2532 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2532 MovieClip Frame 2
nightglow_mc._visible = _global.map.nightmap;
Symbol 2533 MovieClip [ArmoredJeep] Frame 1
stop();
Symbol 2533 MovieClip [ArmoredJeep] Frame 26
stop();
Symbol 2538 MovieClip Frame 1
gotoAndStop(_global.map.maptype);
stop();
Symbol 2539 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2544 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2544 MovieClip Frame 2
nightglow_mc._visible = _global.map.nightmap;
Symbol 2545 MovieClip [Elephant] Frame 1
stop();
Symbol 2545 MovieClip [Elephant] Frame 40
stop();
Symbol 2550 MovieClip Frame 1
gotoAndStop(_global.map.maptype);
stop();
Symbol 2551 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2556 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2556 MovieClip Frame 2
nightglow_mc._visible = _global.map.nightmap;
Symbol 2557 MovieClip [Panther] Frame 1
stop();
Symbol 2557 MovieClip [Panther] Frame 40
stop();
Symbol 2566 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2566 MovieClip Frame 3
nightglow_mc._visible = _global.map.nightmap;
Symbol 2567 MovieClip [Bunker] Frame 1
stop();
Symbol 2567 MovieClip [Bunker] Frame 30
stop();
Symbol 2582 MovieClip Frame 1
stop();
Symbol 2582 MovieClip Frame 9
stop();
Symbol 2582 MovieClip Frame 23
stop();
Symbol 2583 MovieClip [BullDozer] Frame 1
stop();
Symbol 2583 MovieClip [BullDozer] Frame 31
stop();
Symbol 2588 MovieClip Frame 1
gotoAndStop(_global.map.maptype);
stop();
Symbol 2593 MovieClip Frame 1
gotoAndStop(_global.map.maptype);
stop();
Symbol 2594 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2599 MovieClip Frame 1
_parent.parent.checkNightMode();
stop();
Symbol 2599 MovieClip Frame 2
nightglow_mc._visible = _global.map.nightmap;
Symbol 2600 MovieClip [Abrahams] Frame 1
stop();
Symbol 2600 MovieClip [Abrahams] Frame 35
stop();
Symbol 2608 MovieClip [Heatseeker] Frame 1
if (parent.status != "exploded") {
stop();
}
Symbol 2608 MovieClip [Heatseeker] Frame 31
stop();
Symbol 2610 MovieClip [AmmoBellHuey] Frame 1
if (parent.status != "exploded") {
stop();
}
Symbol 2610 MovieClip [AmmoBellHuey] Frame 31
stop();
Symbol 2641 MovieClip Frame 1
_parent._parent.parent.checkNightMode();
_parent._parent._parent.parent.checkNightMode();
stop();
Symbol 2648 MovieClip Frame 1
stop();
Symbol 2649 MovieClip [GatlingSingle] Frame 1
stop();
Symbol 2649 MovieClip [GatlingSingle] Frame 30
stop();
Symbol 2652 MovieClip [GatlingDouble] Frame 1
stop();
Symbol 2652 MovieClip [GatlingDouble] Frame 30
stop();
Symbol 2664 MovieClip Frame 23
gotoAndPlay (1);
Symbol 2814 MovieClip [DropPassenger] Frame 1
stop();
Symbol 2814 MovieClip [DropPassenger] Frame 2
stop();
Symbol 2817 MovieClip [DropPassengerArmored] Frame 1
stop();
Symbol 2817 MovieClip [DropPassengerArmored] Frame 2
stop();
Symbol 2820 MovieClip [DropTankTrailer] Frame 1
stop();
Symbol 2820 MovieClip [DropTankTrailer] Frame 2
stop();
Symbol 2824 MovieClip [DropABomb] Frame 1
stop();
Symbol 2824 MovieClip [DropABomb] Frame 2
stop();
Symbol 2827 MovieClip [DropFuelTank] Frame 1
stop();
Symbol 2827 MovieClip [DropFuelTank] Frame 2
stop();
Symbol 2852 MovieClip [Explode04] Frame 13
stop();
Symbol 2899 Button
on (press) {
_global.root.gotoAndStop("startmenu");
}
Symbol 2900 MovieClip [Hangar] Frame 1
#initclip 328
Object.registerClass("Hangar", rr.Hangar);
#endinitclip
Symbol 2963 Button
on (rollOver, dragOver) {
guidetext.gotoAndPlay("newgame");
}
on (rollOut, dragOut) {
guidetext.gotoAndPlay("welcome");
}
on (press) {
_global.gametype = "new mission";
_parent.gotoAndPlay("game");
}
Symbol 2968 Button
on (rollOver, dragOver) {
guidetext.gotoAndPlay("loadgame");
}
on (rollOut, dragOut) {
guidetext.gotoAndPlay("welcome");
}
Symbol 2973 Button
on (rollOver, dragOver) {
guidetext.gotoAndPlay("createlevel");
}
on (rollOut, dragOut) {
guidetext.gotoAndPlay("welcome");
}
on (press) {
_parent.gotoAndPlay("createlevel");
}
Symbol 2978 Button
on (rollOver, dragOver) {
guidetext.gotoAndPlay("railrage");
}
on (rollOut, dragOut) {
guidetext.gotoAndPlay("welcome");
}
on (press) {
_global.gametype = "railrage";
_parent.gotoAndPlay("loadlevel");
}
Symbol 2983 Button
on (rollOver, dragOver) {
guidetext.gotoAndPlay("hangar");
}
on (rollOut, dragOut) {
guidetext.gotoAndPlay("welcome");
}
on (press) {
_parent.gotoAndPlay("hangar");
}
Symbol 2988 Button
on (rollOver, dragOver) {
guidetext.gotoAndPlay("instructions");
}
on (rollOut, dragOut) {
guidetext.gotoAndPlay("welcome");
}
on (press) {
_parent.gotoAndPlay("instructions");
}
Symbol 2993 Button
on (rollOver, dragOver) {
guidetext.gotoAndPlay("getfullversion");
}
on (rollOut, dragOut) {
guidetext.gotoAndPlay("welcome");
}
on (press) {
_parent.gotoAndPlay("buyfull");
}
Symbol 2998 Button
on (rollOver, dragOver) {
guidetext.gotoAndPlay("playlevel");
}
on (rollOut, dragOut) {
guidetext.gotoAndPlay("welcome");
}
on (press) {
_global.gametype = "custom level";
_parent.gotoAndPlay("loadlevel");
}
Symbol 3008 MovieClip Frame 1
stop();
Symbol 3008 MovieClip Frame 2
stop();
Symbol 3008 MovieClip Frame 3
stop();
Symbol 3008 MovieClip Frame 4
stop();
Symbol 3008 MovieClip Frame 5
stop();
Symbol 3008 MovieClip Frame 6
stop();
Symbol 3008 MovieClip Frame 7
stop();
Symbol 3008 MovieClip Frame 8
stop();
Symbol 3008 MovieClip Frame 9
stop();
Symbol 3013 Button
on (release) {
getURL ("http://www.miniclip.com", "_blank");
}
Symbol 3014 MovieClip Frame 1
var soMission = SharedObject.getLocal("savedmission");
var sm = soMission.data.savedmission;
if ((sm == undefined) || (sm.levelid < 2)) {
but_continuegame._alpha = 50;
delete but_continuegame.onPress;
} else {
but_continuegame._alpha = 100;
but_continuegame.onPress = function () {
_global.gametype = "loaded mission";
_parent.gotoAndPlay("game");
};
}
Symbol 3090 MovieClip Frame 1
stop();
Instance of Symbol 749 MovieClip [Green Light] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
speedref = 0;
}
Instance of Symbol 757 MovieClip [Red light] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
speedref = 0;
}
Instance of Symbol 765 MovieClip [Orange light] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
speedref = 0;
}
Instance of Symbol 1601 MovieClip [EnemySelector] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
type = "";
}
Instance of Symbol 1597 MovieClip [EnemySelectorLeft] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
type = "";
}
Instance of Symbol 1608 MovieClip [AirUnitSelector] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 320 MovieClip [Card Oiltank] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 327 MovieClip [Card ColeCart] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 313 MovieClip [Card PowerGenerator] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 334 MovieClip [Card Size4 Wagon] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 2632 MovieClip [Card TankTrailer] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 341 MovieClip [Card Size3 Wagon] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 350 MovieClip [Card Size2 Wagon] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 360 MovieClip [Card Size1 Wagon] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 292 MovieClip [Card SaddleTank] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 280 MovieClip [Card BulpFrog] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 222 MovieClip [Card ICE] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 239 MovieClip [Card SuperChief] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 231 MovieClip [Card Dragon] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 264 MovieClip [Card Rhino] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 256 MovieClip [Card Loewy] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 248 MovieClip [Card Pennsylvania] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 1060 MovieClip [Card EMP] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 1080 MovieClip [Card RailRockets] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 1053 MovieClip [Card Huge Cannon] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 1067 MovieClip [Card Large Cannon] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 1074 MovieClip [Card BunkerBuster] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 1089 MovieClip [Card Medium Cannon] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 1096 MovieClip [Card Small Cannon] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 863 MovieClip [Card RocketLauncher] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Instance of Symbol 854 MovieClip [Card Small Fast Cannon] in Symbol 3090 MovieClip Frame 2
//component parameters
onClipEvent (construct) {
linkId = "";
}
Symbol 3110 MovieClip Frame 1
Symbol 3110 MovieClip Frame 34
stop();
Symbol 3110 MovieClip Frame 52
stop();
Symbol 3165 Button
on (press) {
_global.gametype = "new mission";
_parent.gotoAndPlay("game");
}
Symbol 3166 Button
on (press) {
_global.gametype = "railrage";
_parent.gotoAndPlay("loadlevel");
}
Symbol 3167 Button
on (press) {
_parent.gotoAndPlay("createlevel");
}
Symbol 3172 Button
on (press) {
getURL ("http://www.miniclip.com/buy_railofwar.htm", "_blank");
}
Symbol 3196 MovieClip Frame 155
stop();
Symbol 3210 Button
on (press) {
gotoAndStop (2);
}
Symbol 3244 Button
on (press) {
gotoAndStop (3);
}
Symbol 3269 Button
on (press) {
gotoAndStop (4);
}
Symbol 3283 Button
on (press) {
gotoAndStop (5);
}
Symbol 3301 Button
on (press) {
gotoAndStop (1);
}
Symbol 3302 MovieClip Frame 1
stop();
Symbol 3302 MovieClip Frame 2
stop();
Symbol 3302 MovieClip Frame 3
stop();
Symbol 3302 MovieClip Frame 4
stop();
Symbol 3302 MovieClip Frame 5
stop();