Frame 1
System.security.allowDomain("http://www.uf3k.com");
System.security.allowDomain("http://www.newgrounds.com");
System.security.allowDomain("http://www.addictinggames.com");
System.security.allowDomain("http://www.bubblebox.com");
System.security.allowDomain("http://www.gamegum.com");
System.security.allowDomain("http://www.gamelinks.com");
_quality = "high";
Frame 5
function LoadGame() {
preloader.status.text = ((int(getBytesLoaded() / 1024) + " OF ") + int(getBytesTotal() / 1024)) + "KB LOADED";
if (getBytesLoaded() >= getBytesTotal()) {
clearInterval(loadGame);
var _local1 = new mx.transitions.Tween(preloader, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false);
_local1.onMotionFinished = function () {
play();
};
}
}
stop();
var loadGame = setInterval(LoadGame, 10);
Frame 15
var racerInfo = new LoadVars();
racerInfo.name = "";
racerInfo.vehicle = 1;
racerInfo.course = 1;
racerInfo.distance = 0;
racerInfo.time = 0;
racerInfo.top_speed = 0;
racerInfo.avg_speed = 0;
racerInfo.long_name = "ultraflash3000";
Frame 30
function CarsMenu() {
select_car_1.onRollOver = (select_car_2.onRollOver = (select_car_3.onRollOver = (select_car_4.onRollOver = (select_car_5.onRollOver = function () {
var _local2 = new mx.transitions.Tween(this.view, "_alpha", mx.transitions.easing.Regular.easeInOut, 0, 100, 10, false);
this.nextFrame();
}))));
select_car_1.onReleaseOutside = (select_car_2.onReleaseOutside = (select_car_3.onReleaseOutside = (select_car_4.onReleaseOutside = (select_car_5.onReleaseOutside = (select_car_1.onRollOut = (select_car_2.onRollOut = (select_car_3.onRollOut = (select_car_4.onRollOut = (select_car_5.onRollOut = function () {
var _local2 = new mx.transitions.Tween(this.view, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 10, false);
this._xscale = (this._yscale = 100);
this.prevFrame();
})))))))));
select_car_1.onRelease = (select_car_2.onRelease = (select_car_3.onRelease = (select_car_4.onRelease = (select_car_5.onRelease = function () {
racerInfo.vehicle = int(this._name.substr(-1));
select_car_1.enabled = (select_car_2.enabled = (select_car_3.enabled = (select_car_4.enabled = (select_car_5.enabled = false))));
var SelectCar = (new mx.transitions.Tween(title, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false));
var i = 1;
while (i <= 5) {
SelectCar = new mx.transitions.Tween(eval ("select_car_" + i), "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false);
i++;
}
SelectCar.onMotionFinished = function () {
gotoAndPlay ("driver");
};
}))));
}
function CarsDisplay() {
var SelectCar = (new mx.transitions.Tween(title, "_alpha", mx.transitions.easing.Regular.easeInOut, 0, 100, 25, false));
var i = 1;
while (i <= 5) {
SelectCar = new mx.transitions.Tween(eval ("select_car_" + i), "_alpha", mx.transitions.easing.Regular.easeInOut, 0, 100, 25, false);
i++;
}
SelectCar.onMotionFinished = function () {
CarsMenu();
};
}
bottom.pill.onRelease = function () {
getURL ("http://www.uf3k.com/", "_blank");
};
CarsDisplay();
Frame 35
stop();
Frame 40
gotoAndStop ("cars_stop");
Frame 45
function DriverMenu() {
name.name.selectable = true;
name.name.onChanged = function (textField) {
name.shadow.name.text = this.text;
if (this.text != "") {
name.ok._alpha = 100;
name.ok.enabled = true;
}
name.label.text = "";
};
name.name.onSetFocus = function (object) {
name.label.text = "";
};
}
function DriverDisplay() {
name.name.selectable = false;
if (racerInfo.name != "") {
name.name.text = racerInfo.name;
name.shadow.name.text = racerInfo.name;
name.ok._alpha = 100;
name.ok.enabled = true;
} else {
name.label.text = "PLEASE ENTER YOUR NAME";
name.ok._alpha = 0;
name.ok.enabled = false;
}
var _local1 = new mx.transitions.Tween(title, "_alpha", mx.transitions.easing.Regular.easeInOut, 0, 100, 25, false);
_local1 = new mx.transitions.Tween(name, "_alpha", mx.transitions.easing.Regular.easeInOut, 0, 100, 25, false);
_local1.onMotionFinished = function () {
DriverMenu();
};
}
name.ok.onRollOver = function () {
this.nextFrame();
};
name.ok.onReleaseOutside = (name.ok.onRollOut = function () {
this.prevFrame();
});
name.ok.onRelease = function () {
racerInfo.name = name.name.text;
this.enabled = false;
var _local2 = new mx.transitions.Tween(title, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false);
_local2 = new mx.transitions.Tween(name, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false);
_local2.onMotionFinished = function () {
gotoAndPlay ("load");
};
};
DriverDisplay();
Frame 50
stop();
Frame 55
gotoAndStop ("driver_stop");
Frame 60
function LoadDisplay() {
var _local1 = new mx.transitions.Tween(title, "_alpha", mx.transitions.easing.Regular.easeInOut, 0, 100, 25, false);
_local1 = new mx.transitions.Tween(keyboard, "_alpha", mx.transitions.easing.Regular.easeInOut, 0, 100, 25, false);
}
var racerLoader = new LoadVars();
var racerXML = new XML();
var racers = new Array();
var racerPos;
var rankPos;
var rankSlots = 11;
var tempString;
var tempNumber;
racerLoader.type = 1;
racerLoader.course = racerInfo.course;
racerLoader.long_name = "ultraflash3000";
racerLoader.sendAndLoad("http://www.uf3k.com/games/safarirally/request.php?cachebuster=" + new Date().getTime(), racerXML, "POST");
racerXML.onLoad = function (success) {
if (success) {
var _local1 = racerXML.firstChild.firstChild;
while (_local1 != null) {
if (_local1.nodeName == "racer") {
tempString = (int(_local1.attributes.distance * 100) / 100) + "";
tempNumber = tempString.indexOf(".");
if (tempNumber == -1) {
tempString = tempString + ".00";
} else {
tempNumber = tempString.substr(tempNumber).length;
var _local2 = 3;
while (_local2 > tempNumber) {
tempString = tempString + "0";
_local2--;
}
}
tempNumber = 2 - tempString.substr(0, tempString.indexOf(".")).length;
var _local2 = 0;
while (_local2 < tempNumber) {
tempString = "0" + tempString;
_local2++;
}
racers.push({name:_local1.attributes.name, vehicle:_local1.attributes.vehicle, distance:tempString});
}
_local1 = _local1.nextSibling;
}
racers.push({name:racerInfo.name, vehicle:racerInfo.vehicle, distance:racerInfo.distance});
racerPos = racers.length - 1;
gotoAndPlay ("pregame");
}
};
LoadDisplay();
Instance of Symbol 312 MovieClip in Frame 60
onClipEvent (enterFrame) {
this._rotation = this._rotation - 10;
}
Frame 65
stop();
Frame 70
gotoAndStop ("load_stop");
Frame 215
_quality = "medium";
var engineSound = 25;
_root.createEmptyMovieClip("crashClip_0", _root.getNextHighestDepth());
_root.createEmptyMovieClip("crashClip_1", _root.getNextHighestDepth());
var crashSound_0 = new Sound(crashClip_0);
var crashSound_1 = new Sound(crashClip_1);
crashSound_0.attachSound("crash_0");
crashSound_1.attachSound("crash_1");
crashSound_0.setVolume(0);
crashSound_1.setVolume(0);
_root.createEmptyMovieClip("bovClip_1", _root.getNextHighestDepth());
_root.createEmptyMovieClip("bovClip_2", _root.getNextHighestDepth());
var bovSound_1 = new Sound(bovClip_1);
var bovSound_2 = new Sound(bovClip_2);
bovSound_1.attachSound("bov_1");
bovSound_2.attachSound("bov_2");
bovSound_1.setVolume(0);
bovSound_2.setVolume(50);
bovSound_1.start(0, 999999);
_root.createEmptyMovieClip("soundClip_0", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_1", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_2", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_3", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_4", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_5", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_6", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_7", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_8", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_9", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_10", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_11", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_12", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_13", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_14", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_15", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_16", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_17", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_18", _root.getNextHighestDepth());
_root.createEmptyMovieClip("soundClip_19", _root.getNextHighestDepth());
var engineSound_0 = new Sound(soundClip_0);
var engineSound_1 = new Sound(soundClip_1);
var engineSound_2 = new Sound(soundClip_2);
var engineSound_3 = new Sound(soundClip_3);
var engineSound_4 = new Sound(soundClip_4);
var engineSound_5 = new Sound(soundClip_5);
var engineSound_6 = new Sound(soundClip_6);
var engineSound_7 = new Sound(soundClip_7);
var engineSound_8 = new Sound(soundClip_8);
var engineSound_9 = new Sound(soundClip_9);
var engineSound_10 = new Sound(soundClip_10);
var engineSound_11 = new Sound(soundClip_11);
var engineSound_12 = new Sound(soundClip_12);
var engineSound_13 = new Sound(soundClip_13);
var engineSound_14 = new Sound(soundClip_14);
var engineSound_15 = new Sound(soundClip_15);
var engineSound_16 = new Sound(soundClip_16);
var engineSound_17 = new Sound(soundClip_17);
var engineSound_18 = new Sound(soundClip_18);
var engineSound_19 = new Sound(soundClip_19);
engineSound_0.attachSound("car_engine_0");
engineSound_1.attachSound("car_engine_2");
engineSound_2.attachSound("car_engine_3");
engineSound_3.attachSound("car_engine_4");
engineSound_4.attachSound("car_engine_5");
engineSound_5.attachSound("car_engine_6");
engineSound_6.attachSound("car_engine_7");
engineSound_7.attachSound("car_engine_8");
engineSound_8.attachSound("car_engine_9");
engineSound_9.attachSound("car_engine_10");
engineSound_10.attachSound("car_engine_11");
engineSound_11.attachSound("car_engine_12");
engineSound_12.attachSound("car_engine_13");
engineSound_13.attachSound("car_engine_14");
engineSound_14.attachSound("car_engine_15");
engineSound_15.attachSound("car_engine_16");
engineSound_16.attachSound("car_engine_17");
engineSound_17.attachSound("car_engine_18");
engineSound_18.attachSound("car_engine_19");
engineSound_19.attachSound("car_engine_20");
engineSound_0.setVolume(engineSound);
engineSound_1.setVolume(0);
engineSound_2.setVolume(0);
engineSound_3.setVolume(0);
engineSound_4.setVolume(0);
engineSound_5.setVolume(0);
engineSound_6.setVolume(0);
engineSound_7.setVolume(0);
engineSound_8.setVolume(0);
engineSound_9.setVolume(0);
engineSound_10.setVolume(0);
engineSound_11.setVolume(0);
engineSound_12.setVolume(0);
engineSound_13.setVolume(0);
engineSound_14.setVolume(0);
engineSound_15.setVolume(0);
engineSound_16.setVolume(0);
engineSound_17.setVolume(0);
engineSound_18.setVolume(0);
engineSound_19.setVolume(0);
engineSound_0.start(0, 999999);
engineSound_1.start(0, 999999);
engineSound_2.start(0, 999999);
engineSound_3.start(0, 999999);
engineSound_4.start(0, 999999);
engineSound_5.start(0, 999999);
engineSound_6.start(0, 999999);
engineSound_7.start(0, 999999);
engineSound_8.start(0, 999999);
engineSound_9.start(0, 999999);
engineSound_10.start(0, 999999);
engineSound_11.start(0, 999999);
engineSound_12.start(0, 999999);
engineSound_13.start(0, 999999);
engineSound_14.start(0, 999999);
engineSound_15.start(0, 999999);
engineSound_16.start(0, 999999);
engineSound_17.start(0, 999999);
engineSound_18.start(0, 999999);
engineSound_19.start(0, 999999);
racerInfo.distance = 0;
racerInfo.time = 0;
racerInfo.top_speed = 0;
racerInfo.avg_speed = 0;
_root.createEmptyMovieClip("stationary", _root.getNextHighestDepth());
_root.stationary.attachMovie("sky", "sky", _root.stationary.getNextHighestDepth());
_root.stationary.attachMovie("scene_close", "scene_close", _root.stationary.getNextHighestDepth());
_root.createEmptyMovieClip("track", _root.getNextHighestDepth());
_root.track.createEmptyMovieClip("layout", _root.track.getNextHighestDepth());
SafariRally.Run(track);
Frame 220
stop();
Frame 225
gotoAndStop ("game_stop");
Frame 230
_quality = "high";
var rankXML = new XML();
racerInfo.sendAndLoad("http://www.uf3k.com/games/safarirally/record.php?cachebuster=" + new Date().getTime(), rankXML, "POST");
rankXML.onLoad = function (success) {
if (success) {
gotoAndPlay ("score");
}
};
bottom.pill.onRelease = function () {
getURL ("http://www.uf3k.com/", "_blank");
};
Frame 235
stop();
Frame 240
gotoAndStop ("record_stop");
Frame 245
function ResetScore() {
score.score_distance.text = "";
score.score_top_speed.text = "";
score.score_avg_speed.text = "";
score.score_rank_distance_1.text = "";
score.score_rank_top_speed_1.text = "";
score.score_rank_avg_speed_1.text = "";
score.score_rank_distance_2.text = "";
score.score_rank_top_speed_2.text = "";
score.score_rank_avg_speed_2.text = "";
score.score_rank_distance_3.text = "";
score.score_rank_top_speed_3.text = "";
score.score_rank_avg_speed_3.text = "";
score.score_highest_distance.text = "";
score.score_highest_top_speed.text = "";
score.score_highest_avg_speed.text = "";
score.score_highest_distance_date.text = "";
score.score_highest_top_speed_date.text = "";
score.score_highest_avg_speed_date.text = "";
score.score_highest_distance_name.text = "";
score.score_highest_top_speed_name.text = "";
score.score_highest_avg_speed_name.text = "";
score.desc.text = "";
}
ResetScore();
score.score_distance.text = (int(racerInfo.distance * 100) / 100) + " MILES";
score.score_top_speed.text = (int(racerInfo.top_speed * 100) / 100) + " MPH";
score.score_avg_speed.text = (int(racerInfo.avg_speed * 100) / 100) + " MPH";
var node = rankXML.firstChild.firstChild;
while (node != null) {
if (node.nodeName == "top") {
switch (node.attributes.field) {
case "distance" :
score.score_highest_distance.text = node.attributes.value + " MILES";
score.score_highest_distance_date.text = node.attributes.date;
score.score_highest_distance_vehicle.gotoAndStop(int(node.attributes.vehicle) + 1);
score.score_highest_distance_name.text = node.attributes.name;
break;
case "top_speed" :
score.score_highest_top_speed.text = node.attributes.value + " MPH";
score.score_highest_top_speed_date.text = node.attributes.date;
score.score_highest_top_speed_vehicle.gotoAndStop(int(node.attributes.vehicle) + 1);
score.score_highest_top_speed_name.text = node.attributes.name;
break;
case "avg_speed" :
score.score_highest_avg_speed.text = node.attributes.value + " MPH";
score.score_highest_avg_speed_date.text = node.attributes.date;
score.score_highest_avg_speed_vehicle.gotoAndStop(int(node.attributes.vehicle) + 1);
score.score_highest_avg_speed_name.text = node.attributes.name;
}
} else if (node.nodeName == "rank") {
var place = node.attributes.place;
if (place.substr(-1) == "1") {
place = place + "ST ";
} else if (place.substr(-1) == "2") {
place = place + "ND ";
} else if (place == "3") {
place = place + "RD ";
} else {
place = place + "TH ";
}
var i = 0;
while (i < int(node.attributes.type)) {
place = place + "*";
i++;
}
switch (node.attributes.field) {
case "distance" :
eval ("score.score_rank_distance_" + node.attributes.type).text = place;
break;
case "top_speed" :
eval ("score.score_rank_top_speed_" + node.attributes.type).text = place;
break;
case "avg_speed" :
eval ("score.score_rank_avg_speed_" + node.attributes.type).text = place;
}
} else if (node.nodeName == "desc") {
var message = ((" " + node.attributes.message) + " ");
var i = 0;
while (i < int(node.attributes.type)) {
message = "*" + message;
i++;
}
score.desc.text = score.desc.text + message;
}
node = node.nextSibling;
}
score.restart_race.onRelease = function () {
ResetScore();
var _local1 = new mx.transitions.Tween(score, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false);
_local1 = new mx.transitions.Tween(title, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false);
_local1.onMotionFinished = function () {
gotoAndPlay ("load");
};
};
score.select_car.onRelease = function () {
ResetScore();
var _local1 = new mx.transitions.Tween(score, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false);
_local1 = new mx.transitions.Tween(title, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false);
_local1.onMotionFinished = function () {
gotoAndPlay ("cars");
};
};
score.credits.onRelease = function () {
ResetScore();
var _local1 = new mx.transitions.Tween(score, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false);
_local1 = new mx.transitions.Tween(title, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false);
_local1.onMotionFinished = function () {
gotoAndPlay ("credits");
};
};
score.restart_race.onRollOver = (score.select_car.onRollOver = (score.credits.onRollOver = function () {
this.nextFrame();
}));
score.restart_race.onReleaseOutside = (score.restart_race.onRollOut = (score.select_car.onReleaseOutside = (score.select_car.onRollOut = (score.credits.onReleaseOutside = (score.credits.onRollOut = function () {
this.prevFrame();
})))));
Frame 255
stop();
Frame 260
gotoAndStop ("score_stop");
Frame 265
function LoadCredits() {
var _local1 = new mx.transitions.Tween(title, "_alpha", mx.transitions.easing.Regular.easeInOut, 0, 100, 25, false);
_local1 = new mx.transitions.Tween(credits, "_alpha", mx.transitions.easing.Regular.easeInOut, 0, 100, 25, false);
}
credits.restart_race.onRelease = function () {
ResetScore();
var _local1 = new mx.transitions.Tween(credits, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false);
_local1 = new mx.transitions.Tween(title, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false);
_local1.onMotionFinished = function () {
gotoAndPlay ("load");
};
};
credits.select_car.onRelease = function () {
ResetScore();
var _local1 = new mx.transitions.Tween(credits, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false);
_local1 = new mx.transitions.Tween(title, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 25, false);
_local1.onMotionFinished = function () {
gotoAndPlay ("cars");
};
};
credits.restart_race.onRollOver = (score.select_car.onRollOver = function () {
this.nextFrame();
});
score.restart_race.onReleaseOutside = (score.restart_race.onRollOut = (score.select_car.onReleaseOutside = (score.select_car.onRollOut = function () {
this.prevFrame();
})));
LoadCredits();
Frame 270
stop();
Frame 275
gotoAndStop ("credits_stop");
Symbol 33 MovieClip Frame 1
stop();
Symbol 47 MovieClip Frame 1
stop();
Symbol 58 MovieClip Frame 1
stop();
Symbol 65 MovieClip Frame 1
stop();
Symbol 79 MovieClip Frame 1
stop();
Symbol 86 MovieClip Frame 1
stop();
Symbol 97 MovieClip Frame 1
stop();
Symbol 99 MovieClip [car] Frame 1
stop();
Symbol 112 MovieClip Frame 1
stop();
Symbol 119 MovieClip Frame 1
stop();
Symbol 130 MovieClip Frame 1
stop();
Symbol 144 MovieClip Frame 1
stop();
Symbol 151 MovieClip Frame 1
stop();
Symbol 160 MovieClip Frame 1
stop();
Symbol 172 MovieClip Frame 1
stop();
Symbol 179 MovieClip Frame 1
stop();
Symbol 192 MovieClip Frame 1
stop();
Symbol 197 MovieClip [notes] Frame 1
var timePrev = 0;
this.onEnterFrame = function () {
var _local1 = getTimer();
fps.text = int((1 / (_local1 - timePrev)) * 1000);
timePrev = _local1;
};
Symbol 259 MovieClip Frame 1
stop();
Symbol 281 MovieClip Frame 1
stop();
Symbol 435 MovieClip [__Packages.mx.transitions.OnEnterFrameBeacon] Frame 0
class mx.transitions.OnEnterFrameBeacon
{
function OnEnterFrameBeacon () {
}
static function init() {
var _local4 = _global.MovieClip;
if (!_root.__OnEnterFrameBeacon) {
mx.transitions.BroadcasterMX.initialize(_local4);
var _local3 = _root.createEmptyMovieClip("__OnEnterFrameBeacon", 9876);
_local3.onEnterFrame = function () {
_global.MovieClip.broadcastMessage("onEnterFrame");
};
}
}
static var version = "1.1.0.52";
}
Symbol 436 MovieClip [__Packages.mx.transitions.BroadcasterMX] Frame 0
class mx.transitions.BroadcasterMX
{
var _listeners;
function BroadcasterMX () {
}
static function initialize(o, dontCreateArray) {
if (o.broadcastMessage != undefined) {
delete o.broadcastMessage;
}
o.addListener = mx.transitions.BroadcasterMX.prototype.addListener;
o.removeListener = mx.transitions.BroadcasterMX.prototype.removeListener;
if (!dontCreateArray) {
o._listeners = new Array();
}
}
function addListener(o) {
removeListener(o);
if (broadcastMessage == undefined) {
broadcastMessage = mx.transitions.BroadcasterMX.prototype.broadcastMessage;
}
return(_listeners.push(o));
}
function removeListener(o) {
var _local2 = _listeners;
var _local3 = _local2.length;
while (_local3--) {
if (_local2[_local3] == o) {
_local2.splice(_local3, 1);
if (!_local2.length) {
broadcastMessage = undefined;
}
return(true);
}
}
return(false);
}
function broadcastMessage() {
var _local5 = String(arguments.shift());
var _local4 = _listeners.concat();
var _local6 = _local4.length;
var _local3 = 0;
while (_local3 < _local6) {
_local4[_local3][_local5].apply(_local4[_local3], arguments);
_local3++;
}
}
static var version = "1.1.0.52";
}
Symbol 437 MovieClip [__Packages.mx.transitions.Tween] Frame 0
class mx.transitions.Tween
{
var obj, prop, begin, useSeconds, _listeners, addListener, prevTime, _time, looping, _duration, broadcastMessage, isPlaying, _fps, prevPos, _pos, change, _intervalID, _startTime;
function Tween (obj, prop, func, begin, finish, duration, useSeconds) {
mx.transitions.OnEnterFrameBeacon.init();
if (!arguments.length) {
return;
}
this.obj = obj;
this.prop = prop;
this.begin = begin;
position = (begin);
this.duration = (duration);
this.useSeconds = useSeconds;
if (func) {
this.func = func;
}
this.finish = (finish);
_listeners = [];
addListener(this);
start();
}
function set time(t) {
prevTime = _time;
if (t > duration) {
if (looping) {
rewind(t - _duration);
update();
broadcastMessage("onMotionLooped", this);
} else {
if (useSeconds) {
_time = _duration;
update();
}
stop();
broadcastMessage("onMotionFinished", this);
}
} else if (t < 0) {
rewind();
update();
} else {
_time = t;
update();
}
//return(time);
}
function get time() {
return(_time);
}
function set duration(d) {
_duration = (((d == null) || (d <= 0)) ? (_global.Infinity) : (d));
//return(duration);
}
function get duration() {
return(_duration);
}
function set FPS(fps) {
var _local2 = isPlaying;
stopEnterFrame();
_fps = fps;
if (_local2) {
startEnterFrame();
}
//return(FPS);
}
function get FPS() {
return(_fps);
}
function set position(p) {
setPosition(p);
//return(position);
}
function setPosition(p) {
prevPos = _pos;
obj[prop] = (_pos = p);
broadcastMessage("onMotionChanged", this, _pos);
updateAfterEvent();
}
function get position() {
return(getPosition());
}
function getPosition(t) {
if (t == undefined) {
t = _time;
}
return(func(t, begin, change, _duration));
}
function set finish(f) {
change = f - begin;
//return(finish);
}
function get finish() {
return(begin + change);
}
function continueTo(finish, duration) {
begin = position;
this.finish = (finish);
if (duration != undefined) {
this.duration = (duration);
}
start();
}
function yoyo() {
continueTo(begin, time);
}
function startEnterFrame() {
if (_fps == undefined) {
_global.MovieClip.addListener(this);
} else {
_intervalID = setInterval(this, "onEnterFrame", 1000 / _fps);
}
isPlaying = true;
}
function stopEnterFrame() {
if (_fps == undefined) {
_global.MovieClip.removeListener(this);
} else {
clearInterval(_intervalID);
}
isPlaying = false;
}
function start() {
rewind();
startEnterFrame();
broadcastMessage("onMotionStarted", this);
}
function stop() {
stopEnterFrame();
broadcastMessage("onMotionStopped", this);
}
function resume() {
fixTime();
startEnterFrame();
broadcastMessage("onMotionResumed", this);
}
function rewind(t) {
_time = ((t == undefined) ? 0 : (t));
fixTime();
update();
}
function fforward() {
time = (_duration);
fixTime();
}
function nextFrame() {
if (useSeconds) {
time = ((getTimer() - _startTime) / 1000);
} else {
time = (_time + 1);
}
}
function onEnterFrame() {
nextFrame();
}
function prevFrame() {
if (!useSeconds) {
time = (_time - 1);
}
}
function toString() {
return("[Tween]");
}
function fixTime() {
if (useSeconds) {
_startTime = getTimer() - (_time * 1000);
}
}
function update() {
position = (getPosition(_time));
}
static var version = "1.1.0.52";
static var __initBeacon = mx.transitions.OnEnterFrameBeacon.init();
static var __initBroadcaster = mx.transitions.BroadcasterMX.initialize(mx.transitions.Tween.prototype, true);
function func(t, b, c, d) {
return(((c * t) / d) + b);
}
}
Symbol 438 MovieClip [__Packages.mx.transitions.easing.Regular] Frame 0
class mx.transitions.easing.Regular
{
function Regular () {
}
static function easeIn(t, b, c, d) {
t = t / d;
return(((c * t) * t) + b);
}
static function easeOut(t, b, c, d) {
t = t / d;
return((((-c) * t) * (t - 2)) + b);
}
static function easeInOut(t, b, c, d) {
t = t / (d / 2);
if (t < 1) {
return((((c / 2) * t) * t) + b);
}
t--;
return((((-c) / 2) * ((t * (t - 2)) - 1)) + b);
}
static var version = "1.1.0.52";
}
Symbol 439 MovieClip [__Packages.SafariRally] Frame 0
class SafariRally
{
var engine, wheelFront, wheelRear, pointFront, pointRear, pointMid, gears;
function SafariRally () {
engine = new org.cove.flade.DynamicsEngine();
engine.setDamping(1);
engine.setGravity(0, 0.9);
engine.setSurfaceBounce(0.001);
engine.setSurfaceFriction(0.01);
var _local3 = 225;
var _local5;
var _local6;
var _local4 = 175;
if (_root.racerInfo.vehicle == 1) {
_local5 = _local3 + 99;
_local6 = _local3 + ((_local5 - _local3) / 2);
wheelFront = new org.cove.flade.primitives.Wheel(_local5, _local4, 13);
wheelRear = new org.cove.flade.primitives.Wheel(_local3, _local4, 13);
engine.addPrimitive(wheelFront);
engine.addPrimitive(wheelRear);
pointFront = new org.cove.flade.primitives.CircleParticle(_local5 - 10, _local4 - 20, 18);
pointRear = new org.cove.flade.primitives.CircleParticle(_local3 + 10, _local4 - 20, 18);
pointMid = new org.cove.flade.primitives.CircleParticle(_local6 + 2, _local4 - 19, 18);
gears = [0.5, 0.2, 0.1, 0.07, 0.05];
} else if (_root.racerInfo.vehicle == 2) {
_local5 = _local3 + 99;
_local6 = _local3 + ((_local5 - _local3) / 2);
wheelFront = new org.cove.flade.primitives.Wheel(_local5, _local4, 13);
wheelRear = new org.cove.flade.primitives.Wheel(_local3, _local4, 13);
engine.addPrimitive(wheelFront);
engine.addPrimitive(wheelRear);
pointFront = new org.cove.flade.primitives.CircleParticle(_local5 - 5, _local4 - 20, 20);
pointRear = new org.cove.flade.primitives.CircleParticle(_local3 + 10, _local4 - 20, 20);
pointMid = new org.cove.flade.primitives.CircleParticle(_local6, _local4 - 20, 20);
gears = [0.5, 0.2, 0.11, 0.08, 0.06, 0.05];
} else if (_root.racerInfo.vehicle == 3) {
_local5 = _local3 + 89;
_local6 = _local3 + ((_local5 - _local3) / 2);
wheelFront = new org.cove.flade.primitives.Wheel(_local5, _local4, 13);
wheelRear = new org.cove.flade.primitives.Wheel(_local3, _local4, 13);
engine.addPrimitive(wheelFront);
engine.addPrimitive(wheelRear);
pointFront = new org.cove.flade.primitives.CircleParticle(_local5 - 5, _local4 - 20, 16);
pointRear = new org.cove.flade.primitives.CircleParticle(_local3 + 10, _local4 - 20, 16);
pointMid = new org.cove.flade.primitives.CircleParticle(_local6, _local4 - 20, 16);
gears = [0.5, 0.2, 0.11, 0.07, 0.05, 0.04];
} else if (_root.racerInfo.vehicle == 4) {
_local5 = _local3 + 102;
_local6 = _local3 + ((_local5 - _local3) / 2);
wheelFront = new org.cove.flade.primitives.Wheel(_local5, _local4, 13);
wheelRear = new org.cove.flade.primitives.Wheel(_local3, _local4, 13);
engine.addPrimitive(wheelFront);
engine.addPrimitive(wheelRear);
pointFront = new org.cove.flade.primitives.CircleParticle(_local5 - 5, _local4 - 20, 20);
pointRear = new org.cove.flade.primitives.CircleParticle(_local3 + 10, _local4 - 20, 20);
pointMid = new org.cove.flade.primitives.CircleParticle(_local6 + 1, _local4 - 21, 20);
gears = [0.5, 0.2, 0.1, 0.07, 0.05];
} else if (_root.racerInfo.vehicle == 5) {
_local5 = _local3 + 101;
_local6 = _local3 + ((_local5 - _local3) / 2);
wheelFront = new org.cove.flade.primitives.Wheel(_local5, _local4, 13);
wheelRear = new org.cove.flade.primitives.Wheel(_local3, _local4, 13);
engine.addPrimitive(wheelFront);
engine.addPrimitive(wheelRear);
pointFront = new org.cove.flade.primitives.CircleParticle(_local5 - 5, _local4 - 20, 20);
pointRear = new org.cove.flade.primitives.CircleParticle(_local3 + 10, _local4 - 20, 20);
pointMid = new org.cove.flade.primitives.CircleParticle(_local6 + 3, _local4 - 21, 20);
gears = [0.5, 0.2, 0.11, 0.08, 0.06, 0.05];
}
engine.addPrimitive(pointFront);
engine.addPrimitive(pointRear);
engine.addPrimitive(pointMid);
engine.addConstraint(new org.cove.flade.constraints.SpringConstraint(pointMid, wheelRear));
engine.addConstraint(new org.cove.flade.constraints.SpringConstraint(pointMid, wheelFront));
engine.addConstraint(new org.cove.flade.constraints.AngularConstraint(wheelRear, pointMid, wheelFront));
engine.addConstraint(new org.cove.flade.constraints.SpringConstraint(pointRear, wheelRear));
engine.addConstraint(new org.cove.flade.constraints.SpringConstraint(pointRear, pointMid));
engine.addConstraint(new org.cove.flade.constraints.AngularConstraint(wheelRear, pointRear, pointMid));
engine.addConstraint(new org.cove.flade.constraints.SpringConstraint(pointFront, wheelFront));
engine.addConstraint(new org.cove.flade.constraints.SpringConstraint(pointFront, pointMid));
engine.addConstraint(new org.cove.flade.constraints.AngularConstraint(wheelFront, pointFront, pointMid));
engine.addConstraint(new org.cove.flade.constraints.SpringConstraint(pointFront, pointRear));
engine.addConstraint(new org.cove.flade.constraints.SpringConstraint(wheelRear, wheelFront));
engine.addSurface(new org.cove.flade.surfaces.LineSurface(50, 0, 50, 400));
engine.addSurface(new org.cove.flade.surfaces.LineSurface(50, 250, 400, 250));
engine.addSurface(new org.cove.flade.surfaces.LineSurface(400, 250, 525, 300));
engine.addSurface(new org.cove.flade.surfaces.LineSurface(525, 300, 800, 300));
engine.paintSurfaces();
}
static function Rank() {
_root.rankPos = int(_root.rankSlots / 2);
var rankBegin = (_root.racerPos - 5);
var rankEnd = (_root.racerPos + 5);
if (rankEnd >= _root.racers.length) {
rankBegin = rankBegin - (rankEnd - (_root.racers.length - 1));
_root.rankPos = _root.rankPos + (rankEnd - (_root.racers.length - 1));
rankEnd = _root.racers.length - 1;
}
if (rankBegin < 0) {
_root.rankPos = _root.rankPos + rankBegin;
rankBegin = 0;
}
_root.stationary.dashboard.rankpos._y = 51 + (_root.rankPos * 30);
var i = 0;
while (i <= (rankEnd - rankBegin)) {
eval ("_root.stationary.dashboard.name_" + i).text = _root.racers[rankBegin + i].name;
eval ("_root.stationary.dashboard.miles_" + i).text = _root.racers[rankBegin + i].distance;
eval ("_root.stationary.dashboard.brand_" + i).gotoAndStop(int(_root.racers[rankBegin + i].vehicle) + 1);
eval ("_root.stationary.dashboard.number_" + i).text = (rankBegin + i) + 1;
i++;
}
}
static function Run(movieClip) {
var prevX = 800;
var prevY = 300;
var difficulty = 0;
var carCurrent = 1;
var carOperable = false;
var carDead = false;
var milesPrev = 0;
var interval;
var gameover = false;
var timer = 0;
var dayTime = 0;
var dayTimeZone = 1;
var dayTimeZones = [10, 10, 10, 10];
var gear = 0;
var rpmPrev = 0;
var safariRally = new SafariRally();
_root.stationary.attachMovie("dashboard", "dashboard", _root.stationary.getNextHighestDepth());
_root.stationary.dashboard.car.gotoAndStop(_root.racerInfo.vehicle);
_root.stationary.scene_close.setMask(_root.track.layout);
Rank();
var car = movieClip.createEmptyMovieClip("car", movieClip.getNextHighestDepth());
var notes = _root.stationary.attachMovie("notes", "notes", _root.stationary.getNextHighestDepth());
notes._y = 390;
notes._x = 10;
var wheelFront = movieClip.car.attachMovie("wheel_" + _root.racerInfo.vehicle, "wheelFront", movieClip.car.getNextHighestDepth());
var wheelRear = movieClip.car.attachMovie("wheel_" + _root.racerInfo.vehicle, "wheelRear", movieClip.car.getNextHighestDepth());
var body = movieClip.car.attachMovie("car_" + _root.racerInfo.vehicle, "car", movieClip.car.getNextHighestDepth());
wheelFront._x = safariRally.wheelFront.curr.x;
wheelFront._y = safariRally.wheelFront.curr.y;
wheelRear._x = safariRally.wheelRear.curr.x;
wheelRear._y = safariRally.wheelRear.curr.y;
body._x = safariRally.pointMid.curr.x;
body._y = safariRally.pointMid.curr.y;
var dustsFront = movieClip.car.attachMovie("dust", "dust_front", movieClip.car.getNextHighestDepth());
var dustsRear = movieClip.car.attachMovie("dust", "dust_rear", movieClip.car.getNextHighestDepth());
var dustsBody = movieClip.car.attachMovie("dust", "dust_body", movieClip.car.getNextHighestDepth());
var start_ceremony = _root.attachMovie("start_ceremony", "start_ceremony", _root.getNextHighestDepth());
start_ceremony._y = 115;
_root.attachMovie("shade", "shade", _root.getNextHighestDepth());
_root.stationary.sky.day._alpha = 100;
_root.stationary.sky.dawn._alpha = 100;
_root.stationary.sky.sunset._alpha = 100;
_root.stationary.scene_close._alpha = 10;
body.front._alpha = 100;
body.rear._alpha = 100;
body.mid._alpha = 100;
wheelFront.wheel._alpha = 100;
wheelRear.wheel._alpha = 100;
dustsFront.view._alpha = 5;
dustsRear.view._alpha = 5;
dustsBody.view._alpha = 5;
var openStage = (new mx.transitions.Tween(_root.shade, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 3, true));
openStage.onMotionFinished = function () {
carOperable = true;
};
movieClip.onEnterFrame = function () {
timer++;
dayTime++;
if (dayTime >= dayTimeZones[dayTimeZone]) {
dayTime = 0;
if (dayTimeZone == 0) {
if (_root.stationary.sky.day._alpha < 100) {
_root.stationary.sky.day._alpha = _root.stationary.sky.day._alpha + 1;
if (_root.stationary.scene_close._alpha > 10) {
_root.stationary.scene_close._alpha = _root.stationary.scene_close._alpha - 1;
} else {
_root.stationary.scene_close._alpha = 10;
}
body.front._alpha = body.front._alpha + 1.2;
body.rear._alpha = body.rear._alpha + 1.2;
body.mid._alpha = body.mid._alpha + 1.2;
wheelFront.wheel._alpha = wheelFront.wheel._alpha + 1.2;
wheelRear.wheel._alpha = wheelRear.wheel._alpha + 1.2;
if (dustsFront.view._alpha > 5) {
dustsFront.view._alpha = dustsFront.view._alpha - 1;
dustsRear.view._alpha = dustsRear.view._alpha - 1;
dustsBody.view._alpha = dustsBody.view._alpha - 1;
} else {
dustsFront.view._alpha = 5;
dustsRear.view._alpha = 5;
dustsBody.view._alpha = 5;
}
} else {
_root.stationary.sky.day._alpha = 100;
_root.stationary.sky.dawn._alpha = 100;
_root.stationary.sky.sunset._alpha = 100;
body.front._alpha = 100;
body.rear._alpha = 100;
body.mid._alpha = 100;
wheelFront.wheel._alpha = 100;
wheelRear.wheel._alpha = 100;
_root.stationary.sky.night.swapDepths(_root.stationary.sky.dawn);
_root.stationary.sky.night.swapDepths(_root.stationary.sky.sunset);
dayTimeZone = 1;
}
} else if (dayTimeZone == 1) {
if (_root.stationary.sky.day._alpha > 0) {
_root.stationary.sky.day._alpha = _root.stationary.sky.day._alpha - 1;
} else {
_root.stationary.sky.day.swapDepths(_root.stationary.sky.dawn);
_root.stationary.sky.day.swapDepths(_root.stationary.sky.sunset);
_root.stationary.sky.day.swapDepths(_root.stationary.sky.night);
_root.stationary.sky.day._alpha = 100;
dayTimeZone = 2;
}
} else if (dayTimeZone == 2) {
if (_root.stationary.sky.dawn._alpha > 0) {
_root.stationary.sky.dawn._alpha = _root.stationary.sky.dawn._alpha - 1;
_root.stationary.scene_close._alpha = _root.stationary.scene_close._alpha + 0.2;
body.front._alpha = body.front._alpha - 0.1;
body.rear._alpha = body.rear._alpha - 0.1;
body.mid._alpha = body.mid._alpha - 0.1;
wheelFront.wheel._alpha = wheelFront.wheel._alpha - 0.1;
wheelRear.wheel._alpha = wheelRear.wheel._alpha - 0.1;
dustsFront.view._alpha = dustsFront.view._alpha + 0.3;
dustsRear.view._alpha = dustsRear.view._alpha + 0.3;
dustsBody.view._alpha = dustsBody.view._alpha + 0.3;
} else {
_root.stationary.sky.dawn.swapDepths(_root.stationary.sky.sunset);
_root.stationary.sky.dawn.swapDepths(_root.stationary.sky.night);
_root.stationary.sky.dawn.swapDepths(_root.stationary.sky.day);
_root.stationary.sky.dawn._alpha = 100;
dayTimeZone = 3;
}
} else if (dayTimeZone == 3) {
if (_root.stationary.sky.sunset._alpha > 0) {
_root.stationary.sky.sunset._alpha = _root.stationary.sky.sunset._alpha - 1;
_root.stationary.scene_close._alpha = _root.stationary.scene_close._alpha + 0.8;
body.front._alpha = body.front._alpha - 0.5;
body.rear._alpha = body.rear._alpha - 0.5;
body.mid._alpha = body.mid._alpha - 0.5;
wheelFront.wheel._alpha = wheelFront.wheel._alpha - 0.5;
wheelRear.wheel._alpha = wheelRear.wheel._alpha - 0.5;
dustsFront.view._alpha = dustsFront.view._alpha + 0.5;
dustsRear.view._alpha = dustsRear.view._alpha + 0.5;
dustsBody.view._alpha = dustsBody.view._alpha + 0.5;
} else {
_root.stationary.sky.sunset.swapDepths(_root.stationary.sky.night);
_root.stationary.sky.sunset.swapDepths(_root.stationary.sky.day);
_root.stationary.sky.sunset.swapDepths(_root.stationary.sky.dawn);
_root.stationary.sky.sunset._alpha = 100;
_root.stationary.sky.day._alpha = 0;
_root.stationary.sky.night.swapDepths(_root.stationary.sky.day);
dayTimeZone = 0;
}
}
}
_root.stationary.dashboard.damageRear.text = int(((body.rear._currentframe - 1) / (body.rear._totalframes - 1)) * 100) + "%";
_root.stationary.dashboard.damageFront.text = int(((body.front._currentframe - 1) / (body.front._totalframes - 1)) * 100) + "%";
_root.racerInfo.distance = (-int(this._x)) / 50000;
_root.tempString = (int(_root.racerInfo.distance * 100) / 100) + "";
_root.tempNumber = _root.tempString.indexOf(".");
if (_root.tempNumber == -1) {
_root.tempString = _root.tempString + ".00";
} else {
_root.tempNumber = _root.tempString.substr(_root.tempNumber).length;
var i = 3;
while (i > _root.tempNumber) {
_root.tempString = _root.tempString + "0";
i--;
}
}
_root.tempNumber = 2 - _root.tempString.substr(0, _root.tempString.indexOf(".")).length;
var i = 0;
while (i < _root.tempNumber) {
_root.tempString = "0" + _root.tempString;
i++;
}
_root.stationary.dashboard.milesDash.text = _root.tempString;
_root.stationary.dashboard.levelDash.text = int(difficulty / 10) + 1;
if (_root.stationary.dashboard.levelDash.text.length == 1) {
_root.stationary.dashboard.levelDash.text = "0" + _root.stationary.dashboard.levelDash.text;
}
var mph = int(Math.abs(_root.racerInfo.distance - milesPrev) * 50000);
if (mph > _root.racerInfo.top_speed) {
_root.racerInfo.top_speed = mph;
}
_root.tempString = mph + "";
if (_root.tempString == "1") {
_root.tempString = "0";
}
_root.stationary.dashboard.mphDash.text = "";
var i = 3;
while (i > _root.tempString.length) {
_root.stationary.dashboard.mphDash.text = _root.stationary.dashboard.mphDash.text + 0;
i--;
}
_root.stationary.dashboard.mphDash.text = _root.stationary.dashboard.mphDash.text + _root.tempString;
milesPrev = _root.racerInfo.distance;
if (carOperable) {
if ((rpmPrev > 9) && (gear < (safariRally.gears.length - 1))) {
gear++;
_root.bovSound_2.start();
} else if ((rpmPrev < 4) && (gear > 0)) {
gear--;
}
var rpm = (mph * safariRally.gears[gear]);
rpmPrev = rpm;
var sound_1 = Math.floor(rpm * 1.4);
var sound_2 = Math.ceil(rpm * 1.4);
var sound_2_Level = (rpm % 1);
var sound_1_Level = (1 - sound_2_Level);
if (sound_1 == sound_2) {
sound_2_Level = 1;
}
var bovSound = (rpm * rpm);
_root.bovSound_1.setVolume(bovSound);
var i = 0;
while (i < 20) {
eval ("_root.engineSound_" + i).setVolume(0);
i++;
}
if (sound_1 != sound_2) {
eval ("_root.engineSound_" + sound_1).setVolume(sound_1_Level * _root.engineSound);
}
eval ("_root.engineSound_" + sound_2).setVolume(sound_2_Level * _root.engineSound);
} else if (carDead) {
if (_root.bovSound_1.getVolume() > 0) {
_root.bovSound_1.setVolume(_root.bovSound_1.getVolume() - 5);
}
var i = 0;
while (i < 20) {
if (eval ("_root.engineSound_" + i).getVolume() > 0) {
eval ("_root.engineSound_" + i).setVolume(eval ("_root.engineSound_" + i) - 5);
}
i++;
}
}
eval ("_root.stationary.dashboard.miles_" + _root.rankPos).text = _root.stationary.dashboard.milesDash.text;
_root.racers[_root.racerPos].distance = _root.racerInfo.distance;
if (_root.racers[_root.racerPos].distance > _root.racers[_root.racerPos - 1].distance) {
_root.racers[_root.racerPos].name = _root.racers[_root.racerPos - 1].name;
_root.racers[_root.racerPos].vehicle = _root.racers[_root.racerPos - 1].vehicle;
_root.racers[_root.racerPos].distance = _root.racers[_root.racerPos - 1].distance;
_root.racerPos--;
_root.racers[_root.racerPos].name = _root.racerInfo.name;
_root.racers[_root.racerPos].vehicle = _root.racerInfo.vehicle;
_root.racers[_root.racerPos].distance = int(_root.racerInfo.distance * 100) / 100;
SafariRally.Rank();
}
if (carDead) {
if ((int(_root.stationary.dashboard.mphDash.text) < 10) && (!gameover)) {
gameover = true;
var closeStage = (new mx.transitions.Tween(_root.shade, "_alpha", mx.transitions.easing.Regular.easeInOut, 0, 100, 3, true));
closeStage.onMotionFinished = function () {
clearInterval(interval);
_root.racerInfo.time = timer / 50000;
_root.racerInfo.avg_speed = int((_root.racerInfo.distance / _root.racerInfo.time) * 100) / 100;
car.removeMovieClip();
_root.track.removeMovieClip();
_root.shade.removeMovieClip();
_root.stationary.removeMovieClip();
_root.start_ceremony.removeMovieClip();
_root.crashSound_0.stop();
_root.crashSound_1.stop();
_root.bovSound_1.stop();
_root.bovSound_2.stop();
_root.engineSound_0.stop();
_root.engineSound_1.stop();
_root.engineSound_2.stop();
_root.engineSound_3.stop();
_root.engineSound_4.stop();
_root.engineSound_5.stop();
_root.engineSound_6.stop();
_root.engineSound_7.stop();
_root.engineSound_8.stop();
_root.engineSound_9.stop();
_root.engineSound_10.stop();
_root.engineSound_11.stop();
_root.engineSound_12.stop();
_root.engineSound_13.stop();
_root.engineSound_14.stop();
_root.engineSound_15.stop();
_root.engineSound_16.stop();
_root.engineSound_17.stop();
_root.engineSound_18.stop();
_root.engineSound_19.stop();
delete _root.crashSound_0;
delete _root.crashSound_1;
delete _root.bovSound_1;
delete _root.bovSound_2;
delete _root.engineSound_0;
delete _root.engineSound_1;
delete _root.engineSound_2;
delete _root.engineSound_3;
delete _root.engineSound_4;
delete _root.engineSound_5;
delete _root.engineSound_6;
delete _root.engineSound_7;
delete _root.engineSound_8;
delete _root.engineSound_9;
delete _root.engineSound_10;
delete _root.engineSound_11;
delete _root.engineSound_12;
delete _root.engineSound_13;
delete _root.engineSound_14;
delete _root.engineSound_15;
delete _root.engineSound_16;
delete _root.engineSound_17;
delete _root.engineSound_18;
delete _root.engineSound_19;
_root.crashClip_0.removeMovieClip();
_root.crashClip_1.removeMovieClip();
_root.bovClip_1.removeMovieClip();
_root.bovClip_2.removeMovieClip();
_root.soundClip_0.removeMovieClip();
_root.soundClip_1.removeMovieClip();
_root.soundClip_2.removeMovieClip();
_root.soundClip_3.removeMovieClip();
_root.soundClip_4.removeMovieClip();
_root.soundClip_5.removeMovieClip();
_root.soundClip_6.removeMovieClip();
_root.soundClip_7.removeMovieClip();
_root.soundClip_8.removeMovieClip();
_root.soundClip_9.removeMovieClip();
_root.soundClip_10.removeMovieClip();
_root.soundClip_11.removeMovieClip();
_root.soundClip_12.removeMovieClip();
_root.soundClip_13.removeMovieClip();
_root.soundClip_14.removeMovieClip();
_root.soundClip_15.removeMovieClip();
_root.soundClip_16.removeMovieClip();
_root.soundClip_17.removeMovieClip();
_root.soundClip_18.removeMovieClip();
_root.soundClip_19.removeMovieClip();
_root.gotoAndPlay("record");
};
}
} else {
if (_root.racerInfo.vehicle == 3) {
var keySpeed = 500;
} else {
var keySpeed = 1.75;
}
if ((Key.isDown(37) && (carOperable)) && (safariRally.pointRear.prev.x < safariRally.pointRear.curr.x)) {
safariRally.wheelRear.rp.vs = -keySpeed;
safariRally.wheelFront.rp.vs = -keySpeed;
} else if (Key.isDown(39) && (carOperable)) {
safariRally.wheelRear.rp.vs = keySpeed;
safariRally.wheelFront.rp.vs = keySpeed;
} else {
safariRally.wheelRear.rp.vs = 0;
safariRally.wheelFront.rp.vs = 0;
}
if (safariRally.pointFront.contacted) {
safariRally.pointFront.contacted = false;
body.front.nextFrame();
body.front2.nextFrame();
var crashSound = (carDead ? 1 : (int(Math.random() * 2)));
eval ("_root.crashSound_" + crashSound).setVolume(25);
eval ("_root.crashSound_" + crashSound).start();
if (body.front._currentframe == body.front._totalframes) {
_root.crashSound_0.setVolume(50);
_root.crashSound_0.start();
var i = 0;
while (i <= 10) {
eval ("_root.engineSound_" + i).stop();
i++;
}
carOperable = false;
carDead = true;
var i = 0;
while (i < 4) {
delete safariRally.engine.constraints[i];
i++;
}
delete safariRally.engine.constraints[5];
delete safariRally.engine.constraints[6];
delete safariRally.engine.constraints[8];
delete safariRally.engine.constraints[10];
}
}
if (safariRally.pointRear.contacted) {
safariRally.pointRear.contacted = false;
body.rear.nextFrame();
body.rear2.nextFrame();
var crashSound = (carDead ? 1 : (int(Math.random() * 2)));
eval ("_root.crashSound_" + crashSound).setVolume(25);
eval ("_root.crashSound_" + crashSound).start();
if (body.rear._currentframe == body.rear._totalframes) {
_root.crashSound_0.setVolume(50);
_root.crashSound_0.start();
var i = 0;
while (i <= 10) {
eval ("_root.engineSound_" + i).stop();
i++;
}
carOperable = false;
carDead = true;
var i = 0;
while (i < 4) {
delete safariRally.engine.constraints[i];
i++;
}
delete safariRally.engine.constraints[5];
delete safariRally.engine.constraints[6];
delete safariRally.engine.constraints[8];
delete safariRally.engine.constraints[10];
}
}
}
safariRally.engine.timeStep();
wheelFront._rotation = (Math.atan(safariRally.wheelFront.rp.curr.y / safariRally.wheelFront.rp.curr.x) * 180) / Math.PI;
wheelRear._rotation = (Math.atan(safariRally.wheelRear.rp.curr.y / safariRally.wheelRear.rp.curr.x) * 180) / Math.PI;
wheelFront._x = safariRally.wheelFront.curr.x;
wheelFront._y = safariRally.wheelFront.curr.y;
wheelRear._x = safariRally.wheelRear.curr.x;
wheelRear._y = safariRally.wheelRear.curr.y;
var opp = (safariRally.pointRear.curr.y - safariRally.pointFront.curr.y);
var adj = (safariRally.pointRear.curr.x - safariRally.pointFront.curr.x);
var car_angle = ((Math.atan(opp / adj) * 180) / Math.PI);
if (adj >= 0) {
car_angle = car_angle + 180;
}
body._rotation = car_angle;
body._x = safariRally.pointMid.curr.x;
body._y = safariRally.pointMid.curr.y;
if (safariRally.wheelFront.contacted) {
if (safariRally.wheelFront.prev.x < (safariRally.wheelFront.curr.x - 5)) {
safariRally.wheelFront.contacted = false;
var xDiff = (safariRally.wheelFront.curr.x - safariRally.wheelFront.prev.x);
var yDiff = (safariRally.wheelFront.curr.y - safariRally.wheelFront.prev.y);
var dustHeight = int(Math.sqrt((xDiff * xDiff) + (yDiff * yDiff)));
if (dustHeight > 100) {
dustHeight = 100;
}
dustsFront._yscale = dustHeight;
dustsFront._x = safariRally.wheelFront.curr.x;
dustsFront._y = safariRally.wheelFront.curr.y + 14;
dustsFront.view.gotoAndStop(int(Math.random() * dustsFront.view._totalframes) + 1);
}
}
if (safariRally.wheelRear.contacted) {
if (safariRally.wheelRear.prev.x < (safariRally.wheelRear.curr.x - 5)) {
safariRally.wheelRear.contacted = false;
var xDiff = (safariRally.wheelRear.curr.x - safariRally.wheelRear.prev.x);
var yDiff = (safariRally.wheelRear.curr.y - safariRally.wheelRear.prev.y);
var dustHeight = int(Math.sqrt((xDiff * xDiff) + (yDiff * yDiff)));
if (dustHeight > 100) {
dustHeight = 100;
}
dustsRear._yscale = dustHeight;
dustsRear._x = safariRally.wheelRear.curr.x;
dustsRear._y = safariRally.wheelRear.curr.y + 14;
dustsRear.view.gotoAndStop(int(Math.random() * dustsRear.view._totalframes) + 1);
}
}
if (safariRally.pointMid.contacted) {
if (safariRally.pointMid.prev.x < (safariRally.pointMid.curr.x - 5)) {
safariRally.pointMid.contacted = false;
var dustHeight = (safariRally.pointMid.curr.x - safariRally.pointMid.prev.x);
if (dustHeight > 100) {
dustHeight = 100;
}
dustsBody._yscale = dustHeight;
dustsBody._x = safariRally.pointMid.curr.x;
dustsBody._y = safariRally.pointMid.curr.y + 20;
dustsBody.view.gotoAndStop(int(Math.random() * dustsBody.view._totalframes) + 1);
if (carDead) {
_root.crashSound_0.setVolume(3);
_root.crashSound_0.start();
} else {
var crashSound = int(Math.random() * 2);
eval ("_root.crashSound_" + crashSound).setVolume(10);
eval ("_root.crashSound_" + crashSound).start();
}
if (Math.abs(body._rotation) > 90) {
body.mid.nextFrame();
body.mid2.nextFrame();
}
}
}
if (difficulty < 100) {
difficulty = Math.abs(this._x / 10000);
}
this._x = (-safariRally.pointMid.curr.x) + 200;
if (start_ceremony._x > -1000) {
start_ceremony._x = (-safariRally.pointMid.curr.x) + 157;
}
while (safariRally.engine.surfaces[0].maxX < (safariRally.pointMid.curr.x - 800)) {
removeMovieClip(safariRally.engine.surfaces[0].dmc);
safariRally.engine.removeSurface();
}
while (safariRally.engine.surfaces[safariRally.engine.surfaces.length - 1].minX < (safariRally.pointMid.curr.x + 900)) {
var x = ((prevX + 200) + ((Math.random() * difficulty) * 5));
var y = ((prevY + (Math.random() * difficulty)) - (difficulty / 2));
if (y > 350) {
y = prevY - ((Math.random() * difficulty) / 2);
} else if (y < 275) {
y = prevY + (Math.random() * difficulty);
}
safariRally.engine.addSurface(new org.cove.flade.surfaces.LineSurface(prevX, prevY, x, y));
safariRally.engine.paintSurfaces();
prevX = x;
prevY = y;
}
};
}
}
Symbol 440 MovieClip [__Packages.org.cove.flade.DynamicsEngine] Frame 0
class org.cove.flade.DynamicsEngine
{
var primitives, surfaces, constraints, gravity, coeffRest, coeffFric, coeffDamp;
function DynamicsEngine () {
primitives = new Array();
surfaces = new Array();
constraints = new Array();
gravity = new org.cove.flade.util.Vector(0, 1);
coeffRest = 1.5;
coeffFric = 0.01;
coeffDamp = 0.99;
}
function addPrimitive(p) {
primitives.push(p);
}
function addSurface(s) {
surfaces.push(s);
}
function unshiftSurface(s) {
surfaces.unshift(s);
}
function removeSurface() {
surfaces.shift();
}
function addConstraint(c) {
constraints.push(c);
}
function paintSurfaces() {
var _local2 = 0;
while (_local2 < surfaces.length) {
surfaces[_local2].paint();
_local2++;
}
}
function paintPrimitives() {
var _local2 = 0;
while (_local2 < primitives.length) {
primitives[_local2].paint();
_local2++;
}
}
function paintConstraints() {
var _local2 = 0;
while (_local2 < constraints.length) {
constraints[_local2].paint();
_local2++;
}
}
function timeStep() {
verlet();
satisfyConstraints();
checkCollisions();
}
function setSurfaceBounce(kfr) {
coeffRest = 1 + kfr;
}
function setSurfaceFriction(f) {
coeffFric = f;
}
function setDamping(d) {
coeffDamp = d;
}
function setGravity(gx, gy) {
gravity.x = gx;
gravity.y = gy;
}
function verlet() {
var _local2 = 0;
while (_local2 < primitives.length) {
primitives[_local2].verlet(this);
_local2++;
}
}
function satisfyConstraints() {
var _local2 = 0;
while (_local2 < constraints.length) {
constraints[_local2].resolve();
_local2++;
}
}
function checkCollisions() {
var _local4 = 0;
while (_local4 < surfaces.length) {
var _local3 = surfaces[_local4];
if (_local3.getActiveState()) {
var _local2 = 0;
while (_local2 < primitives.length) {
primitives[_local2].checkCollision(_local3, this);
_local2++;
}
}
_local4++;
}
}
}
Symbol 441 MovieClip [__Packages.org.cove.flade.util.Vector] Frame 0
class org.cove.flade.util.Vector
{
var x, y;
function Vector (px, py) {
x = px;
y = py;
}
function setTo(px, py) {
x = px;
y = py;
}
function copy(v) {
x = v.x;
y = v.y;
}
function dot(v) {
return((x * v.x) + (y * v.y));
}
function cross(v) {
return((x * v.y) - (y * v.x));
}
function plus(v) {
x = x + v.x;
y = y + v.y;
return(this);
}
function plusNew(v) {
return(new org.cove.flade.util.Vector(x + v.x, y + v.y));
}
function minus(v) {
x = x - v.x;
y = y - v.y;
return(this);
}
function minusNew(v) {
return(new org.cove.flade.util.Vector(x - v.x, y - v.y));
}
function mult(s) {
x = x * s;
y = y * s;
return(this);
}
function multNew(s) {
return(new org.cove.flade.util.Vector(x * s, y * s));
}
function distance(v) {
var _local3 = x - v.x;
var _local2 = y - v.y;
return(Math.sqrt((_local3 * _local3) + (_local2 * _local2)));
}
function normalize() {
var _local2 = Math.sqrt((x * x) + (y * y));
x = x / _local2;
y = y / _local2;
return(this);
}
function magnitude() {
return(Math.sqrt((x * x) + (y * y)));
}
function project(b) {
var _local5 = dot(b);
var _local4 = (b.x * b.x) + (b.y * b.y);
var _local3 = new org.cove.flade.util.Vector(0, 0);
_local3.x = (_local5 / _local4) * b.x;
_local3.y = (_local5 / _local4) * b.y;
return(_local3);
}
}
Symbol 442 MovieClip [__Packages.org.cove.flade.primitives.Particle] Frame 0
class org.cove.flade.primitives.Particle
{
var init, curr, prev, temp, extents, bmin, bmax, mtd, isVisible, dmc, contacted;
function Particle (posX, posY) {
init = new org.cove.flade.util.Vector(posX, posY);
curr = new org.cove.flade.util.Vector(posX, posY);
prev = new org.cove.flade.util.Vector(posX, posY);
temp = new org.cove.flade.util.Vector(0, 0);
extents = new org.cove.flade.util.Vector(0, 0);
bmin = 0;
bmax = 0;
mtd = new org.cove.flade.util.Vector(0, 0);
initializeContainer();
isVisible = true;
}
function initializeContainer() {
var _local3 = _root.track.layout.getNextHighestDepth();
var _local4 = "_" + _local3;
dmc = _root.track.layout.createEmptyMovieClip(_local4, _local3);
}
function setVisible(v) {
isVisible = v;
}
function verlet(sysObj) {
temp.x = curr.x;
temp.y = curr.y;
curr.x = curr.x + ((sysObj.coeffDamp * (curr.x - prev.x)) + sysObj.gravity.x);
curr.y = curr.y + ((sysObj.coeffDamp * (curr.y - prev.y)) + sysObj.gravity.y);
prev.x = temp.x;
prev.y = temp.y;
}
function pin() {
curr.x = init.x;
curr.y = init.y;
prev.x = init.x;
prev.y = init.y;
}
function setPos(px, py) {
curr.x = px;
curr.y = py;
prev.x = px;
prev.y = py;
}
function getCardXProjection() {
bmin = curr.x - extents.x;
bmax = curr.x + extents.x;
}
function getCardYProjection() {
bmin = curr.y - extents.y;
bmax = curr.y + extents.y;
}
function getAxisProjection(axis) {
var _local5 = new org.cove.flade.util.Vector(Math.abs(axis.x), Math.abs(axis.y));
var _local2 = curr.dot(axis);
var _local3 = extents.dot(_local5);
bmin = _local2 - _local3;
bmax = _local2 + _local3;
}
function setMTD(depthX, depthY, depthN, surfNormal) {
var _local4 = Math.abs(depthX);
var _local3 = Math.abs(depthY);
var _local2 = Math.abs(depthN);
if ((_local4 < _local3) && (_local4 < _local2)) {
mtd.setTo(depthX, 0);
} else if ((_local3 < _local4) && (_local3 < _local2)) {
mtd.setTo(0, depthY);
} else if ((_local2 < _local4) && (_local2 < _local3)) {
mtd = surfNormal.multNew(depthN);
}
}
function setXYMTD(depthX, depthY) {
var _local3 = Math.abs(depthX);
var _local2 = Math.abs(depthY);
if (_local3 < _local2) {
mtd.setTo(depthX, 0);
} else {
mtd.setTo(0, depthY);
}
}
function resolveCollision(normal, sysObj) {
contacted = true;
var _local2 = curr.minusNew(prev);
var _local3 = normal.dot(_local2);
var _local8 = _local2.minusNew(normal.multNew(_local3));
var _local4 = _local8.multNew(sysObj.coeffFric);
var _local5 = normal.multNew(_local3 * sysObj.coeffRest);
var _local6 = _local5.plusNew(_local4);
var _local7 = _local2.minusNew(_local6);
curr.plus(mtd);
prev = curr.minusNew(_local7);
}
function paint() {
}
function checkCollision(surface, sysObj) {
}
}
Symbol 443 MovieClip [__Packages.org.cove.flade.surfaces.Surface] Frame 0
interface org.cove.flade.surfaces.Surface
{
}
Symbol 444 MovieClip [__Packages.org.cove.flade.primitives.CircleParticle] Frame 0
class org.cove.flade.primitives.CircleParticle extends org.cove.flade.primitives.Particle
{
var radius, contactRadius, extents, closestPoint, dmc, curr;
function CircleParticle (px, py, r) {
super(px, py);
radius = r;
contactRadius = r;
extents = new org.cove.flade.util.Vector(r, r);
closestPoint = new org.cove.flade.util.Vector(0, 0);
}
function paint() {
dmc.clear();
dmc.lineStyle(0, 6710886, 100);
org.cove.flade.graphics.Graphics.paintCircle(dmc, curr.x, curr.y, radius);
}
function checkCollision(surface, sysObj) {
surface.resolveCircleCollision(this, sysObj);
}
}
Symbol 445 MovieClip [__Packages.org.cove.flade.graphics.Graphics] Frame 0
class org.cove.flade.graphics.Graphics
{
function Graphics () {
}
static function paintLine(dmc, x0, y0, x1, y1) {
dmc.moveTo(x0, y0);
dmc.lineTo(x1, y1);
}
static function paintCircle(dmc, x, y, r) {
var mtp8r = (0.414213562373095 * r);
var msp4r = (0.707106781186547 * r);
with (dmc) {
moveTo(x + r, y);
curveTo(r + x, mtp8r + y, msp4r + x, msp4r + y);
curveTo(mtp8r + x, r + y, x, r + y);
curveTo((-mtp8r) + x, r + y, (-msp4r) + x, msp4r + y);
curveTo((-r) + x, mtp8r + y, (-r) + x, y);
curveTo((-r) + x, (-mtp8r) + y, (-msp4r) + x, (-msp4r) + y);
curveTo((-mtp8r) + x, (-r) + y, x, (-r) + y);
curveTo(mtp8r + x, (-r) + y, msp4r + x, (-msp4r) + y);
curveTo(r + x, (-mtp8r) + y, r + x, y);
}
}
static function paintRectangle(dmc, x, y, w, h) {
var w2 = (w / 2);
var h2 = (h / 2);
with (dmc) {
moveTo(x - w2, y - h2);
lineTo(x + w2, y - h2);
lineTo(x + w2, y + h2);
lineTo(x - w2, y + h2);
lineTo(x - w2, y - h2);
}
}
}
Symbol 446 MovieClip [__Packages.org.cove.flade.primitives.RectangleParticle] Frame 0
class org.cove.flade.primitives.RectangleParticle extends org.cove.flade.primitives.Particle
{
var width, height, vertex, extents, isVisible, dmc, curr;
function RectangleParticle (px, py, w, h) {
super(px, py);
width = w;
height = h;
vertex = new org.cove.flade.util.Vector(0, 0);
extents = new org.cove.flade.util.Vector(w / 2, h / 2);
}
function paint() {
if (isVisible) {
dmc.clear();
dmc.lineStyle(0, 6710886, 100);
org.cove.flade.graphics.Graphics.paintRectangle(dmc, curr.x, curr.y, width, height);
}
}
function checkCollision(surface, sysObj) {
surface.resolveRectangleCollision(this, sysObj);
}
}
Symbol 447 MovieClip [__Packages.org.cove.flade.constraints.Constraint] Frame 0
interface org.cove.flade.constraints.Constraint
{
}
Symbol 448 MovieClip [__Packages.org.cove.flade.constraints.AngularConstraint] Frame 0
class org.cove.flade.constraints.AngularConstraint implements org.cove.flade.constraints.Constraint
{
var pA, pB, pC, lineA, lineB, pD, lineC, targetTheta, stiffness;
function AngularConstraint (p1, p2, p3) {
pA = p1.curr;
pB = p2.curr;
pC = p3.curr;
lineA = new org.cove.flade.util.Line(pA, pB);
lineB = new org.cove.flade.util.Line(pB, pC);
pD = new org.cove.flade.util.Vector(pB.x + 0, pB.y - 1);
lineC = new org.cove.flade.util.Line(pB, pD);
targetTheta = calcTheta(pA, pB, pC);
stiffness = 1;
}
function resolve() {
var _local5 = getCentroid();
lineC.p2.x = lineC.p1.x + 0;
lineC.p2.y = lineC.p1.y - 1;
var _local9 = pA.distance(pB);
var _local8 = pB.distance(pC);
var _local12 = calcTheta(pA, pB, pC);
var _local13 = calcTheta(pA, pB, pD);
var _local11 = calcTheta(pC, pB, pD);
var _local6 = (targetTheta - _local12) / 2;
var _local10 = _local13 + (_local6 * stiffness);
var _local4 = _local11 - (_local6 * stiffness);
pA.x = (_local9 * Math.sin(_local10)) + pB.x;
pA.y = (_local9 * Math.cos(_local10)) + pB.y;
pC.x = (_local8 * Math.sin(_local4)) + pB.x;
pC.y = (_local8 * Math.cos(_local4)) + pB.y;
var _local7 = getCentroid();
var _local3 = _local7.x - _local5.x;
var _local2 = _local7.y - _local5.y;
pA.x = pA.x - _local3;
pA.y = pA.y - _local2;
pB.x = pB.x - _local3;
pB.y = pB.y - _local2;
pC.x = pC.x - _local3;
pC.y = pC.y - _local2;
}
function paint() {
}
function setStiffness(s) {
stiffness = s;
}
function calcTheta(pa, pb, pc) {
var _local2 = new org.cove.flade.util.Vector(pb.x - pa.x, pb.y - pa.y);
var _local3 = new org.cove.flade.util.Vector(pc.x - pb.x, pc.y - pb.y);
var _local4 = _local2.dot(_local3);
var _local5 = _local2.cross(_local3);
return(Math.atan2(_local5, _local4));
}
function getCentroid() {
var _local3 = ((pA.x + pB.x) + pC.x) / 3;
var _local2 = ((pA.y + pB.y) + pC.y) / 3;
return(new org.cove.flade.util.Vector(_local3, _local2));
}
}
Symbol 449 MovieClip [__Packages.org.cove.flade.util.Line] Frame 0
class org.cove.flade.util.Line
{
var p1, p2;
function Line (p1, p2) {
this.p1 = p1;
this.p2 = p2;
}
}
Symbol 450 MovieClip [__Packages.org.cove.flade.primitives.Wheel] Frame 0
class org.cove.flade.primitives.Wheel extends org.cove.flade.primitives.CircleParticle
{
var rp, coeffSlip, isVisible, curr, dmc, radius, prev;
function Wheel (x, y, r) {
super(x, y, r);
rp = new org.cove.flade.primitives.RimParticle(r, 2);
coeffSlip = 0;
}
function verlet(sysObj) {
rp.verlet(sysObj);
super.verlet(sysObj);
}
function resolveCollision(normal, sysObj) {
super.resolveCollision(normal, sysObj);
resolve(normal);
}
function paint() {
if (isVisible) {
var _local3 = curr.x;
var _local2 = curr.y;
var _local5 = rp.curr.x;
var _local4 = rp.curr.y;
dmc.clear();
dmc.lineStyle(0, 2237064, 100);
org.cove.flade.graphics.Graphics.paintCircle(dmc, _local3, _local2, radius);
dmc.lineStyle(0, 10066329, 100);
org.cove.flade.graphics.Graphics.paintLine(dmc, _local5 + _local3, _local4 + _local2, _local3, _local2);
org.cove.flade.graphics.Graphics.paintLine(dmc, (-_local5) + _local3, (-_local4) + _local2, _local3, _local2);
org.cove.flade.graphics.Graphics.paintLine(dmc, (-_local4) + _local3, _local5 + _local2, _local3, _local2);
org.cove.flade.graphics.Graphics.paintLine(dmc, _local4 + _local3, (-_local5) + _local2, _local3, _local2);
}
}
function setTraction(t) {
coeffSlip = t;
}
function resolve(n) {
var _local3 = -rp.curr.y;
var _local2 = rp.curr.x;
var _local4 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
_local3 = _local3 / _local4;
_local2 = _local2 / _local4;
var _local13 = _local3 * rp.speed;
var _local11 = _local2 * rp.speed;
var _local12 = curr.x - prev.x;
var _local10 = curr.y - prev.y;
var _local9 = _local12 + _local13;
var _local8 = _local10 + _local11;
var _local6 = ((-n.y) * _local9) + (n.x * _local8);
rp.prev.x = rp.curr.x - (_local6 * _local3);
rp.prev.y = rp.curr.y - (_local6 * _local2);
var _local7 = 1 - coeffSlip;
curr.x = curr.x + ((_local7 * rp.speed) * (-n.y));
curr.y = curr.y + ((_local7 * rp.speed) * n.x);
rp.speed = rp.speed * coeffSlip;
}
}
Symbol 451 MovieClip [__Packages.org.cove.flade.primitives.RimParticle] Frame 0
class org.cove.flade.primitives.RimParticle
{
var curr, prev, vs, speed, maxTorque, wr;
function RimParticle (r, mt) {
curr = new org.cove.flade.util.Vector(r, 0);
prev = new org.cove.flade.util.Vector(0, 0);
vs = 0;
speed = 0;
maxTorque = mt;
wr = r;
}
function verlet(sysObj) {
speed = Math.max(-maxTorque, Math.min(maxTorque, speed + vs));
var _local3 = -curr.y;
var _local2 = curr.x;
var _local4 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
_local3 = _local3 / _local4;
_local2 = _local2 / _local4;
curr.x = curr.x + (speed * _local3);
curr.y = curr.y + (speed * _local2);
var _local10 = prev.x;
var _local9 = prev.y;
var _local8 = (prev.x = curr.x);
var _local7 = (prev.y = curr.y);
curr.x = curr.x + (sysObj.coeffDamp * (_local8 - _local10));
curr.y = curr.y + (sysObj.coeffDamp * (_local7 - _local9));
var _local6 = Math.sqrt((curr.x * curr.x) + (curr.y * curr.y));
var _local5 = (_local6 - wr) / _local6;
curr.x = curr.x - (curr.x * _local5);
curr.y = curr.y - (curr.y * _local5);
}
}
Symbol 452 MovieClip [__Packages.org.cove.flade.constraints.SpringConstraint] Frame 0
class org.cove.flade.constraints.SpringConstraint implements org.cove.flade.constraints.Constraint
{
var p1, p2, restLength, stiffness, color, isVisible, dmc;
function SpringConstraint (p1, p2) {
this.p1 = p1;
this.p2 = p2;
restLength = p1.curr.distance(p2.curr);
stiffness = 0.5;
color = 10053171 /* 0x996633 */;
initializeContainer();
isVisible = true;
}
function initializeContainer() {
var _local3 = _root.track.layout.getNextHighestDepth();
var _local4 = "_" + _local3;
dmc = _root.track.layout.createEmptyMovieClip(_local4, _local3);
}
function resolve() {
var _local5 = p1.curr.minusNew(p2.curr);
var _local3 = p1.curr.distance(p2.curr);
var _local4 = (_local3 - restLength) / _local3;
var _local2 = _local5.mult(_local4 * stiffness);
p1.curr.minus(_local2);
p2.curr.plus(_local2);
}
function setRestLength(r) {
restLength = r;
}
function setStiffness(s) {
stiffness = s;
}
function setVisible(v) {
isVisible = v;
}
function paint() {
if (isVisible) {
dmc.clear();
dmc.lineStyle(0, color, 100);
org.cove.flade.graphics.Graphics.paintLine(dmc, p1.curr.x, p1.curr.y, p2.curr.x, p2.curr.y);
}
}
}
Symbol 453 MovieClip [__Packages.org.cove.flade.surfaces.AbstractTile] Frame 0
class org.cove.flade.surfaces.AbstractTile
{
var center, verts, normal, isVisible, isActivated, dmc, minX, maxX, minY, maxY;
function AbstractTile (cx, cy) {
center = new org.cove.flade.util.Vector(cx, cy);
verts = new Array();
normal = new org.cove.flade.util.Vector(0, 0);
isVisible = true;
isActivated = true;
initializeContainer();
}
function initializeContainer() {
var _local3 = _root.track.layout.getNextHighestDepth();
var _local4 = "_" + _local3;
dmc = _root.track.layout.createEmptyMovieClip(_local4, _local3);
}
function setVisible(v) {
isVisible = v;
}
function setActiveState(a) {
isActivated = a;
}
function getActiveState() {
return(isActivated);
}
function createBoundingRect(rw, rh) {
var _local2 = center.y - (rh / 2);
var _local3 = center.y + (rh / 2);
var _local5 = center.x - (rw / 2);
var _local4 = center.x + (rw / 2);
verts.push(new org.cove.flade.util.Vector(_local4, _local3));
verts.push(new org.cove.flade.util.Vector(_local4, _local2));
verts.push(new org.cove.flade.util.Vector(_local5, _local2));
verts.push(new org.cove.flade.util.Vector(_local5, _local3));
setCardProjections();
}
function testIntervals(boxMin, boxMax, tileMin, tileMax) {
if (boxMax < tileMin) {
return(0);
}
if (tileMax < boxMin) {
return(0);
}
var _local2 = tileMax - boxMin;
var _local1 = tileMin - boxMax;
if (Math.abs(_local2) < Math.abs(_local1)) {
return(_local2);
}
return(_local1);
}
function setCardProjections() {
getCardXProjection();
getCardYProjection();
}
function getCardXProjection() {
minX = verts[0].x;
var _local2 = 1;
while (_local2 < verts.length) {
if (verts[_local2].x < minX) {
minX = verts[_local2].x;
}
_local2++;
}
maxX = verts[0].x;
_local2 = 1;
while (_local2 < verts.length) {
if (verts[_local2].x > maxX) {
maxX = verts[_local2].x;
}
_local2++;
}
}
function getCardYProjection() {
minY = verts[0].y;
var _local2 = 1;
while (_local2 < verts.length) {
if (verts[_local2].y < minY) {
minY = verts[_local2].y;
}
_local2++;
}
maxY = verts[0].y;
_local2 = 1;
while (_local2 < verts.length) {
if (verts[_local2].y > maxY) {
maxY = verts[_local2].y;
}
_local2++;
}
}
function onContact() {
}
}
Symbol 454 MovieClip [__Packages.org.cove.flade.surfaces.LineSurface] Frame 0
class org.cove.flade.surfaces.LineSurface extends org.cove.flade.surfaces.AbstractTile implements org.cove.flade.surfaces.Surface
{
var p1, p2, collNormal, isVisible, dmc, onContact, faceNormal, collisionDepth, testIntervals, minY, maxY, minX, maxX, sideNormal, minS, maxS, minF, maxF, rise, run, sign, slope, invB, setCardProjections, p3, p4, verts;
function LineSurface (p1x, p1y, p2x, p2y) {
super(0, 0);
p1 = new org.cove.flade.util.Vector(p1x, p1y);
p2 = new org.cove.flade.util.Vector(p2x, p2y);
calcFaceNormal();
collNormal = new org.cove.flade.util.Vector(0, 0);
setCollisionDepth(30);
}
function paint() {
if (isVisible) {
dmc.clear();
dmc.beginFill(16711680);
dmc.moveTo(p1.x, p1.y);
dmc.lineTo(p2.x, p2.y);
dmc.lineTo(p2.x, 400);
dmc.lineTo(p1.x, 400);
dmc.lineTo(p1.x, p1.y);
dmc.endFill();
}
}
function resolveCircleCollision(p, sysObj) {
if (isCircleColliding(p)) {
onContact();
p.resolveCollision(faceNormal, sysObj);
}
}
function resolveRectangleCollision(p, sysObj) {
if (isRectangleColliding(p)) {
onContact();
p.resolveCollision(collNormal, sysObj);
}
}
function setCollisionDepth(d) {
collisionDepth = d;
precalculate();
}
function isCircleColliding(p) {
findClosestPoint(p.curr, p.closestPoint);
var _local3 = p.closestPoint.minusNew(p.curr);
_local3.normalize();
if (inequality(p.curr)) {
var _local5 = Math.abs(_local3.x);
_local3.x = ((faceNormal.x < 0) ? (_local5) : (-_local5));
_local3.y = Math.abs(_local3.y);
}
var _local4 = p.curr.plusNew(_local3.mult(p.radius));
if (segmentInequality(_local4)) {
if (_local4.distance(p.closestPoint) > collisionDepth) {
return(false);
}
var _local7 = _local4.x - p.closestPoint.x;
var _local6 = _local4.y - p.closestPoint.y;
p.mtd.setTo(-_local7, -_local6);
return(true);
}
return(false);
}
function isRectangleColliding(p) {
p.getCardYProjection();
var _local7 = testIntervals(p.bmin, p.bmax, minY, maxY);
if (_local7 == 0) {
return(false);
}
p.getCardXProjection();
var _local8 = testIntervals(p.bmin, p.bmax, minX, maxX);
if (_local8 == 0) {
return(false);
}
p.getAxisProjection(sideNormal);
var _local10 = testIntervals(p.bmin, p.bmax, minS, maxS);
if (_local10 == 0) {
return(false);
}
p.getAxisProjection(faceNormal);
var _local9 = testIntervals(p.bmin, p.bmax, minF, maxF);
if (_local9 == 0) {
return(false);
}
var _local4 = Math.abs(_local8);
var _local3 = Math.abs(_local7);
var _local6 = Math.abs(_local10);
var _local5 = Math.abs(_local9);
if (((_local4 <= _local3) && (_local4 <= _local6)) && (_local4 <= _local5)) {
p.mtd.setTo(_local8, 0);
collNormal.setTo(p.mtd.x / _local4, 0);
} else if (((_local3 <= _local4) && (_local3 <= _local6)) && (_local3 <= _local5)) {
p.mtd.setTo(0, _local7);
collNormal.setTo(0, p.mtd.y / _local3);
} else if (((_local5 <= _local4) && (_local5 <= _local3)) && (_local5 <= _local6)) {
p.mtd = faceNormal.multNew(_local9);
collNormal.copy(faceNormal);
} else if (((_local6 <= _local4) && (_local6 <= _local3)) && (_local6 <= _local5)) {
p.mtd = sideNormal.multNew(_local10);
collNormal.copy(sideNormal);
}
return(true);
}
function precalculate() {
rise = p2.y - p1.y;
run = p2.x - p1.x;
sign = ((run >= 0) ? 1 : -1);
slope = rise / run;
invB = 1 / ((run * run) + (rise * rise));
createRectangle();
calcSideNormal();
setCardProjections();
setAxisProjections();
}
function calcFaceNormal() {
faceNormal = new org.cove.flade.util.Vector(0, 0);
var _local3 = p2.x - p1.x;
var _local2 = p2.y - p1.y;
faceNormal.setTo(_local2, -_local3);
faceNormal.normalize();
}
function segmentInequality(toPoint) {
var _local2 = findU(toPoint);
var _local3 = inequality(toPoint);
return(((_local2 >= 0) && (_local2 <= 1)) && (_local3));
}
function inequality(toPoint) {
var _local2 = ((slope * (toPoint.x - p1.x)) + (p1.y - toPoint.y)) * sign;
return(_local2 <= 0);
}
function findClosestPoint(toPoint, returnVect) {
var _local2 = findU(toPoint);
if (_local2 <= 0) {
returnVect.copy(p1);
return(undefined);
}
if (_local2 >= 1) {
returnVect.copy(p2);
return(undefined);
}
var _local5 = p1.x + (_local2 * (p2.x - p1.x));
var _local4 = p1.y + (_local2 * (p2.y - p1.y));
returnVect.setTo(_local5, _local4);
}
function findU(p) {
var _local2 = ((p.x - p1.x) * run) + ((p.y - p1.y) * rise);
return(_local2 * invB);
}
function createRectangle() {
var _local5 = p2.x + ((-faceNormal.x) * collisionDepth);
var _local3 = p2.y + ((-faceNormal.y) * collisionDepth);
var _local4 = p1.x + ((-faceNormal.x) * collisionDepth);
var _local2 = p1.y + ((-faceNormal.y) * collisionDepth);
p3 = new org.cove.flade.util.Vector(_local5, _local3);
p4 = new org.cove.flade.util.Vector(_local4, _local2);
verts.push(p1);
verts.push(p2);
verts.push(p3);
verts.push(p4);
}
function setAxisProjections() {
var _local2;
minF = p2.dot(faceNormal);
maxF = p3.dot(faceNormal);
if (minF > maxF) {
_local2 = minF;
minF = maxF;
maxF = _local2;
}
minS = p1.dot(sideNormal);
maxS = p2.dot(sideNormal);
if (minS > maxS) {
_local2 = minS;
minS = maxS;
maxS = _local2;
}
}
function calcSideNormal() {
sideNormal = new org.cove.flade.util.Vector(0, 0);
var _local3 = p3.x - p2.x;
var _local2 = p3.y - p2.y;
sideNormal.setTo(_local2, -_local3);
sideNormal.normalize();
}
}
Instance of Symbol 312 MovieClip "loadWheel" in Symbol 315 MovieClip Frame 1
onClipEvent (enterFrame) {
this._rotation = this._rotation - 10;
}
Symbol 331 MovieClip Frame 1
stop();
Symbol 336 MovieClip Frame 1
stop();
Symbol 341 MovieClip Frame 1
stop();
Symbol 346 MovieClip Frame 1
stop();
Symbol 351 MovieClip Frame 1
stop();
Symbol 363 MovieClip Frame 1
stop();
Symbol 416 MovieClip Frame 1
stop();
Symbol 420 MovieClip Frame 1
stop();
Symbol 422 MovieClip Frame 1
stop();