Frame 1
unlockedTracks = new Array();
unlockedTracks[1] = true;
var i = 2;
while (12 >= i) {
unlockedTracks[i] = false;
i++;
}
fscommand ("showmenu", false);
_root._quality = "HIGH";
Frame 3
stop();
Instance of Symbol 8 MovieClip in Frame 3
onClipEvent (enterFrame) {
percent = int((_root.getBytesLoaded() / _root.getBytesTotal()) * 100);
if (percent == 100) {
_parent.gotoAndPlay("intro");
}
}
Frame 13
function unlockAllTracks() {
trace(_root.base.unlockedTracks.length);
var i = 0;
while (i < _root.base.unlockedTracks.length) {
trace(i);
_root.base.unlockedTracks[i] = true;
i++;
}
trace("### CHEAT ### --> UNLOCK ALL TRACKS");
}
if (Object.ACK == null) {
Object.ACK = new Object();
}
Object.ACK.eventEngine = function () {
this.IDcounter = 0;
this.IDlist = new Object();
this.events = new Object();
this.addEventHandler("enterFrame", "onAdd", function () {
if (this.count == null) {
this.count = 0;
}
if (this.count == 0) {
this.eventObj.onEnterFrame = function (obj) {
this.sendEvent("enterframe", obj);
};
}
this.count++;
});
this.addEventHandler("enterFrame", "onRemove", function () {
if (this.count == 1) {
this.eventObj.onEnterFrame = null;
}
this.count--;
});
this.addEventHandler("mouseButton", "onAdd", function () {
if (this.count == null) {
this.count = 0;
}
if (this.count == 0) {
this.eventObj.onMouseButton = function (obj) {
this.sendEvent("mouseButton", obj);
};
}
this.count++;
});
this.addEventHandler("mouseButton", "onRemove", function () {
if (this.count == 1) {
this.eventObj.onMouseButton = null;
}
this.count--;
});
this.addEventHandler("mouseMove", "onAdd", function () {
if (this.count == null) {
this.count = 0;
}
if (this.count == 0) {
this.eventObj.onmouseMove = function (obj) {
this.sendEvent("mouseMove", obj);
};
}
this.count++;
});
this.addEventHandler("mouseMove", "onRemove", function () {
if (this.count == 1) {
this.eventObj.onMouseMove = null;
}
this.count--;
});
this.addEventHandler("key", "onAdd", function () {
if (this.count == null) {
this.count = 0;
}
if (this.count == 0) {
this.eventObj.onKey = function (obj) {
this.sendEvent("key", obj);
};
}
this.count++;
});
this.addEventHandler("key", "onRemove", function () {
if (this.count == 1) {
this.eventObj.onKey = null;
}
this.count--;
});
};
Object.ACK.eventEngine.prototype.addEventHandler = function (event, action, fnPtr) {
if (this.events[event] == null) {
this.events[event] = new Object();
this.events[event].eventObj = this;
}
this.events[event][action] = fnPtr;
};
Object.ACK.eventEngine.prototype.addEventListener = function (event, obj, method, localData) {
if (this.events[event] == null) {
this.events[event] = new Object();
}
if (this.events[event].subscribers == null) {
this.events[event].subscribers = new Object();
}
var id = (this.IDcounter++);
this.events[event].subscribers[id] = new Object();
this.events[event].subscribers[id].obj = obj;
this.events[event].subscribers[id].event = event;
this.events[event].subscribers[id].method = method;
this.events[event].subscribers[id].localData = localData;
this.IDlist[id] = this.events[event].subscribers[id];
this.events[event].onAdd();
return(id);
};
Object.ACK.eventEngine.prototype.removeEventListener = function (id) {
if (this.IDlist[id] == null) {
return(false);
}
this.events[this.IDlist[id].event].onRemove();
delete this.events[this.IDlist[id].event].subscribers[id];
delete this.IDlist[id];
return(true);
};
Object.ACK.eventEngine.prototype.sendEvent = function (event, eventData) {
if (eventData == null) {
eventData = new Object();
}
eventData.type = event;
var list = this.events[event].subscribers;
for (var i in list) {
list[i].obj[list[i].method](eventData, list[i].localData);
}
this.events[event].onEvent();
};
engine = new Object.ACK.eventEngine();
function noCache() {
return("?nocache=" + getTimer());
}
function initCollisionObj(mc) {
mc.left = (mc._x - (mc._width / 2)) - 17;
mc.right = (mc._x + (mc._width / 2)) + 17;
mc.top = (mc._y - (mc._height / 2)) - 17;
mc.bottom = (mc._y + (mc._height / 2)) + 17;
mc.thisX = mc._x;
mc.thisY = mc._y;
mc.collisionDetection = _root.base.collisionDetection;
mc.collisionResolution = _root.base.collisionResolution;
mc.run = _root.base.collisionObjRun;
_root.base.engine.addEventListener("enterFrame", mc, "run");
}
function initCone(mc) {
mc.left = (mc._x - (mc._width / 2)) - 15;
mc.right = (mc._x + (mc._width / 2)) + 15;
mc.top = (mc._y - (mc._height / 2)) - 15;
mc.bottom = (mc._y + (mc._height / 2)) + 15;
mc.thisX = mc._x;
mc.thisY = mc._y;
mc.collisionDetection = _root.base.collisionDetection;
mc.collisionResolution = _root.base.collisionResolutionCone;
mc.run = _root.base.collisionObjRun;
mc.id = _root.base.engine.addEventListener("enterFrame", mc, "run");
}
function collisionObjRun() {
carX = _root.base.car.mc._x;
carY = _root.base.car.mc._y;
if (collisionDetection()) {
_root.base.engine.sendEvent("hitWall");
_root.base.soundMC.playBump();
collisionResolution();
_root.base.car.render();
}
}
function collisionDetection() {
if ((carX < right) && (left < carX)) {
if ((carY < bottom) && (top < carY)) {
return(true);
}
}
return(false);
}
function collisionResolution() {
if (carY < thisY) {
var dy = (top - carY);
var cy = top;
} else {
var dy = (carY - bottom);
var cy = bottom;
}
if (carX < thisX) {
var dx = (left - carX);
var cx = left;
} else {
var dx = (carX - right);
var cx = right;
}
if (dy < dx) {
_root.base.car.xPos = cx;
_root.base.car.xSpeed = _root.base.car.xSpeed * -0.4;
_root.base.car.ySpeed = _root.base.car.ySpeed * 0.7;
} else {
_root.base.car.yPos = cy;
_root.base.car.ySpeed = _root.base.car.ySpeed * -0.4;
_root.base.car.xSpeed = _root.base.car.xSpeed * 0.7;
}
}
function collisionResolutionCone() {
if ((0.02 < Math.abs(_root.base.car.xSpeed)) && (0.02 < Math.abs(_root.base.car.ySpeed))) {
this._rotation = Math.toDegrees(this.getAngle(carX - thisX, carY - thisY)) - 180;
_root.base.engine.removeEventListener(this.id);
_root.base.engine.sendEvent("hitCone");
if (3 < _root.base.car.totv()) {
this.gotoAndPlay("long");
} else {
this.gotoAndPlay("medium");
}
}
}
function initTrack() {
if (_root.base.track) {
delete _root.base.track;
}
_root.base.track = new Object();
_root.base.track.zoneList = new Array();
_root.base.track.zonesPassed = new Array();
_root.base.track.lapTimes = new Array();
_root.base.track.lapCount = 0;
_root.base.track.initZone = function (mc) {
_root.base.track.registerZone(mc.zoneID, mc);
mc._visible = false;
mc.run = _root.base.zoneRun;
};
_root.base.track.registerZone = function (id, mc) {
this.zoneList[id] = mc;
this.zonesPassed[id] = false;
trace(("zone " + id) + " registered");
};
_root.base.track.zoneChange = function (newZone, oldZone) {
if (this.zonesPassed[newZone] == false) {
this.zonesPassed[newZone] = true;
}
if ((oldZone == (this.zoneList.length - 1)) && (newZone == 0)) {
var isFullLap = true;
var i = 0;
while (i < this.zonesPassed.length) {
if (this.zonesPassed[i] == false) {
isFullLap = false;
break;
}
i++;
}
if (isFullLap) {
this.lapCompleted();
}
}
};
_root.base.track.lapCompleted = function () {
this.lapCount++;
_root.base.timerObj.lapCompleted();
var i = 0;
while (i < this.zoneList.length) {
this.zonesPassed[i] = false;
i++;
}
trace(("lap " + this.lapCount) + " completed");
if (this.lapCount == this.numOfLaps) {
trace("### FINISH ###");
_root.base.musicMC.stopMusic();
_root.base.timerObj.stopTime();
_root.base.isRaceOver = true;
_root.base.showResults();
} else {
_root.base.clock.lapCount = this.lapCount + 1;
}
};
_root.base.track.getLapCount = function () {
return(this.lapCount);
};
_root.base.track.getTotalLaps = function () {
return(this.numOfLaps);
};
_root.base.track.setRaceLaps = function (n) {
this.numOfLaps = n;
_root.base.clock.numOfLaps = n;
};
_root.base.track.run = function () {
carX = _root.base.car.mc._x;
carY = _root.base.car.mc._y;
var oldZone = currentZone;
currentZone = "";
var i = 0;
while (i < this.zoneList.length) {
if (this.zoneList[i].hitTest(carX, carY, false)) {
currentZone = i;
break;
}
i++;
}
if (currentZone != "") {
if (oldZone != currentZone) {
this.zoneChange(currentZone, oldZone);
}
} else {
trace("ERROR -- could not locate car");
}
};
_root.base.track.setTimeToBeat = function (time) {
this.timeToBeat = time;
};
_root.base.track.getTimeToBeat = function () {
return(this.timeToBeat);
};
_root.base.engine.sendEvent("initTrack");
}
function showResults() {
_root.base.results.baseTime = _root.base.timerObj.getSec();
_root.base.results.penalties = _root.base.clock.penalties;
_root.base.results.pTime = _root.base.clock.penalties * 2;
_root.base.results.finalTime = _root.base.results.baseTime + _root.base.results.pTime;
_root.base.results.sTime = _root.base.results.finalTime;
_root.base.results.finalTime = _root.base.results.finalTime.formatTime();
_root.base.results.timeToBeat = _root.base.track.getTimeToBeat().formatTime();
trace(_root.base.results.pTime);
_root.base.results.pTime = _root.base.results.pTime.formatTime();
_root.base.results.baseTime = _root.base.results.baseTime.formatTime();
trace(_root.base.results.pTime);
_root.base.results.gotoAndPlay("show");
}
function hideResults() {
_root.base.results.gotoAndStop(1);
}
function checkForQualify() {
trace(_root.base.timerObj.getSec());
trace(_root.base.results.penalties);
trace(_root.base.track.getTimeToBeat());
if ((_root.base.timerObj.getSec() + (_root.base.results.penalties * 2)) < _root.base.track.getTimeToBeat()) {
return(true);
}
return(false);
}
function beginRace(numOfLaps, timeToBeat) {
_root.base.isRaceOver = false;
_root.base.coneCounter.count = 0;
_root.base.timerObj.init(_root.base.clock);
_root.base.timerObj.reset();
_root.base.timerObj.startTime();
_root.base.initTrack();
track.setRaceLaps(numOfLaps);
track.setTimeToBeat(timeToBeat);
_root.base.engine.addEventListener("enterFrame", track, "run");
_root.base.engine.addEventListener("hitCone", coneCounter, "increment");
_root.base.timeToBeat_display = _root.base.track.getTimeToBeat().formatTime();
_root.base.musicMC.playMusic();
}
function unlockNextTrack() {
if (_root.base.unlockedTracks[_root.base.selectedTrack + 1] == false) {
_root.base.unlockedTracks[_root.base.selectedTrack + 1] = true;
}
trace(_root.base.unlockedTracks);
}
Number.prototype.formatTime = function () {
var m = int(this / 60);
var s = int(this % 60);
if (s < 10) {
s = "0" + s;
}
var ms = int((this * 10) % 10);
return((((m + ":") + s) + ".") + ms);
};
Math.toRadians = function (theta) {
return((theta * Math.PI) / 180);
};
Math.toDegrees = function (theta) {
return((theta * 180) / Math.PI);
};
Object.prototype.getAngle = function (dx, dy) {
return(Math.atan2(dy, dx));
};
_root.base = this;
car = new Object();
car.init = function (carmc) {
this.mc = carmc;
this.propList = ["rotSpeed", "rotPos", "xSpeed", "ySpeed", "xPos", "yPos", "throttle", "brake", "oldX", "oldY", "onTrack"];
this.carProps = {power:0.05, revPower:0.04, handling:0.016, traction:1};
var i = 0;
while (i < this.propList.length) {
this[this.propList[i]] = 0;
i++;
}
this.onTrack = 1;
this.xPos = this.mc._x;
this.yPos = this.mc._y;
this.rotPos = (this.mc._rotation / 180) * 3.141593;
this.id = _root.base.engine.addEventListener("enterFrame", this, "run");
};
car.remove = function () {
_root.base.engine.removeEventListener(_root.base.car.id);
};
car.run = function () {
this.oldX = this.xSpeed;
this.oldY = this.ySpeed;
if (Key.isDown(39)) {
this.rotSpeed = this.rotSpeed + this.carProps.handling;
}
if (Key.isDown(32)) {
_root.base.hornMC.playHorn();
}
if (Key.isDown(37)) {
this.rotSpeed = this.rotSpeed - this.carProps.handling;
}
if (!_root.base.isRaceOver) {
if (Key.isDown(38)) {
this.accelerate();
}
this.brake = Key.isDown(40);
if (Key.isDown(81)) {
_root.base.musicMC.stopMusic();
_root.base.timerObj.stopTime();
_root.base.isRaceOver = true;
_root.base.results.gotoAndPlay("quit");
trace("quit");
}
} else {
this.brake = false;
}
var diffRot = (this.getAngle(this.xSpeed, this.ySpeed) - this.rotPos);
var sinDiff = Math.sin(diffRot);
var cosDiff = Math.cos(diffRot);
var totSpeed = this.totv();
if (!this.brake) {
xf = (Math.abs(sinDiff) * this.xSpeed) / 8;
yf = (Math.abs(sinDiff) * this.ySpeed) / 8;
} else {
var carXspeed = (Math.cos(-diffRot) * totSpeed);
if (0.1 < carXspeed) {
this.throttle = 0;
xf = this.xSpeed / 10;
yf = this.ySpeed / 10;
} else {
this.treverse();
xf = (Math.abs(sinDiff) * this.xSpeed) / 8;
yf = (Math.abs(sinDiff) * this.ySpeed) / 8;
}
}
var xForce = ((Math.cos(this.rotPos) * this.throttle) - xf);
var yForce = ((Math.sin(this.rotPos) * this.throttle) - yf);
this.xSpeed = this.xSpeed + (xForce * this.carProps.traction);
this.ySpeed = this.ySpeed + (yForce * this.carProps.traction);
var frict = (_root.base.isRaceOver ? 0.9 : 0.975);
this.throttle = this.throttle * 0.9;
this.xSpeed = this.xSpeed * frict;
this.ySpeed = this.ySpeed * frict;
this.rotSpeed = this.rotSpeed * 0.9;
tXf = this.xSpeed - oldX;
tYf = this.ySpeed - oldY;
Fangle = this.getAngle(tXf, tYf);
Famount = Math.sqrt((tXf * tXf) + (tYf * tYf));
Fdiff = Fangle - this.rotPos;
fx = Math.sin(Fdiff) * Famount;
if (4.2 < Math.abs(fx)) {
_root.base.tireSound.playSound();
}
this.mc.car_body.gotoAndStop(4);
carTilt = 5 - Math.round(fx);
if (carTilt < 1) {
carTilt = 1;
}
this.mc.car_body.gotoAndStop(carTilt);
var rotForce = (this.rotSpeed * (totSpeed / (totSpeed + 2)));
this.rotPos = this.rotPos + rotForce;
this.xPos = this.xPos + this.xSpeed;
this.yPos = this.yPos + this.ySpeed;
this.render();
};
car.accelerate = function () {
this.throttle = this.throttle + this.carProps.power;
};
car.treverse = function () {
this.throttle = this.throttle - this.carProps.revPower;
};
car.totv = function () {
return(Math.sqrt((this.xSpeed * this.xSpeed) + (this.ySpeed * this.ySpeed)));
};
car.render = function () {
this.mc._x = this.xPos;
this.mc._y = this.yPos;
this.mc._rotation = (this.rotPos / 3.141593) * 180;
};
coneCounter = new Object();
coneCounter.count = 0;
coneCounter.increment = function () {
_root.base.timerObj.penalty(3);
this.count++;
_root.base.clock.penalties = this.count;
};
timerObj = new Object();
timerObj.init = function (mc) {
this.mc = mc;
this.frameRate = 30;
this.running = false;
};
timerObj.reset = function (timeLimit) {
if (timeLimit) {
} else {
this.count = 0;
this.pCount = 0;
this.getTimer();
}
};
timerObj.penalty = function (pAmt) {
if (this.isRunning()) {
this.pCount = this.pCount + int(pAmt * this.framerate);
}
};
timerObj.startTime = function () {
this.id = _root.base.engine.addEventListener("enterFrame", this, "run");
this.running = true;
};
timerObj.stopTime = function () {
_root.base.engine.removeEventListener(this.id);
this.running = false;
this.getTimer();
};
timerObj.lapCompleted = function () {
var lapTime = this.count;
var i = 0;
while (i < _root.base.track.lapTimes.length) {
lapTime = lapTime - _root.base.track.lapTimes[i];
i++;
}
_root.base.track.lapTimes.push(lapTime);
trace(_root.base.track.lapTimes);
};
timerObj.getSec = function () {
return(this.count / this.framerate);
};
timerObj.getTimer = function () {
if ((count % 2) == 0) {
var seconds = (this.count / this.framerate);
var min = int(seconds / 60);
var sec = int(seconds % 60);
var msec = int((seconds % 1) * 10);
this.mc.min = min;
this.mc.sec10 = int(sec / 10);
this.mc.sec1 = sec % 10;
this.mc.msec = msec;
}
};
timerObj.run = function () {
this.count++;
this.getTimer();
};
timerObj.isRunning = function () {
return(this.running);
};
Instance of Symbol 11 MovieClip "soundMC" in Frame 13
onClipEvent (load) {
function playBump() {
bump.start();
}
bump = new Sound(this);
bump.attachSound("bump");
}
Instance of Symbol 14 MovieClip "musicMC" in Frame 13
onClipEvent (load) {
function playMusic() {
this.gotoAndPlay("playMusic");
}
function stopMusic() {
this.gotoAndPlay("stopMusic");
}
}
Instance of Symbol 11 MovieClip "hornMC" in Frame 13
onClipEvent (load) {
function playHorn() {
horn.start();
}
horn = new Sound(this);
horn.attachSound("horn");
horn.setVolume(30);
}
Instance of Symbol 11 MovieClip "tireSound" in Frame 13
onClipEvent (load) {
function playSound() {
tires.start();
}
tires = new Sound(this);
tires.attachSound("tires");
tires.setVolume(40);
}
Instance of Symbol 17 MovieClip in Frame 13
onClipEvent (enterFrame) {
_parent.engine.onEnterFrame();
}
onClipEvent (mouseDown) {
_parent.engine.onMouseButton({isDown:true});
}
onClipEvent (mouseUp) {
_parent.engine.onMouseButton({isDown:false});
}
onClipEvent (mouseMove) {
_parent.engine.onMouseMove();
}
onClipEvent (keyDown) {
_parent.engine.onKey({isDown:true, keyCode:Key.getCode()});
}
onClipEvent (keyUp) {
_parent.engine.onKey({isDown:false, keyCode:Key.getCode()});
}
Frame 47
stop();
Frame 54
delete engine;
Frame 57
stop();
Frame 69
stop();
Frame 70
delete engine;
_root._quality = "HIGH";
Instance of Symbol 121 MovieClip in Frame 70
onClipEvent (load) {
this.whichTrack = 1;
}
Instance of Symbol 121 MovieClip in Frame 70
onClipEvent (load) {
this.whichTrack = 4;
}
Instance of Symbol 121 MovieClip in Frame 70
onClipEvent (load) {
this.whichTrack = 7;
}
Instance of Symbol 121 MovieClip in Frame 70
onClipEvent (load) {
this.whichTrack = 10;
}
Instance of Symbol 121 MovieClip in Frame 70
onClipEvent (load) {
this.whichTrack = 2;
}
Instance of Symbol 121 MovieClip in Frame 70
onClipEvent (load) {
this.whichTrack = 5;
}
Instance of Symbol 121 MovieClip in Frame 70
onClipEvent (load) {
this.whichTrack = 8;
}
Instance of Symbol 121 MovieClip in Frame 70
onClipEvent (load) {
this.whichTrack = 11;
}
Instance of Symbol 121 MovieClip in Frame 70
onClipEvent (load) {
this.whichTrack = 3;
}
Instance of Symbol 121 MovieClip in Frame 70
onClipEvent (load) {
this.whichTrack = 6;
}
Instance of Symbol 121 MovieClip in Frame 70
onClipEvent (load) {
this.whichTrack = 9;
}
Instance of Symbol 121 MovieClip in Frame 70
onClipEvent (load) {
this.whichTrack = 12;
}
Frame 78
stop();
Frame 79
delete engine;
Frame 84
stop();
Frame 95
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 97
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 97
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 97
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 224 MovieClip in Frame 97
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 97
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 98
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 35;
lights.gotoAndPlay("show");
stop();
Frame 103
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 105
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 105
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 105
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 105
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 105
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 106
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 40;
lights.gotoAndPlay("show");
stop();
Frame 113
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 115
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 115
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 115
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 115
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 115
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 116
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 25;
lights.gotoAndPlay("show");
stop();
Frame 123
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 125
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 224 MovieClip in Frame 125
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 125
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 125
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 125
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 126
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 50;
lights.gotoAndPlay("show");
stop();
Frame 133
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 135
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 135
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 135
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 135
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 135
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 136
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 60;
lights.gotoAndPlay("show");
stop();
Frame 143
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 145
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 145
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 145
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 145
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 145
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 146
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 60;
lights.gotoAndPlay("show");
stop();
Frame 152
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 154
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 154
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 154
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 224 MovieClip in Frame 154
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 154
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 155
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 25;
lights.gotoAndPlay("show");
stop();
Frame 161
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 163
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 163
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 163
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 163
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 163
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 164
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 50;
lights.gotoAndPlay("show");
stop();
Frame 171
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 173
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 173
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 173
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 173
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 173
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 174
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 25;
lights.gotoAndPlay("show");
stop();
Frame 180
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 182
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 182
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 182
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 182
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 182
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 183
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 40;
lights.gotoAndPlay("show");
stop();
Frame 190
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 192
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 192
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 192
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 192
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 192
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 193
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 45;
lights.gotoAndPlay("show");
stop();
Frame 199
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 201
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 201
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 201
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 201
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 201
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 202
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 30;
lights.gotoAndPlay("show");
stop();
Frame 209
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 211
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 211
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 211
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 224 MovieClip in Frame 211
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 211
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 212
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 27;
lights.gotoAndPlay("show");
stop();
Frame 220
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 222
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 222
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 222
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 222
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 222
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 223
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 30;
lights.gotoAndPlay("show");
stop();
Frame 230
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 232
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 232
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 232
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 232
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 232
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 233
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 19;
lights.gotoAndPlay("show");
stop();
Frame 240
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 242
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 224 MovieClip in Frame 242
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 242
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 242
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 242
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 243
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 33;
lights.gotoAndPlay("show");
stop();
Frame 250
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 252
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 252
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 252
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 252
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 252
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 253
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 34;
lights.gotoAndPlay("show");
stop();
Frame 260
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 262
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 262
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 262
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 262
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 262
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 263
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 41;
lights.gotoAndPlay("show");
stop();
Frame 269
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 271
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 271
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 271
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 224 MovieClip in Frame 271
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 271
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 272
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 20;
lights.gotoAndPlay("show");
stop();
Frame 278
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 280
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 280
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 280
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 280
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 280
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 281
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 40;
lights.gotoAndPlay("show");
stop();
Frame 288
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 290
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 290
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 290
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 290
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 290
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 291
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 20;
lights.gotoAndPlay("show");
stop();
Frame 297
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 299
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 299
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 299
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 299
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 299
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 300
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 26;
lights.gotoAndPlay("show");
stop();
Frame 307
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 309
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 309
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 309
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 309
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 309
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 310
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 30;
lights.gotoAndPlay("show");
stop();
Frame 316
delete engine;
engine = new Object.ACK.eventEngine();
Instance of Symbol 224 MovieClip in Frame 318
onClipEvent (load) {
this.zoneID = 1;
}
Instance of Symbol 224 MovieClip in Frame 318
onClipEvent (load) {
this.zoneID = 0;
}
Instance of Symbol 224 MovieClip in Frame 318
onClipEvent (load) {
this.zoneID = 3;
}
Instance of Symbol 224 MovieClip in Frame 318
onClipEvent (load) {
this.zoneID = 2;
}
Instance of Symbol 283 MovieClip "carMC" in Frame 318
onClipEvent (load) {
_root.base.car.init(this);
}
onClipEvent (unload) {
_root.base.car.remove();
}
Frame 319
_root.base.isRaceOver = true;
numOfLaps = 3;
timeToBeat = 100;
lights.gotoAndPlay("30");
stop();
Symbol 14 MovieClip Frame 1
stop();
Symbol 14 MovieClip Frame 6
stop();
Symbol 14 MovieClip Frame 13
stop();
Symbol 41 Button
on (release) {
gotoAndPlay ("name");
}
Symbol 42 Button
on (release) {
gotoAndPlay ("instructions");
}
Symbol 43 Button
on (release) {
unlockAllTracks();
}
Symbol 101 Button
on (release) {
if (1 < playerName_str.length) {
play();
}
}
Symbol 106 Button
on (release) {
_root.base.selectedTrack = whichTrack;
_parent.gotoAndPlay("trackInfo");
}
Symbol 121 MovieClip Frame 1
if (_root.base.unlockedTracks[whichTrack] == true) {
thumb.gotoAndStop(whichTrack);
stop();
} else {
this.unlocked = false;
this._alpha = 30;
thumb.gotoAndStop("locked");
this.play();
}
Symbol 121 MovieClip Frame 2
stop();
Symbol 133 MovieClip Frame 1
function loadScores(track, difficulty) {
trace((("Loading Course " + track) + " ") + difficulty);
thisMC.gotoAndStop("loading");
this.load((((("/gameHighScores.xml.asp?nocache=" + getTimer()) + "&game=thump_track") + _root.base.selectedTrack) + "_") + _root.base.difficulty);
}
thisMC = this;
scores_xml = new XML();
scores_xml.ignoreWhite = true;
scores_xml.onload = function () {
var j = 0;
while (j < this.firstChild.childNodes.length) {
var theNode = this.firstChild.childNodes[j];
if (theNode.nodeName == "month") {
var k = 0;
while (k < 5) {
if (theNode.childNodes[k]) {
trace((theNode.childNodes[k].attributes.name + " ") + theNode.childNodes[k].attributes.score);
thisMC["entry" + k].time = parseFloat(Math.abs(theNode.childNodes[k].attributes.score) / 10).formatTime();
thisMC["entry" + k].name = theNode.childNodes[k].attributes.name;
thisMC["entry" + k].schoolName = theNode.childNodes[k].attributes.school;
} else {
thisMC["entry" + k].time = "";
thisMC["entry" + k].name = "";
thisMC["entry" + k].schoolName = "";
}
k++;
}
}
j++;
}
thisMC.gotoAndPlay("loaded");
};
scores_xml.loadScores = loadScores;
Symbol 133 MovieClip Frame 2
stop();
Symbol 133 MovieClip Frame 12
stop();
Symbol 139 Button
on (release) {
gotoAndPlay ("hard");
}
Symbol 141 Button
on (release) {
gotoAndPlay ("easy");
}
Symbol 142 MovieClip Frame 1
_root.base.difficulty = "easy";
_parent.bestTimes.scores_xml.loadScores(_root.base.selectedTrack, _root.base.difficulty);
Symbol 142 MovieClip Frame 2
stop();
Symbol 142 MovieClip Frame 5
_root.base.difficulty = "hard";
_parent.bestTimes.scores_xml.loadScores(_root.base.selectedTrack, _root.base.difficulty);
Symbol 142 MovieClip Frame 6
stop();
Symbol 144 Button
on (release) {
trackLabel = "track" + _root.base.selectedTrack;
if (_root.base.difficulty == "hard") {
trackLabel = trackLabel + "hard";
}
_root._quality = "MEDIUM";
gotoAndPlay(trackLabel);
}
Symbol 171 MovieClip Frame 1
timeToBeat = _root.base.timeToBeat.formatTime();
Symbol 194 Button
on (release) {
_parent.gotoAndPlay("trackSelect");
}
Symbol 201 Button
on (release) {
trackLabel = "track" + _root.base.selectedTrack;
if (_root.base.difficulty == "hard") {
trackLabel = trackLabel + "hard";
}
_parent.gotoAndPlay(trackLabel);
_root.base.hideResults();
}
Symbol 207 MovieClip Frame 1
this._visible = false;
stop();
Symbol 207 MovieClip Frame 25
this._visible = true;
Symbol 207 MovieClip Frame 109
trace(_root.base.checkForQualify());
if (_root.base.checkForQualify()) {
gotoAndPlay ("win");
} else {
gotoAndPlay ("lose");
}
url = (((((((("/gameHighScores.asp?nocache=" + getTimer()) + "&name=") + _root.base.playerName_str) + "&score=") + int(-(sTime * 10))) + "&game=thump_track") + _root.base.selectedTrack) + "_") + _root.base.difficulty;
trace(url);
this.loadVariables(url);
Symbol 207 MovieClip Frame 110
_root.base.unlockNextTrack();
Symbol 207 MovieClip Frame 116
stop();
Symbol 207 MovieClip Frame 125
stop();
Symbol 207 MovieClip Frame 129
this._visible = true;
stop();
Symbol 219 MovieClip Frame 1
this._visible = false;
stop();
Symbol 219 MovieClip Frame 10
this._visible = true;
_root.base.timeToBeat_display = _root.base.timeToBeat.formatTime();
Symbol 219 MovieClip Frame 95
_root.base.beginRace(_parent.numOfLaps, _parent.timeToBeat);
Symbol 224 MovieClip Frame 1
function registerMe() {
_root.base.track.initZone(this);
}
this._visible = false;
_root.base.engine.addEventListener("initTrack", this, "registerMe");
Instance of Symbol 223 MovieClip in Symbol 224 MovieClip Frame 1
onClipEvent (load) {
this._xscale = 10000 / _parent._xscale;
this._yscale = 10000 / _parent._yscale;
}
Symbol 242 MovieClip Frame 1
function registerMe() {
_root.base.initCone(this);
}
_root.base.engine.addEventListener("initTrack", this, "registerMe");
randRot = (Math.random() * 360) - 180;
stop();
Instance of Symbol 228 MovieClip in Symbol 242 MovieClip Frame 1
onClipEvent (load) {
mc._rotation = _parent.randRot;
}
Symbol 242 MovieClip Frame 13
stop();
Symbol 242 MovieClip Frame 82
gotoAndPlay ("respawn");
Symbol 242 MovieClip Frame 163
gotoAndPlay ("respawn");
Symbol 242 MovieClip Frame 166
this._rotation = 0;
Symbol 242 MovieClip Frame 206
coneBase.mc._rotation = randRot;
Symbol 242 MovieClip Frame 219
_parent.initCone(this);
stop();
Symbol 245 MovieClip Frame 1
function registerMe() {
_root.base.initCollisionObj(this);
}
_root.base.engine.addEventListener("initTrack", this, "registerMe");
Symbol 289 MovieClip Frame 1
function registerMe() {
_root.base.initCollisionObj(this);
}
_root.base.engine.addEventListener("initTrack", this, "registerMe");