Section 1
//button_37 (bp_ultimate_racing_fla.button_37)
package bp_ultimate_racing_fla {
import flash.display.*;
public dynamic class button_37 extends MovieClip {
public function button_37(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package bp_ultimate_racing_fla
Section 2
//button_44 (bp_ultimate_racing_fla.button_44)
package bp_ultimate_racing_fla {
import flash.display.*;
public dynamic class button_44 extends MovieClip {
public function button_44(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package bp_ultimate_racing_fla
Section 3
//button_48 (bp_ultimate_racing_fla.button_48)
package bp_ultimate_racing_fla {
import flash.display.*;
public dynamic class button_48 extends MovieClip {
public function button_48(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package bp_ultimate_racing_fla
Section 4
//mc_13 (bp_ultimate_racing_fla.mc_13)
package bp_ultimate_racing_fla {
import flash.display.*;
public dynamic class mc_13 extends MovieClip {
public var hit:MovieClip;
}
}//package bp_ultimate_racing_fla
Section 5
//mc_14 (bp_ultimate_racing_fla.mc_14)
package bp_ultimate_racing_fla {
import flash.display.*;
public dynamic class mc_14 extends MovieClip {
public var hit:MovieClip;
}
}//package bp_ultimate_racing_fla
Section 6
//mc_15 (bp_ultimate_racing_fla.mc_15)
package bp_ultimate_racing_fla {
import flash.display.*;
public dynamic class mc_15 extends MovieClip {
public var camera:MovieClip;
public var dot:MovieClip;
}
}//package bp_ultimate_racing_fla
Section 7
//mc_17 (bp_ultimate_racing_fla.mc_17)
package bp_ultimate_racing_fla {
import flash.display.*;
import flash.text.*;
public dynamic class mc_17 extends MovieClip {
public var position:TextField;
public function mc_17(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package bp_ultimate_racing_fla
Section 8
//mc_2 (bp_ultimate_racing_fla.mc_2)
package bp_ultimate_racing_fla {
import flash.display.*;
import flash.text.*;
public dynamic class mc_2 extends MovieClip {
public var progress_txt:TextField;
public var progress_track:MovieClip;
}
}//package bp_ultimate_racing_fla
Section 9
//mc_20 (bp_ultimate_racing_fla.mc_20)
package bp_ultimate_racing_fla {
import flash.display.*;
public dynamic class mc_20 extends MovieClip {
public var green:MovieClip;
public var red:MovieClip;
}
}//package bp_ultimate_racing_fla
Section 10
//mc_28 (bp_ultimate_racing_fla.mc_28)
package bp_ultimate_racing_fla {
import flash.display.*;
public dynamic class mc_28 extends MovieClip {
public function mc_28(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package bp_ultimate_racing_fla
Section 11
//mc_31 (bp_ultimate_racing_fla.mc_31)
package bp_ultimate_racing_fla {
import flash.display.*;
public dynamic class mc_31 extends MovieClip {
public var mini:MovieClip;
}
}//package bp_ultimate_racing_fla
Section 12
//mc_39 (bp_ultimate_racing_fla.mc_39)
package bp_ultimate_racing_fla {
import flash.display.*;
public dynamic class mc_39 extends MovieClip {
public var s3_mc:MovieClip;
public var s10_mc:MovieClip;
public var s6_mc:MovieClip;
public var s1_mc:MovieClip;
public var s9_mc:MovieClip;
public var s4_mc:MovieClip;
public var s7_mc:MovieClip;
public var s2_mc:MovieClip;
public var sE_mc:MovieClip;
public var s5_mc:MovieClip;
public var s8_mc:MovieClip;
}
}//package bp_ultimate_racing_fla
Section 13
//mc_40 (bp_ultimate_racing_fla.mc_40)
package bp_ultimate_racing_fla {
import flash.display.*;
import flash.text.*;
public dynamic class mc_40 extends MovieClip {
public var num_txt:TextField;
public var score_txt:TextField;
public var name_txt:TextField;
public var bg_mc:MovieClip;
}
}//package bp_ultimate_racing_fla
Section 14
//mc_45 (bp_ultimate_racing_fla.mc_45)
package bp_ultimate_racing_fla {
import flash.display.*;
import flash.text.*;
public dynamic class mc_45 extends MovieClip {
public var time2_txt:TextField;
public var race_time_txt:TextField;
public var time1_txt:TextField;
public var time3_txt:TextField;
}
}//package bp_ultimate_racing_fla
Section 15
//mc_46 (bp_ultimate_racing_fla.mc_46)
package bp_ultimate_racing_fla {
import flash.display.*;
import flash.text.*;
public dynamic class mc_46 extends MovieClip {
public var email_txt:TextField;
public var error_txt:TextField;
public var name_txt:TextField;
}
}//package bp_ultimate_racing_fla
Section 16
//mc_72 (bp_ultimate_racing_fla.mc_72)
package bp_ultimate_racing_fla {
import flash.display.*;
public dynamic class mc_72 extends MovieClip {
public var pos:MovieClip;
}
}//package bp_ultimate_racing_fla
Section 17
//mc_74 (bp_ultimate_racing_fla.mc_74)
package bp_ultimate_racing_fla {
import flash.display.*;
public dynamic class mc_74 extends MovieClip {
public var col0:MovieClip;
public var col1:MovieClip;
public var col3:MovieClip;
public var col5:MovieClip;
public var col2:MovieClip;
public var col4:MovieClip;
}
}//package bp_ultimate_racing_fla
Section 18
//mc_76 (bp_ultimate_racing_fla.mc_76)
package bp_ultimate_racing_fla {
import flash.display.*;
public dynamic class mc_76 extends MovieClip {
public var laps:MovieClip;
}
}//package bp_ultimate_racing_fla
Section 19
//MD5 (com.adobe.crypto.MD5)
package com.adobe.crypto {
import com.adobe.utils.*;
public class MD5 {
private static function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(f, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private static function createBlocks(_arg1:String):Array{
var _local2:Array;
var _local3:int;
var _local4:int;
var _local5:int;
_local2 = new Array();
_local3 = (_arg1.length * 8);
_local4 = 0xFF;
_local5 = 0;
while (_local5 < _local3) {
_local2[(_local5 >> 5)] = (_local2[(_local5 >> 5)] | ((_arg1.charCodeAt((_local5 / 8)) & _local4) << (_local5 % 32)));
_local5 = (_local5 + 8);
};
_local2[(_local3 >> 5)] = (_local2[(_local3 >> 5)] | (128 << (_local3 % 32)));
_local2[((((_local3 + 64) >>> 9) << 4) + 14)] = _local3;
return (_local2);
}
private static function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private static function f(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 & _arg2) | (~(_arg1) & _arg3)));
}
private static function g(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 & _arg3) | (_arg2 & ~(_arg3))));
}
private static function h(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 ^ _arg2) ^ _arg3));
}
private static function i(_arg1:int, _arg2:int, _arg3:int):int{
return ((_arg2 ^ (_arg1 | ~(_arg3))));
}
private static function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{
var _local9:int;
_local9 = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8);
return ((IntUtil.rol(_local9, _arg7) + _arg3));
}
private static function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
public static function hash(_arg1:String):String{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
var _local10:Array;
var _local11:int;
var _local12:int;
_local2 = 1732584193;
_local3 = -271733879;
_local4 = -1732584194;
_local5 = 271733878;
_local10 = createBlocks(_arg1);
_local11 = _local10.length;
_local12 = 0;
while (_local12 < _local11) {
_local6 = _local2;
_local7 = _local3;
_local8 = _local4;
_local9 = _local5;
_local2 = ff(_local2, _local3, _local4, _local5, _local10[(_local12 + 0)], 7, -680876936);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[(_local12 + 1)], 12, -389564586);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[(_local12 + 2)], 17, 606105819);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[(_local12 + 3)], 22, -1044525330);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[(_local12 + 4)], 7, -176418897);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[(_local12 + 5)], 12, 1200080426);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[(_local12 + 6)], 17, -1473231341);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[(_local12 + 7)], 22, -45705983);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[(_local12 + 8)], 7, 1770035416);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[(_local12 + 9)], 12, -1958414417);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[(_local12 + 10)], 17, -42063);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[(_local12 + 11)], 22, -1990404162);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[(_local12 + 12)], 7, 1804603682);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[(_local12 + 13)], 12, -40341101);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[(_local12 + 14)], 17, -1502002290);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[(_local12 + 15)], 22, 1236535329);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[(_local12 + 1)], 5, -165796510);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[(_local12 + 6)], 9, -1069501632);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[(_local12 + 11)], 14, 643717713);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[(_local12 + 0)], 20, -373897302);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[(_local12 + 5)], 5, -701558691);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[(_local12 + 10)], 9, 38016083);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[(_local12 + 15)], 14, -660478335);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[(_local12 + 4)], 20, -405537848);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[(_local12 + 9)], 5, 568446438);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[(_local12 + 14)], 9, -1019803690);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[(_local12 + 3)], 14, -187363961);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[(_local12 + 8)], 20, 1163531501);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[(_local12 + 13)], 5, -1444681467);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[(_local12 + 2)], 9, -51403784);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[(_local12 + 7)], 14, 1735328473);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[(_local12 + 12)], 20, -1926607734);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[(_local12 + 5)], 4, -378558);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[(_local12 + 8)], 11, -2022574463);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[(_local12 + 11)], 16, 1839030562);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[(_local12 + 14)], 23, -35309556);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[(_local12 + 1)], 4, -1530992060);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[(_local12 + 4)], 11, 1272893353);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[(_local12 + 7)], 16, -155497632);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[(_local12 + 10)], 23, -1094730640);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[(_local12 + 13)], 4, 681279174);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[(_local12 + 0)], 11, -358537222);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[(_local12 + 3)], 16, -722521979);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[(_local12 + 6)], 23, 76029189);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[(_local12 + 9)], 4, -640364487);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[(_local12 + 12)], 11, -421815835);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[(_local12 + 15)], 16, 530742520);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[(_local12 + 2)], 23, -995338651);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[(_local12 + 0)], 6, -198630844);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[(_local12 + 7)], 10, 1126891415);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[(_local12 + 14)], 15, -1416354905);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[(_local12 + 5)], 21, -57434055);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[(_local12 + 12)], 6, 1700485571);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[(_local12 + 3)], 10, -1894986606);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[(_local12 + 10)], 15, -1051523);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[(_local12 + 1)], 21, -2054922799);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[(_local12 + 8)], 6, 1873313359);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[(_local12 + 15)], 10, -30611744);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[(_local12 + 6)], 15, -1560198380);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[(_local12 + 13)], 21, 1309151649);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[(_local12 + 4)], 6, -145523070);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[(_local12 + 11)], 10, -1120210379);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[(_local12 + 2)], 15, 718787259);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[(_local12 + 9)], 21, -343485551);
_local2 = (_local2 + _local6);
_local3 = (_local3 + _local7);
_local4 = (_local4 + _local8);
_local5 = (_local5 + _local9);
_local12 = (_local12 + 16);
};
return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5)));
}
private static function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
}
}//package com.adobe.crypto
Section 20
//IntUtil (com.adobe.utils.IntUtil)
package com.adobe.utils {
public class IntUtil {
private static var hexChars:String = "0123456789abcdef";
public static function toHex(_arg1:int, _arg2:Boolean=false):String{
var _local3:String;
var _local4:int;
var _local5:int;
_local3 = "";
if (_arg2){
_local4 = 0;
while (_local4 < 4) {
_local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15))));
_local4++;
};
} else {
_local5 = 0;
while (_local5 < 4) {
_local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15))));
_local5++;
};
};
return (_local3);
}
public static function ror(_arg1:int, _arg2:int):uint{
var _local3:int;
_local3 = (32 - _arg2);
return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3))));
}
public static function rol(_arg1:int, _arg2:int):int{
return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2))));
}
}
}//package com.adobe.utils
Section 21
//Car (com.playerthree.m7.Car)
package com.playerthree.m7 {
import flash.display.*;
import flash.filters.*;
public class Car {
private const SLOW:Number = 0.8;
private const SKID_MULTIPLIER:Number = 0.45;
private const SKID_STOP:int = 1;
private const _angleInc:Number = 0.008;
public const SKID:Number = 0.3;
private const SKID_START:int = 3;
private var speeds:Array;
private var trackSeg:BitmapData;
public var skidStop:Number;
public var bestLap:Number;
private var race_sound:RaceSound;
public var lastLap:Number;
public var position:int;// = 7
public var averageSpeed:Number;
public var engineSoundPosition:int;// = 0
public var laps:Array;
public var diffSpeed:Number;
private var timer:int;// = 0
public var dirAngle:Number;
public var speed:Number;
public var rotAccel:Number;
private var canvas:Sprite;
private var oldSpeed:Number;
private var h:Number;
private var steering:Boolean;// = false
private var abs:Function;
public var currLapTime:Number;
private var w:Number;
public var save_friction:Number;// = 0.3
private var blitSpr:Sprite;
public var ty:Number;
public var tx:Number;
public var skidMulti:Number;
public var timeWp:Number;// = 0
private var deg2rad:Number;
public var currWp:int;
public var skidStart:Number;
public var rotSpeed:Number;
public var last_position:int;// = 7
public var perpForce:Number;
public var vx:Number;
public var vy:Number;
public var accelInc:Number;// = 1
public var rot:Number;
private var canvasBlur:BlurFilter;
public var sinRot:Number;
public var oy:Number;
public var accel:Number;
public var ox:Number;
public var skidding:Boolean;
public var cosRot:Number;
private var engineSound:int;// = -1
private var skidShape:Shape;
public var friction:Number;
private var firstrun:Boolean;// = true
public function Car(_arg1:Sprite, _arg2:RaceSound){
save_friction = SKID;
speeds = new Array();
timeWp = 0;
steering = false;
laps = [];
accelInc = 1;
engineSound = -1;
engineSoundPosition = 0;
timer = 0;
firstrun = true;
position = 7;
last_position = 7;
super();
this.canvas = _arg1;
this.race_sound = _arg2;
init();
}
private function init():void{
deg2rad = (Math.PI / 180);
abs = Math.abs;
speed = (accel = 0);
vx = (vy = (tx = (ty = 0)));
rot = 0;
rotAccel = (rotSpeed = 0);
diffSpeed = (oldSpeed = 0);
skidStart = SKID_START;
skidStop = SKID_STOP;
skidding = false;
skidMulti = SKID_MULTIPLIER;
friction = SKID;
blitSpr = new Sprite();
skidShape = new Shape();
canvas.addChild(skidShape);
canvasBlur = new BlurFilter(4, 4, 1);
canvas.filters = [canvasBlur];
currWp = 0;
currLapTime = (bestLap = (lastLap = 0));
h = 32;
w = 16;
}
public function setRot(_arg1:Number):void{
rot = _arg1;
}
public function decelerate():void{
accel = -(accelInc);
}
public function resetToTrack(_arg1:Node, _arg2:Node):void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
ox = (tx = (_arg1.tx * -1));
ox = (ty = (_arg1.ty * -1));
_local4 = (_arg2.tx - tx);
_local5 = (_arg2.ty - ty);
_local3 = ((Math.atan2(_local5, _local4) * 180) / Math.PI);
rot = (_arg1.rot * -1);
rot = (rot + 180);
vx = 0;
vy = 0;
rotSpeed = 0;
}
private function draw(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:Number;
_local4 = (_arg3 * 0.25);
canvas.graphics.beginFill(0, ((Math.random() * _arg3) * 0.01));
canvas.graphics.drawCircle((_arg1 * -1), (_arg2 * -1), _local4);
canvas.graphics.endFill();
trackSeg.draw(canvas);
canvas.graphics.clear();
}
private function stopskid():void{
friction = (SKID * skidMulti);
skidding = true;
}
public function slow_friction():void{
save_friction = friction;
friction = SLOW;
}
public function steerLeft(_arg1):void{
rotAccel = ((rotAccel)>-2) ? (rotAccel - (_angleInc * _arg1)) : -2;
steering = true;
}
public function noSteer():void{
steering = false;
}
public function react(_arg1:Boolean=false):void{
var _local2:Number;
var _local3:Number;
var _local4:int;
var _local5:int;
var _local6:Number;
var _local7:Number;
if (!_arg1){
_local2 = (vx * -1);
_local3 = (vy * -1);
_local4 = 1;
_local5 = 1;
if (_local2 < 0){
_local4 = -1;
};
if (_local3 < 0){
_local5 = -1;
};
_local6 = Math.abs(_local2);
_local7 = Math.abs(_local3);
if (_local6 < 0.6){
_local2 = (0.6 * _local4);
};
if (_local7 < 0.6){
_local3 = (0.6 * _local5);
};
if (_local6 > 10){
_local2 = 10;
};
if (_local7 > 10){
_local2 = 10;
};
accel = 0;
vx = _local2;
vy = _local3;
tx = (ox + vx);
ty = (oy + vy);
} else {
vx = (vx * 0.1);
vy = (vy * 0.1);
};
}
public function startpos(_arg1:Number, _arg2:Number):void{
ox = (tx = _arg1);
ox = (ty = _arg2);
}
public function drawskid(_arg1:Number, _arg2:Number):void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
_local3 = ((sinRot * h) * 0.75);
_local4 = ((-(cosRot) * h) * 0.75);
_local5 = ((cosRot * w) * 0.6);
_local6 = ((sinRot * w) * 0.6);
_local9 = speed;
_local7 = ((_arg1 + _local3) + _local5);
_local8 = ((_arg2 + _local4) + _local6);
draw(_local7, _local8, _local9);
_local7 = ((_arg1 + _local3) - _local5);
_local8 = ((_arg2 + _local4) - _local6);
draw(_local7, _local8, _local9);
_local7 = ((_arg1 - _local3) + _local5);
_local8 = ((_arg2 - _local4) + _local6);
draw(_local7, _local8, _local9);
_local7 = ((_arg1 - _local3) - _local5);
_local8 = ((_arg2 - _local4) - _local6);
draw(_local7, _local8, _local9);
}
public function update():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
timer++;
sinRot = Math.sin((rot * deg2rad));
cosRot = Math.cos((rot * deg2rad));
_local1 = sinRot;
_local2 = cosRot;
perpForce = ((-(_local2) * vx) + (_local1 * vy));
if (!skidding){
_local5 = abs(perpForce);
if (_local5 > skidStart){
if (_local5 > (skidStart + 0.1)){
race_sound.playSound(MSounds.SKID_SHORT);
};
stopskid();
};
} else {
drawskid(tx, ty);
if (abs(perpForce) < skidStop){
startskid();
};
};
_local3 = (-(_local2) * perpForce);
_local4 = (_local1 * perpForce);
vx = (vx - (_local3 * friction));
vy = (vy - (_local4 * friction));
vx = (vx + ((accel * _local1) * friction));
vy = (vy + ((accel * _local2) * friction));
dirAngle = ((Math.atan2(-(ty), tx) * Math.PI) / 2);
speed = Math.sqrt(((vx * vx) + (vy * vy)));
rotSpeed = (rotSpeed + (rotAccel * (speed / 11)));
diffSpeed = (speed - oldSpeed);
speeds.push(diffSpeed);
if (!(timer % 12)){
averageSpeed = (((speeds[0] + speeds[4]) + speeds[8]) / 3);
speeds = [];
};
rot = (rot + rotSpeed);
ox = tx;
oy = ty;
tx = (tx + vx);
ty = (ty + vy);
if (!RaceSound.MUTE){
if (firstrun){
race_sound.playEngineSound(MSounds.TICK_OVER, true);
engineSound = MSounds.TICK_OVER;
firstrun = false;
};
if (averageSpeed > 0){
if (engineSound == MSounds.TICK_OVER){
race_sound.stopEngineSound(engineSound);
};
if (engineSound != MSounds.ACCEL){
if (engineSound == MSounds.DECEL){
race_sound.stopEngineSound(MSounds.DECEL);
};
if (engineSound == MSounds.DECEL_HIGH){
race_sound.stopEngineSound(MSounds.DECEL_HIGH);
};
if (engineSound == MSounds.DECEL_MID){
race_sound.stopEngineSound(MSounds.DECEL_MID);
};
race_sound.playEngineSound(MSounds.ACCEL, false, engineSoundPosition);
engineSound = MSounds.ACCEL;
};
} else {
if (engineSound == MSounds.ACCEL){
engineSoundPosition = race_sound.stopEngineSound(engineSound);
if (engineSoundPosition > 3500){
race_sound.playEngineSound(MSounds.DECEL_HIGH);
engineSound = MSounds.DECEL_HIGH;
} else {
if (engineSoundPosition > 2200){
race_sound.playEngineSound(MSounds.DECEL_MID);
engineSound = MSounds.DECEL_MID;
} else {
race_sound.playEngineSound(MSounds.DECEL);
engineSound = MSounds.DECEL;
};
};
};
};
if (engineSoundPosition > 0){
engineSoundPosition = (engineSoundPosition - 100);
} else {
engineSoundPosition = 0;
};
};
accel = 0;
if (!steering){
rotAccel = 0;
};
vx = (vx - ((vx * 0.05) * friction));
vy = (vy - ((vy * 0.05) * friction));
rotSpeed = (rotSpeed * (0.4 * (1 - friction)));
oldSpeed = speed;
}
public function steerRight(_arg1):void{
rotAccel = ((rotAccel)<2) ? (rotAccel + (_angleInc * _arg1)) : 2;
steering = true;
}
public function updateSeg(_arg1:BitmapData):void{
this.trackSeg = _arg1;
}
private function startskid():void{
friction = SKID;
skidding = false;
}
public function accelerate():void{
accel = accelInc;
}
public function reset_friction():void{
friction = SKID;
}
public function get BestRace():int{
return (((laps[0] + laps[1]) + laps[2]));
}
}
}//package com.playerthree.m7
Section 22
//Dot (com.playerthree.m7.Dot)
package com.playerthree.m7 {
import flash.display.*;
public class Dot {
private const CHAR_HEIGHT:int = -10;
public var mc:MovieClip;
public var num:MovieClip;
public function Dot(_arg1:Boolean=false){
init(_arg1);
}
private function init(_arg1:Boolean):void{
if (_arg1){
mc = MovieClip(new GreenDot());
} else {
mc = MovieClip(new RedDot());
};
num = mc.num.mini;
}
public function update(_arg1:int):void{
num.y = ((_arg1 - 1) * CHAR_HEIGHT);
}
}
}//package com.playerthree.m7
Section 23
//Game (com.playerthree.m7.Game)
package com.playerthree.m7 {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.ui.*;
public class Game extends MovieClip {
public var send_to_friend:MovieClip;
public var curr_lap:MovieClip;
public var sound_btn:MovieClip;
public var progress:MovieClip;
public var submit:SubmitScore;
public var send_friend:SendToFriend;
public var return_menu:MovieClip;
public var highscores:HiScores;
public var best_race:MovieClip;
public var wrong_way:WrongWay;
public var bp_link:MovieClip;
public var lap_counter:MovieClip;
public var quit:MovieClip;
private var race_sound:RaceSound;
public var grid:MovieClip;
public var leaderboard:MovieClip;
public var last_lap:MovieClip;
public var position_indicator:MovieClip;
public var start_race:MovieClip;
private var _main:Main;
public var controls:MovieClip;
private var context_menu:ContextMenu;
public function Game(){
init();
init_menu();
}
private function go_bp(_arg1:MouseEvent=null):void{
var _local2:URLRequest;
_local2 = new URLRequest("http://www.bp.com/modularhome.do?categoryId=6620&contentId=7009602");
navigateToURL(_local2, "_blank");
}
private function show_send_friend(_arg1:MouseEvent):void{
this.send_friend.show();
}
private function init():void{
stop();
addFrameScript(58, initGame);
addFrameScript(22, mainMenu);
addFrameScript(36, controlScreen);
addFrameScript(8, firstRun);
loaderInfo.addEventListener(ProgressEvent.PROGRESS, trackProgress);
loaderInfo.addEventListener(Event.COMPLETE, loadComplete);
}
private function initGame():void{
var _local1:TrackLaps;
stop();
RaceSound.MENU = false;
stage.quality = StageQuality.LOW;
this.quit.addEventListener(MouseEvent.MOUSE_UP, quit_game);
this.quit.buttonMode = true;
_local1 = new TrackLaps(this.best_race, this.curr_lap, this.last_lap, this.position_indicator, this.lap_counter);
_main = new Main(_local1, this.grid, race_sound, this.submit, this, this.wrong_way);
addEventListener(Event.ENTER_FRAME, _main.tick);
stage.addEventListener(KeyboardEvent.KEY_DOWN, _main.keys.onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, _main.keys.onKeyUp);
addChild(_main);
setChildIndex(_main, 0);
}
private function bpMenuSelect(_arg1:ContextMenuEvent):void{
go_bp();
}
private function init_menu():void{
var _local1:String;
var _local2:ContextMenuItem;
var _local3:String;
var _local4:ContextMenuItem;
context_menu = new ContextMenu();
context_menu.hideBuiltInItems();
_local1 = "©2008 BP Ultimate";
_local2 = new ContextMenuItem(_local1);
_local2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, bpMenuSelect);
_local3 = "Game developed by Playerthree.com";
_local4 = new ContextMenuItem(_local3);
_local4.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuSelect);
context_menu.customItems.push(_local2);
context_menu.customItems.push(_local4);
context_menu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler);
this.contextMenu = context_menu;
}
private function controlScreen():void{
stop();
this.return_menu.addEventListener(MouseEvent.MOUSE_UP, returnToMenu);
this.return_menu.buttonMode = true;
}
private function loadComplete(_arg1:Event):void{
loaderInfo.removeEventListener(ProgressEvent.PROGRESS, trackProgress);
loaderInfo.removeEventListener(Event.COMPLETE, loadComplete);
play();
}
private function toggle_sound(_arg1:MouseEvent):void{
RaceSound.toggle_sound();
if (this.sound_btn.currentFrame == 2){
this.sound_btn.gotoAndStop(1);
race_sound.stopAll();
} else {
this.sound_btn.gotoAndStop(2);
if (RaceSound.MENU){
race_sound.playSound(MSounds.MENU_LOOP, true);
} else {
race_sound.playSound(MSounds.AMBIENCE, true);
};
};
}
private function play_rollover(_arg1:MouseEvent):void{
race_sound.playSound(MSounds.ROLL_OVER);
}
private function trackProgress(_arg1:ProgressEvent):void{
var _local2:Number;
_local2 = Math.ceil(((loaderInfo.bytesLoaded / loaderInfo.bytesTotal) * 100));
this.progress.progress_txt.text = (("" + _local2) + "%");
this.progress.progress_track.gotoAndStop((_local2 + 1));
}
private function goToMenu():void{
gotoAndPlay("main");
addFrameScript(47, null);
}
private function menuSelectHandler(_arg1:ContextMenuEvent):void{
}
private function start(_arg1:MouseEvent):void{
gotoAndPlay(44);
race_sound.stopSound(MSounds.MENU_LOOP);
race_sound.playSound(MSounds.RACE_START);
if (Globals.hiscores.open){
Globals.hiscores.hide_scores();
};
}
private function firstRun():void{
race_sound = new RaceSound();
race_sound.playSound(MSounds.MENU_LOOP, true);
race_sound.playSound(MSounds.AMBIENCE, true);
race_sound.update(0);
this.sound_btn.gotoAndStop(2);
this.sound_btn.addEventListener(MouseEvent.MOUSE_UP, toggle_sound);
this.sound_btn.buttonMode = true;
this.bp_link.addEventListener(MouseEvent.MOUSE_UP, go_bp);
this.bp_link.buttonMode = true;
Globals.init();
Globals.hiscores = this.highscores;
this.send_friend.visible = false;
}
private function show_scores(_arg1:MouseEvent):void{
Globals.hiscores.show_scores();
}
private function update(_arg1:Event):void{
}
private function returnToMenu(_arg1:MouseEvent):void{
addFrameScript(47, goToMenu);
play();
this.return_menu.removeEventListener(MouseEvent.MOUSE_UP, returnToMenu);
}
private function mainMenu():void{
stop();
this.start_race.addEventListener(MouseEvent.MOUSE_UP, start);
this.start_race.addEventListener(MouseEvent.MOUSE_OVER, play_rollover);
this.start_race.buttonMode = true;
this.controls.addEventListener(MouseEvent.MOUSE_UP, showControls);
this.controls.addEventListener(MouseEvent.MOUSE_OVER, play_rollover);
this.controls.buttonMode = true;
this.leaderboard.addEventListener(MouseEvent.MOUSE_UP, show_scores);
this.leaderboard.addEventListener(MouseEvent.MOUSE_OVER, play_rollover);
this.leaderboard.buttonMode = true;
this.send_to_friend.addEventListener(MouseEvent.MOUSE_UP, show_send_friend);
this.send_to_friend.addEventListener(MouseEvent.MOUSE_OVER, play_rollover);
this.send_to_friend.buttonMode = true;
}
private function menuSelect(_arg1:ContextMenuEvent):void{
var _local2:URLRequest;
_local2 = new URLRequest("http://www.playerthree.net");
navigateToURL(_local2, "_blank");
}
private function showControls(_arg1:MouseEvent):void{
play();
this.controls.removeEventListener(MouseEvent.MOUSE_UP, showControls);
}
public function quit_game(_arg1:MouseEvent=null):void{
Globals.hiscores.outroComplete = null;
stage.quality = StageQuality.HIGH;
this.gotoAndPlay("main");
this.quit.removeEventListener(MouseEvent.MOUSE_UP, quit_game);
removeEventListener(Event.ENTER_FRAME, _main.tick);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, _main.keys.onKeyDown);
stage.removeEventListener(KeyboardEvent.KEY_UP, _main.keys.onKeyUp);
RaceSound.MENU = true;
race_sound.playSound(MSounds.MENU_LOOP, true);
_main.clear_bitmaps();
removeChild(_main);
_main = null;
this.grid.alpha = 1;
}
}
}//package com.playerthree.m7
Section 24
//Globals (com.playerthree.m7.Globals)
package com.playerthree.m7 {
import com.playerthree.util.*;
public class Globals {
public static var LAP_TIMES:Array = new Array();
public static var remoting:RemotingFunctions;
public static var RACE_TIME:int;
public static var gatewayURL:String = "http://bbc.threeserve.com/flashservices/gateway.php";
public static var hiscores:HiScores;
public static var RACE_TIME_FORMAT:String;
public static var playerid:int = -1;
public static function init():void{
remoting = new RemotingFunctions(gatewayURL);
}
}
}//package com.playerthree.m7
Section 25
//HiScores (com.playerthree.m7.HiScores)
package com.playerthree.m7 {
import flash.display.*;
import flash.events.*;
public class HiScores extends MovieClip {
public var outroComplete:Function;
public var open:Boolean;// = false
public var load_stage:int;// = 0
public var loading_mc:MovieClip;
public var close_btn:MovieClip;
public var introComplete:Function;
public var _game:Game;
public var list_mc:MovieClip;
public function HiScores(){
load_stage = 0;
open = false;
super();
addFrameScript(0, frame1, 20, frame21, 40, frame41);
}
public function get_position():void{
load_stage++;
Globals.remoting.getPosition(Globals.playerid, this.position_recieved);
}
private function get_scores():void{
load_stage++;
Globals.remoting.getScores(this.scores_recieved);
}
private function attempt_display():void{
if (load_stage != 0){
this.loading_mc.visible = false;
this.list_mc.visible = true;
};
}
private function show_scores_complete():void{
this.close_btn.addEventListener(MouseEvent.MOUSE_UP, hide_scores);
this.close_btn.buttonMode = true;
attempt_display();
}
public function blank_scores():void{
var _local1:String;
var _local2:MovieClip;
var _local3:Number;
_local3 = 0;
while (_local3 < 10) {
_local1 = (("s" + (_local3 + 1)) + "_mc");
_local2 = this.list_mc[_local1];
show_row(_local2, "", "", "");
_local3++;
};
_local1 = "sE_mc";
_local2 = this.list_mc[_local1];
show_row(_local2, "", "", "");
_local2.visible = false;
}
private function formatTime(_arg1:Number):String{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:String;
var _local6:String;
var _local7:String;
var _local8:String;
_local3 = Math.floor((_arg1 / 1000));
_local2 = Math.floor((_local3 / 60));
_local4 = Math.floor((_local2 / 60));
_local3 = (_local3 % 60);
_local2 = (_local2 % 60);
_local6 = ((_local2)<10) ? ("0" + _local2) : _local2.toString();
_local5 = ((_local3)<10) ? ("0" + _local3) : _local3.toString();
_local7 = ((_local4)<10) ? ("0" + _local4) : _local4.toString();
_local8 = ((((_local7 + ":") + _local6) + ":") + _local5);
return (_local8);
}
function frame21(){
if (this.introComplete != null){
this.introComplete();
};
stop();
}
private function show_row(_arg1:MovieClip, _arg2:String, _arg3:String, _arg4:String):void{
_arg1["num_txt"].text = _arg3;
_arg1["name_txt"].text = _arg2.toUpperCase();
_arg1["score_txt"].text = formatTime(Number(_arg4));
}
function frame1(){
stop();
}
function frame41(){
if (this.outroComplete != null){
this.outroComplete();
};
stop();
}
public function show_scores(_arg1:Game=null):void{
this._game = _arg1;
open = true;
get_scores();
blank_scores();
this.loading_mc.visible = true;
this.list_mc.visible = false;
this.introComplete = show_scores_complete;
this.gotoAndPlay("intro");
this.close_btn.addEventListener(MouseEvent.MOUSE_UP, hide_scores);
this.close_btn.buttonMode = true;
}
public function hide_scores(_arg1:MouseEvent=null):void{
if (RaceSound.MENU == false){
outroComplete = _game.quit_game;
_game = null;
};
this.gotoAndPlay("outro");
this.close_btn.removeEventListener(MouseEvent.MOUSE_UP, hide_scores);
open = false;
}
private function position_recieved(_arg1:Object=null):void{
var _local2:String;
var _local3:Number;
var _local4:String;
var _local5:String;
var _local6:MovieClip;
var _local7:Array;
load_stage--;
if (_arg1 == null){
} else {
_local7 = (_arg1 as Array);
_local2 = _arg1["name"];
_local3 = _arg1["score"];
_local4 = ("" + _local3);
_local5 = _arg1["rank_in_game"];
_local6 = this.list_mc["sE_mc"];
show_row(_local6, _local2, _local5, _local4);
_local6.visible = true;
};
attempt_display();
}
public function scores_recieved(_arg1:Object=null):void{
var _local2:String;
var _local3:Number;
var _local4:String;
var _local5:String;
var _local6:String;
var _local7:MovieClip;
var _local8:Array;
var _local9:Number;
var _local10:Number;
load_stage--;
if (_arg1 == null){
} else {
_local8 = (_arg1 as Array);
_local9 = Math.min(10, _local8.length);
_local10 = 0;
while (_local10 < 10) {
if (_local10 >= _local9){
_local2 = "";
_local5 = "";
_local4 = "";
} else {
_local2 = _local8[_local10][0];
_local3 = _local8[_local10][1];
_local4 = ("" + _local3);
_local5 = _local8[_local10][2];
};
_local6 = (("s" + (_local10 + 1)) + "_mc");
_local7 = this.list_mc[_local6];
show_row(_local7, _local2, _local5, _local4);
_local10++;
};
};
if (Globals.playerid != -1){
get_position();
} else {
attempt_display();
};
}
}
}//package com.playerthree.m7
Section 26
//Main (com.playerthree.m7.Main)
package com.playerthree.m7 {
import flash.display.*;
import flash.events.*;
import com.playerthree.util.*;
import com.playerthree.math.*;
import flash.utils.*;
import flash.geom.*;
public class Main extends Sprite {
private const SCREEN_WIDTH:int = 640;
private const MAP_Y:int = -3;
private const MAP_X:int = 12;
private const WORLD_SCALE:int = 50000;
private const WORLD_VIEW_DISTANCE:Number = 160000;
private const SCREEN_HEIGHT:int = 260;
private const MAP_SCALE:Number = 0.1;
private const TOTAL_LAPS:int = 3;
private const CAR_RAD:int = 12;
private const INIT_WAIT:int = 1000;
private const HALF_TRACK_WIDTH:int = 1440;
public var keys:KeyState;
private var pauseTime:Number;
private var _skyBox:SkyBox;
private var myMap:Map;
private var roadLayer:Sprite;
private var race_sound:RaceSound;
private var _mapHeight:Number;// = 2880
private var offsetX:Number;// = 0
private var submit:SubmitScore;
private var offsetY:Number;// = 160
private var _bmp2:BitmapData;
private var lights:Array;
private var f_timer:int;// = 0
private var _velocity:Number;// = 0.1
private var game_canvas:Sprite;
private var strips:Array;
private var _horizon:Number;// = 240
private var _horizonScale:Number;// = 20
private var wrong_init:int;// = 100
private var map_radar:MapRadar;
private var objectsLen:int;
private var positions:Array;
private var _oldTime:Number;
private var _worldScale:Number;
private var mapcontrol:Boolean;
private var oldZone:int;
private var myCar:Car;
private var waypoints:Array;
private var objects3d:Array;
private var wrongWayTimer:int;// = 0
private var gameTimer:Timer;
private var track_laps:TrackLaps;
private var minimapOffsetY:Number;// = 0
private var opponents:Array;
private var _bmp:BitmapData;
private var minimapOffsetX:Number;// = 0
private var interval:int;// = 50
public var _game:Game;
private var currWpIndex:int;// = 0
private var _nbScans:Number;
private var _angleX:Number;// = 20
private var _angleY:Number;// = 180
private var onSand:Boolean;
private var objects:Array;
private var offTrack:Boolean;
private var completedLaps:int;
private var _mapWidth:Number;// = 2880
private var _scanSteps:Number;
private var minimapHeight:Number;// = 250
private var objects3dLen:int;
private var _xcam:Number;
private var minimapWidth:Number;// = 250
private var offsetArrow:Number;// = 70
private var lights_on:int;// = 0
private var roadY:Number;
private var dot:MovieClip;
private var spacebar:Boolean;
private var out:Output;
private var objectLayer:Sprite;
private var offTrackSound:int;
private var grid:MovieClip;
private var _nbMs:Number;
private var wrong_way:WrongWay;
private var focalLen:int;// = 600
private var done_lights:Boolean;// = false
private var _currSeg:BitmapData;
private var race_over:Boolean;// = false
private var initial_wait:int;// = 1000
private var skidTimer:int;
private var _ycam:Number;// = 7.5
private var segments:Array;
private var _time:Number;
private var zone:int;
private var minimap:MovieClip;
private var _currSegIndex:int;
private var ambience_vol:Number;// = 0.1
private var averageX:Number;
private var averageY:Number;
private var _resoDx:Number;
private var _resoDy:Number;
private var displayObjects:Array;
private var _zcam:Number;
private var _angleIncrement:Number;// = 0.06
public function Main(_arg1:TrackLaps, _arg2:MovieClip, _arg3:RaceSound, _arg4:SubmitScore, _arg5:Game, _arg6:WrongWay){
var _local7:Sprite;
focalLen = 600;
_horizon = 240;
_horizonScale = 20;
_ycam = 7.5;
_angleX = 20;
_angleY = 180;
_mapWidth = 2880;
_mapHeight = 2880;
_angleIncrement = 0.06;
_velocity = 0.1;
offsetX = 0;
offsetY = 160;
minimapWidth = 250;
minimapHeight = 250;
minimapOffsetX = 0;
minimapOffsetY = 0;
objects = [];
objects3d = [];
displayObjects = [];
offsetArrow = 70;
waypoints = [];
currWpIndex = 0;
positions = new Array();
opponents = [];
f_timer = 0;
initial_wait = INIT_WAIT;
wrongWayTimer = 0;
lights = new Array();
lights_on = 0;
done_lights = false;
interval = 50;
race_over = false;
ambience_vol = 0.1;
wrong_init = 100;
super();
this.wrong_way = _arg6;
this.wrong_way.gotoAndStop(1);
this._game = _arg5;
this.submit = _arg4;
this.grid = _arg2;
this.track_laps = _arg1;
game_canvas = new Sprite();
this.race_sound = _arg3;
_arg3.playSound(MSounds.AMBIENCE, true);
_local7 = new Sprite();
spacebar = false;
mapcontrol = true;
offTrack = true;
onSand = false;
_nbMs = 1;
_oldTime = getTimer();
_resoDx = SCREEN_WIDTH;
_resoDy = SCREEN_HEIGHT;
_worldScale = WORLD_SCALE;
_bmp = new TrackSeg1(2880, 2880);
_bmp2 = new TrackSeg2(2880, 2880);
segments = [];
segments.push(_bmp, _bmp2);
_currSegIndex = 0;
_currSeg = segments[_currSegIndex];
keys = new KeyState();
myCar = new Car(_local7, _arg3);
myCar.startpos(-408, -1330);
myCar.updateSeg(_currSeg);
myCar.rot = 184;
pauseTime = getTimer();
completedLaps = 0;
_arg1.set_new_lap((completedLaps + 1));
roadY = 0;
_xcam = (_zcam = 0);
_nbScans = 0;
zone = (oldZone = 0);
strips = [];
roadLayer = new Sprite();
objectLayer = new Sprite();
roadLayer.x = (objectLayer.x = 0);
out = new Output();
_skyBox = new SkyBox();
initMode7(1);
game_canvas.addChild(_skyBox);
game_canvas.addChild(roadLayer);
game_canvas.addChild(objectLayer);
initMap(_local7);
game_canvas.addChild(map_radar.mc);
game_canvas.addChild(myMap);
addChild(game_canvas);
game_canvas.y = 80;
}
public function toggleSound():void{
if (RaceSound.MUTE){
race_sound.playSound(MSounds.AMBIENCE, true);
RaceSound.MUTE = false;
} else {
race_sound.stopAll();
RaceSound.MUTE = true;
};
}
private function trackLaps():void{
var _local1:Node;
var _local2:Node;
var _local3:Node;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Object;
var _local13:int;
var _local14:int;
var _local15:int;
var _local16:int;
if (race_over){
return;
};
if (initial_wait > 775){
return;
};
_local1 = waypoints[(myCar.currWp % waypoints.length)];
_local2 = waypoints[((myCar.currWp + 1) % waypoints.length)];
_local3 = waypoints[(((myCar.currWp - 1) + waypoints.length) % waypoints.length)];
_local4 = (_local1.tx - (myCar.tx * -1));
_local5 = (_local1.ty - (myCar.ty * -1));
_local6 = (_local2.tx - _local1.tx);
_local7 = (_local2.ty - _local1.ty);
_local8 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5)));
_local9 = ((_local4 * _local6) + (_local5 * _local7));
_local4 = (_local3.tx - (myCar.tx * -1));
_local5 = (_local3.ty - (myCar.ty * -1));
_local10 = ((_local4 * _local6) + (_local5 * _local7));
_local11 = ((pauseTime)!=0) ? (pauseTime - getTimer()) : getTimer();
f_timer++;
if (_local9 < 0){
myCar.currWp++;
myCar.timeWp = ((10000000 - getTimer()) * myCar.currWp);
if (!(myCar.currWp % waypoints.length)){
completedLaps++;
track_laps.set_new_lap((completedLaps + 1));
_local16 = int(((f_timer / 30) * 60000));
if ((((_local16 > myCar.bestLap)) || ((myCar.bestLap == 0)))){
myCar.bestLap = _local16;
};
myCar.lastLap = _local16;
myCar.laps[(completedLaps - 1)] = myCar.lastLap;
track_laps.set_last_lap(myCar.lastLap);
myCar.currLapTime = 0;
pauseTime = getTimer();
f_timer = 0;
if (completedLaps == TOTAL_LAPS){
track_laps.set_best_time(myCar.BestRace);
race_over = true;
Globals.LAP_TIMES[0] = formatTime(myCar.laps[0]);
Globals.LAP_TIMES[1] = formatTime(myCar.laps[1]);
Globals.LAP_TIMES[2] = formatTime(myCar.laps[2]);
Globals.RACE_TIME_FORMAT = formatTime(myCar.BestRace);
Globals.RACE_TIME = myCar.BestRace;
submit.show_submit(this);
stage.quality = StageQuality.HIGH;
};
};
};
_local12 = {};
_local12.name = "mycar";
_local12.time = myCar.timeWp;
positions = [];
positions.push(_local12);
_local13 = opponents.length;
while (--_local13 > -1) {
_local12 = {};
_local12.name = ("oppcar" + _local13);
_local12.index = _local13;
_local12.time = opponents[_local13].timeWp;
positions.push(_local12);
};
positions.sortOn("time", (Array.NUMERIC | Array.DESCENDING));
if (myCar.speed < 4){
if (ambience_vol < 0.5){
ambience_vol = (ambience_vol + 0.05);
};
} else {
if (ambience_vol > 0.1){
ambience_vol = (ambience_vol - 0.05);
};
};
race_sound.update(ambience_vol);
if (_local10 > 0){
if (wrong_init < 1){
wrongWayTimer++;
if (wrongWayTimer > 24){
wrong_way.play();
};
} else {
wrong_init--;
};
} else {
wrongWayTimer = 0;
wrong_way.gotoAndStop(1);
};
_local14 = int(((f_timer / 30) * 60000));
track_laps.update(_local14);
_local15 = positions.length;
while (--_local15 > -1) {
if (positions[_local15].name == "mycar"){
myMap.car.dot.position.text = (_local15 + 1).toString();
myCar.last_position = myCar.position;
myCar.position = (_local15 + 1);
if (myCar.last_position != myCar.position){
track_laps.set_new_pos(_local15);
};
} else {
opponents[positions[_local15].index].position = (_local15 + 1);
};
};
}
private function findPai(_arg1:Number):Number{
return (Math.tan(((_arg1 * Math.PI) / 180)));
}
private function initMap(_arg1:Sprite):void{
var _local2:int;
var _local3:DisplayObject;
var _local4:Object;
var _local5:Light;
var _local6:TrackLight;
var _local7:Blimp;
var _local8:Barrier;
var _local9:Banner;
var _local10:Arrow;
var _local11:Tyre;
var _local12:Number;
var _local13:String;
var _local14:Node;
var _local15:Object;
var _local16:OpponentCar;
var _local17:OppCar;
myMap = new Map();
map_radar = new MapRadar();
_local2 = myMap.numChildren;
while (--_local2 > -1) {
_local3 = myMap.getChildAt(_local2);
if (_local3.name.indexOf("lights") != -1){
_local4 = {};
_local5 = new Light();
_local4.mc = _local5;
_local4.tx = _local3.x;
_local4.ty = _local3.y;
_local4.mapmc = _local3;
_local4.mapmc.visible = false;
_local4.collidable = false;
objectLayer.addChild(_local5);
displayObjects.push(_local5);
objects.push(_local4);
_local6 = new TrackLight(_local5);
lights.push(_local6);
};
if (_local3.name.indexOf("blimp") != -1){
_local4 = {};
_local7 = new Blimp();
_local4.mc = _local7;
_local4.mc.hit.visible = false;
_local4.tx = _local3.x;
_local4.ty = _local3.y;
_local4.mapmc = _local3;
_local4.mapmc.visible = false;
_local4.collidable = false;
objectLayer.addChild(_local7);
displayObjects.push(_local7);
objects.push(_local4);
};
if (_local3.name.indexOf("barrier") != -1){
_local4 = {};
_local8 = new Barrier();
_local4.mc = _local8;
_local4.mc.hit.visible = false;
_local4.tx = _local3.x;
_local4.ty = _local3.y;
_local4.mapmc = _local3;
_local4.mapmc.visible = false;
_local4.collidable = true;
objectLayer.addChild(_local8);
displayObjects.push(_local8);
objects.push(_local4);
};
if (_local3.name.indexOf("banner") != -1){
_local4 = {};
_local9 = new Banner();
_local4.mc = _local9;
_local4.mc.hit.visible = false;
_local4.tx = _local3.x;
_local4.ty = _local3.y;
_local4.mapmc = _local3;
_local4.collidable = true;
objectLayer.addChild(_local9);
displayObjects.push(_local9);
objects.push(_local4);
};
if (_local3.name.indexOf("arrow") != -1){
_local4 = {};
_local10 = new Arrow();
_local4.mc = _local10;
_local4.mc.hit.visible = false;
_local4.tx = _local3.x;
_local4.ty = _local3.y;
_local4.mapmc = _local3;
_local4.mapmc.visible = false;
_local4.collidable = true;
objectLayer.addChild(_local10);
displayObjects.push(_local10);
objects.push(_local4);
};
if (_local3.name.indexOf("tyre") != -1){
_local4 = {};
_local11 = new Tyre();
_local4.mc = _local11;
_local4.mc.hit.visible = false;
_local4.tx = _local3.x;
_local4.ty = _local3.y;
_local4.mapmc = _local3;
_local4.collidable = true;
objectLayer.addChild(_local11);
displayObjects.push(_local11);
objects.push(_local4);
};
if ((((_local3.name.length < 4)) && (!((_local3.name.indexOf("n") == -1))))){
_local12 = _local3.name.indexOf("n");
_local13 = _local3.name.substr((_local12 + 1), 2);
_local3.visible = false;
_local14 = new Node(_local13, _local3.x, _local3.y, _local3.rotation);
waypoints.push(_local14);
};
if (_local3.name.indexOf("opp") != -1){
_local15 = {};
_local16 = new OpponentCar();
_local17 = new OppCar(new Sprite());
_local15.mc = _local16;
_local15.tx = _local3.x;
_local15.ty = _local3.y;
_local17.startpos(_local15.tx, _local15.ty);
_local17.rot = _local3.rotation;
opponents.push(_local17);
_local15.name = _local3.name;
_local15.ai = 1;
_local15.pai = findPai(_local15.ai);
_local15.rot = 0;
_local15.mapmc = _local3;
_local15.mapmc.visible = false;
objectLayer.addChild(_local16);
displayObjects.push(_local16);
objects3d.push(_local15);
map_radar.addDot();
};
};
objectsLen = objects.length;
objects3dLen = objects3d.length;
myMap.scaleX = (myMap.scaleY = MAP_SCALE);
myMap.visible = false;
myMap.addChild(_arg1);
}
private function opponent_ai():void{
var _local1:int;
var _local2:OppCar;
var _local3:Node;
var _local4:Node;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
if (race_over){
return;
};
if (initial_wait > 750){
initial_wait--;
};
if (!done_lights){
track_lights();
return;
};
averageX = 0;
averageY = 0;
_local1 = opponents.length;
while (--_local1 > -1) {
_local2 = opponents[_local1];
_local3 = waypoints[(_local2.currWp % waypoints.length)];
_local4 = waypoints[((_local2.currWp + 1) % waypoints.length)];
_local5 = (_local3.tx + (Math.random() * 5));
_local6 = (_local3.ty + (Math.random() * 5));
_local7 = _local4.tx;
_local8 = _local4.ty;
_local9 = (_local5 - _local2.tx);
_local10 = (_local6 - _local2.ty);
_local11 = (_local7 - _local5);
_local12 = (_local8 - _local6);
_local13 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10)));
_local14 = ((_local9 * _local11) + (_local10 * _local12));
if (_local14 < 0){
_local2.currWp++;
_local2.timeWp = ((10000000 - getTimer()) * _local2.currWp);
};
_local15 = ((Math.atan2(_local10, _local9) / Math.PI) * 180);
_local15 = (_local15 + 270);
_local15 = (_local15 % 360);
_local16 = MathX.niceMod((_local2.rot + 180), 360);
if (_local16 > _local15){
_local17 = (_local16 - _local15);
_local18 = (_local15 + (360 - _local15));
} else {
_local17 = (_local16 + (360 - _local15));
_local18 = (_local15 - _local16);
};
_local19 = (_local15 - _local16);
if (Math.abs((_local16 - _local15)) > 5){
if (_local17 <= _local18){
_local2.rotAccel = -2;
} else {
_local2.rotAccel = 2;
};
};
if (_local13 > 15){
_local2.accel = _local2.randAccel;
} else {
_local2.accel = -0.5;
};
_local2.update();
};
}
private function render3dObjects():void{
var _local1:Number;
var _local2:Number;
var _local3:*;
var _local4:*;
var _local5:Number;
var _local6:int;
var _local7:int;
var _local8:Object;
var _local9:Number;
var _local10:Number;
var _local11:OppCar;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:int;
_local3 = Math.sin;
_local4 = Math.cos;
_local5 = ((-(_angleY) * Math.PI) / 180);
_local6 = 160;
_local7 = objects3dLen;
while (--_local7 > -1) {
_local8 = objects3d[_local7];
_local11 = opponents[_local7];
_local8.tx = _local11.tx;
_local8.ty = _local11.ty;
_local8.rot = _local11.rot;
_local8.mapmc.x = _local8.tx;
_local8.mapmc.y = _local8.ty;
_local8.mapmc.rotation = _local8.rot;
_local9 = (_xcam + _local8.tx);
_local10 = (_zcam + _local8.ty);
_local1 = ((_local10 * _local3(_local5)) + (_local9 * _local4(_local5)));
_local2 = ((_local10 * _local4(_local5)) - (_local9 * _local3(_local5)));
if (_local2 < 0){
_local8.mc.visible = false;
} else {
_local8.mc.visible = true;
_local8.mc.y = ((focalLen * (_ycam / _local2)) + _local6);
_local12 = (_local8.mc.y - ((focalLen * (-5 / _local2)) + _local6));
_local8.mc.scaleX = (_local8.mc.scaleY = (_local12 / 100));
_local8.mc.x = ((focalLen * (_local1 / _local2)) + (_resoDx * 0.5));
_local13 = (_local8.rot * -1);
_local14 = (_local13 - _angleY);
_local14 = (_local14 - (_local1 / _local2));
_local14 = (_local14 + 180);
_local14 = (_local14 % 360);
if (_local14 < 0){
_local14 = (_local14 + 360);
};
_local14 = (_local14 / 5.625);
_local15 = (Math.round((_local14 / _local8.ai)) + 1);
_local8.mc.clip.gotoAndStop(_local15);
};
};
}
private function renderObjects():void{
var _local1:Number;
var _local2:Number;
var _local3:*;
var _local4:*;
var _local5:Number;
var _local6:int;
var _local7:int;
var _local8:Object;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:DisplayObject;
var _local13:MovieClip;
var _local14:MovieClip;
_local3 = Math.sin;
_local4 = Math.cos;
_local5 = ((-(_angleY) * Math.PI) / 180);
_local6 = 160;
_local7 = objectsLen;
while (--_local7 > -1) {
_local8 = objects[_local7];
_local9 = (_xcam + _local8.tx);
_local10 = (_zcam + _local8.ty);
_local1 = ((_local10 * _local3(_local5)) + (_local9 * _local4(_local5)));
_local2 = ((_local10 * _local4(_local5)) - (_local9 * _local3(_local5)));
if (_local2 < 0){
_local8.mc.visible = false;
} else {
_local8.mc.visible = true;
_local8.mc.y = ((focalLen * (_ycam / _local2)) + _local6);
_local11 = (_local8.mc.y - ((focalLen * (-5 / _local2)) + _local6));
_local8.mc.scaleX = (_local8.mc.scaleY = (_local11 / 100));
_local8.mc.x = ((focalLen * (_local1 / _local2)) + (_resoDx * 0.5));
};
};
_local7 = displayObjects.length;
while (--_local7 > -1) {
_local12 = displayObjects[_local7];
_local13 = MovieClip(objectLayer.getChildAt(_local7));
_local14 = MovieClip(displayObjects[_local7]);
if (_local13 != _local14){
objectLayer.setChildIndex(_local14, _local7);
};
};
displayObjects.sortOn("y", Array.NUMERIC);
}
private function updateCam():void{
if (!mapcontrol){
myMap.car.x = (_xcam * -1);
myMap.car.y = (_zcam * -1);
} else {
myMap.car.x = (myCar.tx * -1);
myMap.car.y = (myCar.ty * -1);
_xcam = (myMap.car.x * -1);
_zcam = (myMap.car.y * -1);
_angleY = myCar.rot;
_angleY = (_angleY + 180);
_angleY = (_angleY % 360);
};
}
private function set360(_arg1:Number):Number{
_arg1 = (_arg1 % 360);
if (_arg1 < 0){
_arg1 = (_arg1 + 360);
};
return (_arg1);
}
private function effects():void{
if (race_over){
if (grid.alpha < 0.5){
if (grid.alpha == 0){
grid.alpha = 0.1;
};
grid.alpha = (grid.alpha * 1.2);
};
return;
};
if (grid.alpha > 0){
grid.alpha = (grid.alpha * 0.9);
if (grid.alpha < 0.005){
grid.alpha = 0;
};
};
if (offTrack){
roadY = ((Math.random() * 1) * myCar.speed);
};
if (myCar.diffSpeed < -0.1){
if (roadY > -12){
roadY = (roadY - 1.25);
};
};
roadY = (roadY * 0.9);
_skyBox.y = (objectLayer.y = (roadLayer.y = roadY));
_skyBox.x = (_skyBox.x - (myCar.rotSpeed * _nbMs));
_skyBox.x = (_skyBox.x % 969);
}
private function circCollide(_arg1:Number, _arg2:Number, _arg3:Number):int{
var _local4:int;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local4 = 0;
_local5 = ((_arg3 * _arg3) + (_arg3 * _arg3));
_local8 = (((myMap.car.x - _arg1) * (myMap.car.x - _arg1)) + ((myMap.car.y - _arg2) * (myMap.car.y - _arg2)));
_local8 = (_local8 - _local5);
if (_local8 < 0){
_local4 = 1;
};
return (_local4);
}
public function clear_bitmaps():void{
_bmp.dispose();
_bmp2.dispose();
segments = [];
_currSeg.dispose();
}
private function formatTime(_arg1:Number):String{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:String;
var _local6:String;
var _local7:String;
var _local8:String;
_local3 = Math.floor((_arg1 / 1000));
_local2 = Math.floor((_local3 / 60));
_local4 = Math.floor((_local2 / 60));
_local3 = (_local3 % 60);
_local2 = (_local2 % 60);
_local6 = ((_local2)<10) ? ("0" + _local2) : _local2.toString();
_local5 = ((_local3)<10) ? ("0" + _local3) : _local3.toString();
_local7 = ((_local4)<10) ? ("0" + _local4) : _local4.toString();
_local8 = ((((_local7 + ":") + _local6) + ":") + _local5);
return (_local8);
}
private function toggleMap():void{
if (myMap.visible){
myMap.visible = false;
} else {
myMap.visible = true;
};
}
private function collisions():void{
var _local1:Point;
var _local2:Number;
var _local3:int;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:MovieClip;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Node;
var _local15:Node;
var _local16:Boolean;
_local1 = new Point(myMap.car.x, myMap.car.y);
_local1 = myMap.localToGlobal(_local1);
if (myMap.track.hitTestPoint(_local1.x, _local1.y, true)){
if (offTrack){
myCar.reset_friction();
offTrack = false;
};
} else {
if (!offTrack){
if (skidTimer == 0){
if (myCar.speed > 5){
race_sound.playSound(MSounds.SKID_BUMP);
skidTimer = 30;
};
};
myCar.slow_friction();
offTrack = true;
};
};
if (skidTimer > 0){
skidTimer--;
};
if (myMap.sand.hitTestPoint(_local1.x, _local1.y, true)){
if (!onSand){
onSand = true;
};
} else {
if (onSand){
onSand = false;
};
};
_local2 = 0.9;
if (offTrack){
if (!onSand){
if ((((myCar.accelInc == 1)) || ((offTrackSound == MSounds.GRAVEL)))){
if (offTrackSound == MSounds.GRAVEL){
race_sound.stopSound(MSounds.GRAVEL);
};
race_sound.playSound(MSounds.RUMBLE, true);
offTrackSound = MSounds.RUMBLE;
};
} else {
if ((((myCar.accelInc == 1)) || ((offTrackSound == MSounds.RUMBLE)))){
if (offTrackSound == MSounds.RUMBLE){
race_sound.stopSound(MSounds.RUMBLE);
};
race_sound.playSound(MSounds.GRAVEL, true);
offTrackSound = MSounds.GRAVEL;
};
};
if (myCar.accelInc > 0.001){
myCar.accelInc = (myCar.accelInc * 0.9);
} else {
myCar.resetToTrack(waypoints[(myCar.currWp % waypoints.length)], waypoints[((myCar.currWp + 1) % waypoints.length)]);
offTrack = false;
};
} else {
if (myCar.accelInc != 1){
race_sound.stopSound(offTrackSound);
offTrackSound = -1;
myCar.accelInc = 1;
};
};
_local3 = objects.length;
while (--_local3 > -1) {
if (objects[_local3].collidable){
_local8 = objects[_local3].mapmc.hit;
if (_local8.hitTestPoint(_local1.x, _local1.y, true)){
myCar.react();
race_sound.playSound(MSounds.COLLIDE);
};
};
};
_local3 = objects3d.length;
while (--_local3 > -1) {
if (circCollide(objects3d[_local3].tx, objects3d[_local3].ty, CAR_RAD) == 1){
opponents[_local3].bounce(myCar);
_local10 = (objects3d[_local3].tx - myMap.car.x);
_local11 = (objects3d[_local3].tx - myMap.car.y);
_local14 = waypoints[(myCar.currWp % waypoints.length)];
_local15 = waypoints[((myCar.currWp + 1) % waypoints.length)];
_local12 = (_local15.tx - _local14.tx);
_local13 = (_local15.ty - _local14.ty);
_local9 = ((_local10 * _local12) + (_local11 * _local13));
_local16 = true;
if (_local9 < 0){
_local16 = false;
};
if (myCar.speed > 5){
race_sound.playSound(MSounds.COLLIDE_SKID);
} else {
race_sound.playSound(MSounds.COLLIDE);
};
myCar.react(true);
break;
};
};
_local5 = -100;
_local4 = -2750;
_local6 = -4055;
_local7 = -140;
if ((((((((myCar.ty > _local5)) || ((myCar.ty < _local4)))) || ((myCar.tx < _local6)))) || ((myCar.tx > _local7)))){
myCar.react();
};
}
private function track_lights():void{
var _local1:int;
if (lights_on == -2){
done_lights = true;
pauseTime = getTimer();
return;
};
if (initial_wait == (INIT_WAIT - interval)){
if (lights_on > -1){
lights[lights_on].change();
interval = (interval + 25);
if (lights_on < 4){
lights_on++;
} else {
interval = (interval + 50);
lights_on = -1;
};
} else {
_local1 = lights.length;
while (--_local1 > -1) {
lights[_local1].change();
};
lights_on = -2;
};
};
}
private function render():void{
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
var _local16:Matrix;
var _local17:BitmapData;
var _local18:Sprite;
_local14 = Math.sin;
_local15 = Math.cos;
_local16 = new Matrix();
_local16.rotate(((_angleY * Math.PI) / 180));
_local2 = ((_resoDx * 0.5) / 500);
_local9 = (((40 / _nbScans) * Math.PI) / 180);
_local10 = (((_angleX * Math.PI) / 180) - ((_local9 * _nbScans) * 0.5));
_local6 = _local14(((_angleY * Math.PI) / 180));
_local8 = _local15(((_angleY * Math.PI) / 180));
_local17 = _currSeg;
_local1 = -1;
while (++_local1 < _nbScans) {
_local18 = strips[_local1];
_local18.graphics.clear();
_local10 = (_local10 + _local9);
_local7 = _local14(_local10);
if (_local7 < 0){
} else {
_local11 = (_ycam / _local7);
_local12 = (_horizon - (_local11 / _horizonScale));
if (_local12 < 1){
} else {
_local18.alpha = (_local12 / 100);
_local13 = (_local15(_local10) * _local11);
_local4 = ((_xcam + (zone * HALF_TRACK_WIDTH)) - (_local6 * _local13));
_local5 = (_zcam - (_local8 * _local13));
_local16.tx = ((_local4 * _local16.a) + (_local5 * _local16.c));
_local16.ty = ((_local4 * _local16.b) + (_local5 * _local16.d));
_local3 = (_local2 * _local11);
_local18.scaleX = ((_worldScale / _local11) / 100);
_local18.graphics.beginBitmapFill(_local17, _local16, false, true);
_local18.graphics.moveTo(-(_local3), 0);
_local18.graphics.lineTo(_local3, 0);
_local18.graphics.lineTo(_local3, 1);
_local18.graphics.lineTo(-(_local3), _scanSteps);
_local18.graphics.endFill();
};
};
};
}
private function trackZone():void{
var _local1:int;
var _local2:Number;
if (Math.abs(myCar.speed) > 0.1){
zone = Math.floor(((myMap.car.x / HALF_TRACK_WIDTH) / 1.5));
if (zone != oldZone){
zone = Math.min(Math.max(zone, 0), 1);
if (zone != oldZone){
_local1 = (zone + 1);
_local2 = (myMap.car.x + (zone * HALF_TRACK_WIDTH));
_currSegIndex = zone;
_currSeg = segments[_currSegIndex];
myCar.updateSeg(_currSeg);
oldZone = zone;
return;
};
};
};
}
public function tick(_arg1:Event):void{
opponent_ai();
effects();
synchroniseTime();
if (mapcontrol){
input();
} else {
input2();
};
myCar.update();
trackLaps();
updateCam();
updateRadar();
trackZone();
collisions();
render();
renderObjects();
render3dObjects();
}
private function input2():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
if (keys.right){
_angleY = (_angleY + (_nbMs * _angleIncrement));
};
if (keys.left){
_angleY = (_angleY - (_nbMs * _angleIncrement));
};
_angleX = (_angleX % 360);
_angleY = (_angleY % 360);
if (keys.z){
_ycam = (_ycam + (_nbMs * 0.2));
};
if (keys.ctrl){
_ycam = (_ycam - (_nbMs * 0.2));
};
_local3 = Math.sin(((_angleY * Math.PI) / 180));
_local4 = Math.cos(((_angleY * Math.PI) / 180));
if (keys.up){
_xcam = (_xcam - ((_local3 * _nbMs) * _velocity));
_zcam = (_zcam - ((_local4 * _nbMs) * _velocity));
};
if (keys.down){
_xcam = (_xcam + ((_local3 * _nbMs) * _velocity));
_zcam = (_zcam + ((_local4 * _nbMs) * _velocity));
};
}
private function updateRadar():void{
var _local1:Array;
var _local2:Object;
var _local3:Point;
var _local4:int;
var _local5:Object;
var _local6:Point;
_local1 = new Array();
_local4 = objects3dLen;
while (--_local4 > -1) {
_local2 = {};
_local2.x = objects3d[_local4].mapmc.x;
_local2.y = objects3d[_local4].mapmc.y;
_local3 = new Point(_local2.x, _local2.y);
_local3.x = (_local3.x * -0.03);
_local3.y = (_local3.y * 0.03);
_local3.x = (_local3.x + 141);
_local3.y = (_local3.y + 74);
_local2.point = _local3;
_local2.position = opponents[_local4].position;
_local1.push(_local2);
};
_local5 = {};
_local6 = new Point(myMap.car.x, myMap.car.y);
new Point(myMap.car.x, myMap.car.y).x = (_local6.x * -0.03);
_local6.y = (_local6.y * 0.03);
_local6.x = (_local6.x + 141);
_local6.y = (_local6.y + 74);
_local5.point = _local6;
_local5.position = myCar.position;
map_radar.update(_local1, _local5);
}
private function input():void{
if (race_over){
myCar.vx = 0;
myCar.vy = 0;
return;
};
if (initial_wait > 775){
return;
};
if (keys.left){
myCar.steerLeft(_nbMs);
} else {
if (keys.right){
myCar.steerRight(_nbMs);
} else {
myCar.noSteer();
};
};
if (keys.up){
myCar.accelerate();
} else {
if (keys.down){
myCar.decelerate();
};
};
if (keys.spacebar){
if (!spacebar){
toggleMap();
spacebar = true;
};
} else {
if (spacebar){
spacebar = false;
};
};
}
private function initMode7(_arg1:int):void{
var _local2:int;
var _local3:Sprite;
_local2 = 0;
while (_local2 < _nbScans) {
_local2++;
};
if (_arg1 == 0){
_scanSteps = 2;
_nbScans = (_resoDy >> 1);
} else {
_scanSteps = 1;
_nbScans = _resoDy;
};
_local2 = 0;
while (_local2 < _nbScans) {
_local3 = new Sprite();
_local3.x = (offsetX + (_resoDx * 0.5));
_local3.y = (offsetY + (_local2 * _scanSteps));
roadLayer.addChild(_local3);
strips.push(_local3);
_local2++;
};
}
private function synchroniseTime(){
_time = getTimer();
_nbMs = (_time - _oldTime);
_oldTime = _time;
if (_nbMs < 1){
_nbMs = 1;
} else {
if (_nbMs > 120){
_nbMs = 120;
};
};
}
}
}//package com.playerthree.m7
Section 27
//MapRadar (com.playerthree.m7.MapRadar)
package com.playerthree.m7 {
public class MapRadar {
private const OFFSET_Y:int = 74;
private const OFFSET_X:int = 14;
public var dots:Array;
public var player_dot:Dot;
public var mc:Radar;
private var dot_len:int;
public function MapRadar(){
dots = new Array();
super();
init();
}
public function addDot():void{
var _local1:Dot;
_local1 = new Dot();
mc.addChild(_local1.mc);
dots.push(_local1);
dot_len = dots.length;
}
public function update(_arg1:Array, _arg2:Object):void{
var _local3:int;
var _local4:Dot;
player_dot.mc.x = (_arg2.point.x - OFFSET_X);
player_dot.mc.y = (_arg2.point.y - OFFSET_Y);
player_dot.update(_arg2.position);
_local3 = dot_len;
while (--_local3 > -1) {
_local4 = dots[_local3];
_local4.mc.x = (_arg1[_local3].point.x - OFFSET_X);
_local4.mc.y = (_arg1[_local3].point.y - OFFSET_Y);
_local4.update(_arg1[_local3].position);
};
}
public function addGreenDot():void{
var _local1:Dot;
_local1 = new Dot(true);
mc.addChild(_local1.mc);
player_dot = _local1;
}
private function init():void{
mc = new Radar();
mc.x = 14;
mc.y = -4;
addGreenDot();
}
}
}//package com.playerthree.m7
Section 28
//MSounds (com.playerthree.m7.MSounds)
package com.playerthree.m7 {
public class MSounds {
public static var SKID_BUMP:int = 8;
public static var GRAVEL:int = 3;
public static var ACCEL:int = 0;
public static var DECEL:int = 1;
public static var MENU_LOOP:int = 12;
public static var RUMBLE:int = 9;
public static var RACE_START:int = 13;
public static var ROLL_OVER:int = 14;
public static var SKID_SHORT:int = 7;
public static var DECEL_HIGH:int = 4;
public static var COLLIDE:int = 10;
public static var DECEL_MID:int = 5;
public static var COLLIDE_SKID:int = 11;
public static var TICK_OVER:int = 2;
public static var AMBIENCE:int = 6;
}
}//package com.playerthree.m7
Section 29
//Node (com.playerthree.m7.Node)
package com.playerthree.m7 {
public class Node {
public var vx:Number;
public var vy:Number;
public var ty:Number;
public var tx:Number;
public var rot:Number;
public var id:String;
public function Node(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number){
this.id = _arg1;
this.tx = _arg2;
this.ty = _arg3;
this.rot = _arg4;
init();
}
private function init():void{
}
}
}//package com.playerthree.m7
Section 30
//OppCar (com.playerthree.m7.OppCar)
package com.playerthree.m7 {
import flash.display.*;
import flash.filters.*;
import flash.geom.*;
public class OppCar {
private const _angleInc:Number = 0.03;
private const SKID:Number = 0.8;
private var blitSpr:Sprite;
public var ty:Number;
public var tx:Number;
public var skidMulti:Number;
private var trackSeg:BitmapData;
public var skidStop:Number;
public var timeWp:Number;// = 0
public var sinRot:Number;
private var deg2rad:Number;
public var currWp:int;// = 0
public var skidStart:Number;
public var rotSpeed:Number;
public var last_position:int;// = 1
public var position:int;// = 1
public var vx:Number;
public var vy:Number;
public var speed:Number;
public var diffSpeed:Number;
public var randAccel:Number;
public var rotAccel:Number;
public var rot:Number;
private var canvas:Sprite;
public var oldSpeed:Number;
private var canvasBlur:BlurFilter;
public var accel:Number;
private var h:Number;
public var skidding:Boolean;
private var abs:Function;
private var skidShape:Shape;
private var w:Number;
public var friction:Number;
public var cosRot:Number;
public function OppCar(_arg1:Sprite){
currWp = 0;
timeWp = 0;
position = 1;
last_position = 1;
super();
this.canvas = _arg1;
init();
}
private function init():void{
deg2rad = (Math.PI / 180);
abs = Math.abs;
oldSpeed = (speed = (accel = 0));
vx = (vy = (tx = (ty = 0)));
rot = 0;
rotAccel = (rotSpeed = 0);
skidStart = 0.8;
skidStop = 0.55;
skidding = false;
skidMulti = 0.5;
friction = SKID;
blitSpr = new Sprite();
skidShape = new Shape();
canvas.addChild(skidShape);
canvasBlur = new BlurFilter(4, 4, 1);
canvas.filters = [canvasBlur];
randAccel = (0.5 + (Math.random() * 0.3));
h = 32;
w = 16;
}
public function bounce(_arg1:Car):void{
}
public function startpos(_arg1:Number, _arg2:Number):void{
tx = _arg1;
ty = _arg2;
}
public function decelerate():void{
accel = -1;
}
private function draw(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:Number;
_local4 = _arg3;
trackSeg.fillRect(new Rectangle((_arg1 + 1440), (_arg2 + 1440), 2, 2), 0);
skidShape.graphics.beginFill(0, 1);
skidShape.graphics.drawCircle((_arg1 + 1440), (_arg2 + 1440), _local4);
skidShape.graphics.endFill();
skidShape.graphics.clear();
}
public function drawskid(_arg1:Number, _arg2:Number):void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
_local3 = ((sinRot * h) * 0.75);
_local4 = ((-(cosRot) * h) * 0.75);
_local5 = ((cosRot * w) * 0.6);
_local6 = ((sinRot * w) * 0.6);
_local9 = speed;
_local7 = ((_arg1 + _local3) + _local5);
_local8 = ((_arg2 + _local4) + _local6);
draw(_local7, _local8, _local9);
_local7 = ((_arg1 + _local3) - _local5);
_local8 = ((_arg2 + _local4) - _local6);
draw(_local7, _local8, _local9);
_local7 = ((_arg1 - _local3) + _local5);
_local8 = ((_arg2 - _local4) + _local6);
draw(_local7, _local8, _local9);
_local7 = ((_arg1 - _local3) - _local5);
_local8 = ((_arg2 - _local4) - _local6);
draw(_local7, _local8, _local9);
}
public function steerRight(_arg1):void{
rotAccel = ((rotAccel)<1.5) ? (rotAccel + (_angleInc * _arg1)) : 1.5;
}
public function updateSeg(_arg1:BitmapData):void{
this.trackSeg = _arg1;
}
private function startskid():void{
friction = SKID;
skidding = false;
}
public function accelerate():void{
accel = 1;
}
public function update():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
sinRot = Math.sin((rot * deg2rad));
cosRot = Math.cos((rot * deg2rad));
_local1 = sinRot;
_local2 = cosRot;
_local3 = ((_local2 * vx) + (_local1 * vy));
if (!skidding){
if (abs(_local3) > skidStart){
stopskid();
};
} else {
if (abs(_local3) < skidStop){
startskid();
};
};
_local4 = (_local2 * _local3);
_local5 = (_local1 * _local3);
vx = (vx - (_local4 * friction));
vy = (vy - (_local5 * friction));
vx = (vx + ((accel * _local1) * friction));
vy = (vy + ((accel * -(_local2)) * friction));
speed = Math.sqrt(((vx * vx) + (vy * vy)));
rotSpeed = (rotSpeed + (rotAccel * (speed / 7)));
diffSpeed = (speed - oldSpeed);
rot = (rot + rotSpeed);
tx = (tx + vx);
ty = (ty + vy);
accel = 0;
rotAccel = 0;
vx = (vx - ((vx * 0.05) * friction));
vy = (vy - ((vy * 0.05) * friction));
rotSpeed = (rotSpeed * (0.4 * (1 - friction)));
oldSpeed = speed;
}
public function steerLeft(_arg1):void{
rotAccel = ((rotAccel)>-1.5) ? (rotAccel - (_angleInc * _arg1)) : -1.5;
}
private function stopskid():void{
friction = (SKID * skidMulti);
skidding = true;
}
}
}//package com.playerthree.m7
Section 31
//Output (com.playerthree.m7.Output)
package com.playerthree.m7 {
import flash.display.*;
import flash.text.*;
public class Output extends Sprite {
private var outStr:String;
private var t:TextField;
public function Output(){
var _local1:TextFormat;
super();
y = 240;
outStr = "Output";
_local1 = new TextFormat();
_local1.font = "_typewriter";
_local1.color = 0;
_local1.size = 12;
t = new TextField();
t.autoSize = TextFieldAutoSize.LEFT;
t.selectable = false;
t.background = true;
t.text = outStr;
t.defaultTextFormat = _local1;
t.setTextFormat(_local1);
addChild(t);
}
public function oTrace(_arg1:String):void{
outStr = _arg1;
t.text = outStr;
}
}
}//package com.playerthree.m7
Section 32
//RaceSound (com.playerthree.m7.RaceSound)
package com.playerthree.m7 {
import flash.media.*;
public class RaceSound {
private var engineChannel:SoundChannel;
private var sounds:Array;
private var channels:Array;
public static var MUTE:Boolean = false;
public static var MENU:Boolean = true;
public function RaceSound(){
sounds = new Array();
channels = new Array();
super();
init();
}
public function update(_arg1:Number):void{
if (channels[MSounds.AMBIENCE] != null){
channels[MSounds.AMBIENCE].soundTransform = new SoundTransform(_arg1, 0);
};
}
public function stopEngineSound(_arg1:int):int{
var _local2:int;
if (MUTE){
return (-1);
};
_local2 = engineChannel.position;
engineChannel.stop();
return (_local2);
}
public function stopSound(_arg1:int):void{
if (MUTE){
return;
};
channels[_arg1].stop();
}
private function init():void{
var _local1:Accelerate;
var _local2:Decelerate;
var _local3:TickOver;
var _local4:Rumble;
var _local5:DecelerateHigh;
var _local6:DecelerateMid;
var _local7:RaceAmbience;
var _local8:SkidShort;
var _local9:SkidBump;
var _local10:Gravel;
var _local11:Collide;
var _local12:CollideSkid;
var _local13:MenuLoop;
var _local14:RaceStart;
var _local15:RollOver;
_local1 = new Accelerate();
_local2 = new Decelerate();
_local3 = new TickOver();
_local4 = new Rumble();
_local5 = new DecelerateHigh();
_local6 = new DecelerateMid();
_local7 = new RaceAmbience();
_local8 = new SkidShort();
_local9 = new SkidBump();
_local10 = new Gravel();
_local11 = new Collide();
_local12 = new CollideSkid();
_local13 = new MenuLoop();
_local14 = new RaceStart();
_local15 = new RollOver();
sounds.push(_local1, _local2, _local3, _local4, _local5, _local6, _local7, _local8, _local9, _local10, _local11, _local12, _local13, _local14, _local15);
}
public function playEngineSound(_arg1:int, _arg2:Boolean=false, _arg3:int=0):void{
var _local4:SoundTransform;
var _local5:int;
if (MUTE){
return;
};
_local4 = new SoundTransform(1, 0);
if (_arg1 == MSounds.ACCEL){
_local4.volume = 0.7;
};
_local5 = (_arg2) ? 999 : 1;
engineChannel = sounds[_arg1].play(_arg3, _local5);
engineChannel.soundTransform = _local4;
}
public function playSound(_arg1:int, _arg2:Boolean=false):void{
var _local3:int;
if (MUTE){
return;
};
_local3 = (_arg2) ? 999 : 1;
channels[_arg1] = sounds[_arg1].play(0, _local3);
}
public function stopAll():void{
var _local1:*;
var _local2:SoundChannel;
for (_local1 in channels) {
if (channels[_local1] != null){
if (channels[_local1] != undefined){
_local2 = channels[_local1];
_local2.stop();
};
};
};
if (engineChannel != null){
engineChannel.stop();
};
}
public static function toggle_sound():void{
if (MUTE){
MUTE = false;
} else {
MUTE = true;
};
}
}
}//package com.playerthree.m7
Section 33
//SendToFriend (com.playerthree.m7.SendToFriend)
package com.playerthree.m7 {
import flash.display.*;
import gs.*;
import flash.events.*;
import com.adobe.crypto.*;
import flash.text.*;
public class SendToFriend extends MovieClip {
public var send_btn:MovieClip;
public var close_btn:MovieClip;
public var email_txt:TextField;
public var error_txt:TextField;
public var name_txt:TextField;
public function SendToFriend(){
addFrameScript(0, frame1, 20, frame21, 40, frame41);
this.visible = false;
this.alpha = 0;
}
private function send_email(_arg1:MouseEvent):void{
var _local2:Date;
var _local3:String;
var _local4:String;
var _local5:String;
if (validate(this.email_txt.text)){
_local2 = new Date();
_local3 = String(Date.UTC(_local2.getFullYear(), _local2.getMonth(), _local2.getDate(), _local2.getHours(), _local2.getMinutes(), _local2.getSeconds()));
_local4 = (this.email_txt.text + _local3);
_local5 = MD5.hash(_local4);
Globals.remoting.sendMail(email_txt.text, name_txt.text, sendComplete);
this.send_btn.removeEventListener(MouseEvent.MOUSE_UP, send_email);
this.send_btn.alpha = 0.5;
} else {
this.error_txt.text = "Please enter a valid email address";
};
}
private function validate(_arg1:String):Boolean{
if ((((((((((((((((((((_arg1.length < 6)) || ((_arg1.indexOf(",") >= 0)))) || ((_arg1.indexOf(";") >= 0)))) || ((_arg1.indexOf(":") >= 0)))) || ((_arg1.indexOf("/") >= 0)))) || ((_arg1.indexOf(" ") >= 0)))) || ((_arg1.indexOf("@") <= 0)))) || (!((_arg1.indexOf("@") == _arg1.lastIndexOf("@")))))) || ((_arg1.lastIndexOf(".") < _arg1.indexOf("@"))))) || (((_arg1.lastIndexOf(".") + 3) > _arg1.length)))){
return (false);
};
return (true);
}
private function show_complete(_arg1:Event=null):void{
this.send_btn.alpha = 1;
this.send_btn.addEventListener(MouseEvent.MOUSE_UP, send_email);
this.send_btn.buttonMode = true;
this.send_btn.tabIndex = (this.close_btn.tabIndex + 1);
this.close_btn.addEventListener(MouseEvent.MOUSE_UP, close);
this.close_btn.buttonMode = true;
}
function frame1(){
stop();
}
private function hide(_arg1:Event=null):void{
this.visible = false;
this.gotoAndStop(1);
}
function frame21(){
stop();
}
function frame41(){
stop();
}
private function sendComplete(_arg1):void{
play();
}
public function show():void{
if (Globals.hiscores.open){
Globals.hiscores.hide_scores();
};
this.visible = true;
TweenLite.to(this, 0.5, {alpha:1, onComplete:show_complete});
}
private function close(_arg1:MouseEvent=null):void{
TweenLite.to(this, 0.5, {alpha:0, onComplete:hide});
this.close_btn.removeEventListener(MouseEvent.MOUSE_UP, close);
}
}
}//package com.playerthree.m7
Section 34
//SubmitScore (com.playerthree.m7.SubmitScore)
package com.playerthree.m7 {
import flash.display.*;
import flash.events.*;
import com.adobe.crypto.*;
public class SubmitScore extends MovieClip {
private var sendname:String;
private var sendemail:String;
private var sendConfirm:String;
private var scoresent:Boolean;// = false
public var outroComplete:Function;
private var sendtime:Number;
public var content:MovieClip;
public var close_btn:MovieClip;
private var _main:Main;
public var submit_btn:MovieClip;
public var input_fields:MovieClip;
public function SubmitScore(){
scoresent = false;
super();
addFrameScript(0, frame1, 20, frame21, 41, frame42);
}
private function end_scores():void{
Globals.hiscores.show_scores(_main._game);
}
private function send_score(_arg1:MouseEvent):void{
var _local2:Date;
var _local3:String;
var _local4:String;
var _local5:String;
if (validate(this.input_fields.email_txt.text)){
_local2 = new Date();
_local3 = String(Date.UTC(_local2.getFullYear(), _local2.getMonth(), _local2.getDate(), _local2.getHours(), _local2.getMinutes(), _local2.getSeconds()));
_local4 = (this.input_fields.email_txt.text + _local3);
_local5 = MD5.hash(_local4);
sendemail = this.input_fields.email_txt.text;
sendname = this.input_fields.name_txt.text;
sendtime = Globals.RACE_TIME;
this.submit_btn.removeEventListener(MouseEvent.MOUSE_UP, send_score);
this.submit_btn.alpha = 0.5;
Globals.remoting.setScoreInit(sendname, sendemail, sendtime, sendComplete);
this.input_fields.error_txt.text = "Please wait... sending score.";
} else {
this.input_fields.error_txt.text = "Please enter a valid email address.";
};
}
private function validate(_arg1:String):Boolean{
if ((((((((((((((((((((_arg1.length < 6)) || ((_arg1.indexOf(",") >= 0)))) || ((_arg1.indexOf(";") >= 0)))) || ((_arg1.indexOf(":") >= 0)))) || ((_arg1.indexOf("/") >= 0)))) || ((_arg1.indexOf(" ") >= 0)))) || ((_arg1.indexOf("@") <= 0)))) || (!((_arg1.indexOf("@") == _arg1.lastIndexOf("@")))))) || ((_arg1.lastIndexOf(".") < _arg1.indexOf("@"))))) || (((_arg1.lastIndexOf(".") + 3) > _arg1.length)))){
return (false);
};
return (true);
}
public function sendComplete2(_arg1:String):void{
Globals.playerid = int(_arg1);
scoresent = true;
close();
}
function frame21(){
stop();
}
private function display_times():void{
this.content.time1_txt.text = Globals.LAP_TIMES[0];
this.content.time2_txt.text = Globals.LAP_TIMES[1];
this.content.time3_txt.text = Globals.LAP_TIMES[2];
this.content.race_time_txt.text = Globals.RACE_TIME_FORMAT;
}
public function show_submit(_arg1:Main):void{
this._main = _arg1;
this.play();
this.submit_btn.addEventListener(MouseEvent.MOUSE_UP, send_score);
this.submit_btn.buttonMode = true;
this.close_btn.addEventListener(MouseEvent.MOUSE_UP, close);
this.close_btn.buttonMode = true;
display_times();
}
function frame1(){
stop();
}
function frame42(){
if (this.outroComplete != null){
this.outroComplete();
};
stop();
}
public function sendComplete(_arg1:String):void{
Globals.remoting.setScore(sendname, sendemail, sendtime, _arg1, sendComplete2);
}
private function close(_arg1:MouseEvent=null):void{
this.play();
outroComplete = end_scores;
}
}
}//package com.playerthree.m7
Section 35
//TrackLaps (com.playerthree.m7.TrackLaps)
package com.playerthree.m7 {
import flash.display.*;
public class TrackLaps {
private const CHAR_HEIGHT:int = -20;
public var pos_indicator:MovieClip;
public var best:MovieClip;
public var curr:MovieClip;
public var last:MovieClip;
public var lap_counter:MovieClip;
public function TrackLaps(_arg1:MovieClip, _arg2:MovieClip, _arg3:MovieClip, _arg4:MovieClip, _arg5:MovieClip){
this.best = _arg1;
this.curr = _arg2;
this.last = _arg3;
this.pos_indicator = _arg4;
this.lap_counter = _arg5;
}
public function set_best_time(_arg1:Number):void{
render(best, _arg1);
}
public function set_new_pos(_arg1:int):void{
pos_indicator.pos.y = (_arg1 * CHAR_HEIGHT);
}
public function set_new_lap(_arg1:int):void{
lap_counter.laps.y = (_arg1 * CHAR_HEIGHT);
}
public function update(_arg1:Number):void{
render(curr, _arg1);
}
private function formatTime(_arg1:Number):String{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:String;
var _local6:String;
var _local7:String;
var _local8:String;
_local3 = Math.floor((_arg1 / 1000));
_local2 = Math.floor((_local3 / 60));
_local4 = Math.floor((_local2 / 60));
_local3 = (_local3 % 60);
_local2 = (_local2 % 60);
_local6 = ((_local2)<10) ? ("0" + _local2) : _local2.toString();
_local5 = ((_local3)<10) ? ("0" + _local3) : _local3.toString();
_local7 = ((_local4)<10) ? ("0" + _local4) : _local4.toString();
_local8 = ((((_local7 + "") + _local6) + "") + _local5);
return (_local8);
}
private function render(_arg1:MovieClip, _arg2:Number):void{
var _local3:String;
var _local4:MovieClip;
var _local5:MovieClip;
var _local6:MovieClip;
var _local7:MovieClip;
var _local8:MovieClip;
var _local9:MovieClip;
var _local10:Array;
_local3 = formatTime(Math.abs(_arg2));
_local4 = _arg1.col0;
_local5 = _arg1.col1;
_local6 = _arg1.col2;
_local7 = _arg1.col3;
_local8 = _arg1.col4;
_local9 = _arg1.col5;
_local10 = _local3.split("");
_local4.y = (_local10[0] * CHAR_HEIGHT);
_local5.y = (_local10[1] * CHAR_HEIGHT);
_local6.y = (_local10[2] * CHAR_HEIGHT);
_local7.y = (_local10[3] * CHAR_HEIGHT);
_local8.y = (_local10[4] * CHAR_HEIGHT);
_local9.y = (_local10[5] * CHAR_HEIGHT);
}
public function set_last_lap(_arg1:Number):void{
render(last, _arg1);
}
}
}//package com.playerthree.m7
Section 36
//TrackLight (com.playerthree.m7.TrackLight)
package com.playerthree.m7 {
public class TrackLight {
private const GREEN:int = 2;
private const OFF:int = 0;
private const RED:int = 1;
public var state:int;// = 0
public var _light:Light;
public function TrackLight(_arg1:Light){
state = OFF;
super();
this._light = _arg1;
_arg1.light.red.visible = false;
_arg1.light.green.visible = false;
}
public function change():void{
if (state == OFF){
state = RED;
_light.light.red.visible = true;
_light.light.green.visible = false;
} else {
if (state == RED){
state = GREEN;
_light.light.red.visible = false;
_light.light.green.visible = true;
} else {
state = OFF;
_light.light.red.visible = false;
_light.light.green.visible = false;
};
};
}
}
}//package com.playerthree.m7
Section 37
//MathX (com.playerthree.math.MathX)
package com.playerthree.math {
public class MathX {
public static function niceMod(_arg1:Number, _arg2:Number):Number{
_arg1 = (_arg1 / _arg2);
if (_arg1 < 0){
return ((_arg2 * (1 - (Math.abs(_arg1) % 1))));
};
return ((_arg2 * (_arg1 % 1)));
}
}
}//package com.playerthree.math
Section 38
//KeyState (com.playerthree.util.KeyState)
package com.playerthree.util {
import flash.events.*;
public class KeyState {
public var spacebar:Boolean;
public var left:Boolean;
public var two:Boolean;
public var up:Boolean;
public var right:Boolean;
public var three:Boolean;
public var down:Boolean;
public var one:Boolean;
public var ctrl:Boolean;
public var four:Boolean;
public var u:Boolean;
public var z:Boolean;
public var x:Boolean;
public function KeyState(){
left = (right = (up = (down = (spacebar = (ctrl = (z = (x = false)))))));
}
public function onKeyDown(_arg1:KeyboardEvent):void{
switch (_arg1.keyCode){
case 37:
case 65:
left = true;
break;
case 39:
case 68:
right = true;
break;
case 38:
case 87:
up = true;
break;
case 40:
case 83:
down = true;
break;
case 32:
spacebar = true;
break;
case 17:
ctrl = true;
break;
case 85:
u = true;
break;
case 88:
x = true;
break;
case 90:
z = true;
break;
case 97:
case 49:
one = true;
break;
case 98:
case 50:
two = true;
break;
case 99:
case 51:
three = true;
break;
case 100:
case 52:
four = true;
break;
};
}
public function onKeyUp(_arg1:KeyboardEvent):void{
switch (_arg1.keyCode){
case 37:
case 65:
left = false;
break;
case 39:
case 68:
right = false;
break;
case 38:
case 87:
up = false;
break;
case 40:
case 83:
down = false;
break;
case 32:
spacebar = false;
break;
case 17:
ctrl = false;
break;
case 85:
u = false;
break;
case 88:
x = false;
break;
case 90:
z = false;
break;
case 97:
case 49:
one = false;
break;
case 98:
case 50:
two = false;
break;
case 99:
case 51:
three = false;
break;
case 100:
case 52:
four = false;
break;
};
}
}
}//package com.playerthree.util
Section 39
//RemotingConnection (com.playerthree.util.RemotingConnection)
package com.playerthree.util {
import flash.net.*;
public class RemotingConnection extends NetConnection {
public function RemotingConnection(_arg1:String){
objectEncoding = ObjectEncoding.AMF0;
if (_arg1){
connect(_arg1);
};
}
}
}//package com.playerthree.util
Section 40
//RemotingFunctions (com.playerthree.util.RemotingFunctions)
package com.playerthree.util {
import flash.net.*;
public class RemotingFunctions {
public var gateway:RemotingConnection;
public var service:String;// = "BPRacing"
public var dataProvider:Array;
public function RemotingFunctions(_arg1){
service = "BPRacing";
super();
this.init(_arg1);
}
public function setScoreInit(_arg1:String, _arg2:String, _arg3:Number, _arg4:Function):void{
var _local5:Responder;
_local5 = new Responder(_arg4, onFault);
gateway.call((service + ".screwString"), _local5, _arg1, _arg2, _arg3);
}
public function onFault(_arg1:Object):void{
var _local2:String;
for (_local2 in _arg1) {
};
}
public function sendMail(_arg1:String, _arg2:String, _arg3:Function):void{
var _local4:Responder;
_local4 = new Responder(_arg3, onFault);
gateway.call((service + ".sendToFriend"), _local4, _arg1, _arg2);
}
public function init(_arg1):void{
var _local2:String;
_local2 = _arg1;
gateway = new RemotingConnection(_local2);
}
public function setScore(_arg1:String, _arg2:String, _arg3:Number, _arg4:String, _arg5:Function):void{
var _local6:Responder;
_local6 = new Responder(_arg5, onFault);
gateway.call((service + ".setScore"), _local6, _arg1, _arg2, _arg3, _arg4);
}
public function getScores(_arg1:Function):void{
var _local2:Responder;
_local2 = new Responder(_arg1, onFault);
gateway.call((service + ".getScores"), _local2);
}
public function onResult(_arg1:String):void{
}
public function callFunction(_arg1:String, _arg2:Function, ... _args):void{
var _local4:Responder;
var _local5:Array;
var _local6:*;
var _local7:Function;
_local4 = new Responder(_arg2, onFault);
_local5 = new Array();
_local5.push(_arg1);
_local5.push(_local4);
for each (_local6 in _args) {
_local5.push(_local6);
};
_local7 = gateway.call;
_local7.apply(gateway, _local5);
}
public function getPosition(_arg1:Number, _arg2:Function):void{
var _local3:Responder;
_local3 = new Responder(_arg2, onFault);
gateway.call((service + ".findMe"), _local3, _arg1);
}
}
}//package com.playerthree.util
Section 41
//TweenLite (gs.TweenLite)
package gs {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.utils.*;
import flash.geom.*;
public class TweenLite {
public var delay:Number;
protected var _initted:Boolean;
protected var _subTweens:Array;
public var startTime:int;
public var target:Object;
public var duration:Number;
protected var _hst:Boolean;
protected var _active:Boolean;
public var vars:Object;
public var tweens:Array;
public var initTime:int;
private static var _timer:Timer = new Timer(2000);
private static var _classInitted:Boolean;
public static var defaultEase:Function = TweenLite.easeOut;
public static var version:Number = 6.21;
private static var _sprite:Sprite = new Sprite();
protected static var _all:Dictionary = new Dictionary();
public static var killDelayedCallsTo:Function = killTweensOf;
protected static var _curTime:uint;
private static var _listening:Boolean;
public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){
if (_arg1 == null){
return;
};
if (((((!((_arg3.overwrite == false))) && (!((_arg1 == null))))) || ((_all[_arg1] == undefined)))){
delete _all[_arg1];
_all[_arg1] = new Dictionary();
};
_all[_arg1][this] = this;
this.vars = _arg3;
this.duration = ((_arg2) || (0.001));
this.delay = ((_arg3.delay) || (0));
this.target = _arg1;
if (!(this.vars.ease is Function)){
this.vars.ease = defaultEase;
};
if (this.vars.easeParams != null){
this.vars.proxiedEase = this.vars.ease;
this.vars.ease = easeProxy;
};
if (!isNaN(Number(this.vars.autoAlpha))){
this.vars.alpha = Number(this.vars.autoAlpha);
};
this.tweens = [];
_subTweens = [];
_hst = (_initted = false);
_active = (((_arg2 == 0)) && ((this.delay == 0)));
if (!_classInitted){
_curTime = getTimer();
_sprite.addEventListener(Event.ENTER_FRAME, executeAll);
_classInitted = true;
};
this.initTime = _curTime;
if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (_active))){
initTweenVals();
this.startTime = _curTime;
if (_active){
render((this.startTime + 1));
} else {
render(this.startTime);
};
};
if (((!(_listening)) && (!(_active)))){
_timer.addEventListener("timer", killGarbage);
_timer.start();
_listening = true;
};
}
protected function addSubTween(_arg1:Function, _arg2:Object, _arg3:Object, _arg4:Object=null):void{
var _local5:Object;
var _local6:String;
_local5 = {proxy:_arg1, target:_arg2, info:_arg4};
_subTweens.push(_local5);
for (_local6 in _arg3) {
if (_arg2.hasOwnProperty(_local6)){
if (typeof(_arg3[_local6]) == "number"){
this.tweens.push({o:_arg2, p:_local6, s:_arg2[_local6], c:(_arg3[_local6] - _arg2[_local6]), sub:_local5});
} else {
this.tweens.push({o:_arg2, p:_local6, s:_arg2[_local6], c:Number(_arg3[_local6]), sub:_local5});
};
};
};
_hst = true;
}
public function initTweenVals(_arg1:Boolean=false, _arg2:String=""):void{
var _local3:Boolean;
var _local4:String;
var _local5:int;
var _local6:Array;
var _local7:ColorTransform;
var _local8:ColorTransform;
var _local9:Object;
_local3 = (this.target is DisplayObject);
if ((this.target is Array)){
_local6 = ((this.vars.endArray) || ([]));
_local5 = 0;
while (_local5 < _local6.length) {
if (((!((this.target[_local5] == _local6[_local5]))) && (!((this.target[_local5] == undefined))))){
this.tweens.push({o:this.target, p:_local5.toString(), s:this.target[_local5], c:(_local6[_local5] - this.target[_local5])});
};
_local5++;
};
} else {
for (_local4 in this.vars) {
if ((((((((((((((((((((((((((((((((((((_local4 == "ease")) || ((_local4 == "delay")))) || ((_local4 == "overwrite")))) || ((_local4 == "onComplete")))) || ((_local4 == "onCompleteParams")))) || ((_local4 == "onCompleteScope")))) || ((_local4 == "runBackwards")))) || ((_local4 == "onUpdate")))) || ((_local4 == "onUpdateParams")))) || ((_local4 == "onUpdateScope")))) || ((_local4 == "autoAlpha")))) || ((_local4 == "onStart")))) || ((_local4 == "onStartParams")))) || ((_local4 == "onStartScope")))) || ((_local4 == "renderOnStart")))) || ((_local4 == "proxiedEase")))) || ((_local4 == "easeParams")))) || (((_arg1) && (!((_arg2.indexOf(((" " + _local4) + " ")) == -1))))))){
} else {
if ((((_local4 == "tint")) && (_local3))){
_local7 = this.target.transform.colorTransform;
_local8 = new ColorTransform();
if (this.vars.alpha != undefined){
_local8.alphaMultiplier = this.vars.alpha;
delete this.vars.alpha;
_local5 = (this.tweens.length - 1);
while (_local5 > -1) {
if (this.tweens[_local5].p == "alpha"){
this.tweens.splice(_local5, 1);
break;
};
_local5--;
};
} else {
_local8.alphaMultiplier = this.target.alpha;
};
if (((((!((this.vars[_local4] == null))) && (!((this.vars[_local4] == ""))))) || ((this.vars[_local4] == 0)))){
_local8.color = this.vars[_local4];
};
addSubTween(tintProxy, {progress:0}, {progress:1}, {target:this.target, color:_local7, endColor:_local8});
} else {
if ((((_local4 == "frame")) && (_local3))){
addSubTween(frameProxy, {frame:this.target.currentFrame}, {frame:this.vars[_local4]}, {target:this.target});
} else {
if ((((_local4 == "volume")) && (((_local3) || ((this.target is SoundChannel)))))){
addSubTween(volumeProxy, this.target.soundTransform, {volume:this.vars[_local4]}, {target:this.target});
} else {
if (this.target.hasOwnProperty(_local4)){
if (typeof(this.vars[_local4]) == "number"){
this.tweens.push({o:this.target, p:_local4, s:this.target[_local4], c:(this.vars[_local4] - this.target[_local4])});
} else {
this.tweens.push({o:this.target, p:_local4, s:this.target[_local4], c:Number(this.vars[_local4])});
};
};
};
};
};
};
};
};
if (this.vars.runBackwards == true){
_local5 = (this.tweens.length - 1);
while (_local5 > -1) {
_local9 = this.tweens[_local5];
this.tweens[_local5].s = (_local9.s + _local9.c);
_local9.c = (_local9.c * -1);
_local5--;
};
};
if (typeof(this.vars.autoAlpha) == "number"){
this.target.visible = !((((this.vars.runBackwards == true)) && ((this.target.alpha == 0))));
};
_initted = true;
}
public function get active():Boolean{
if (_active){
return (true);
};
if (((_curTime - this.initTime) / 1000) > this.delay){
_active = true;
this.startTime = (this.initTime + (this.delay * 1000));
if (!_initted){
initTweenVals();
} else {
if (typeof(this.vars.autoAlpha) == "number"){
this.target.visible = true;
};
};
if (this.vars.onStart != null){
this.vars.onStart.apply(this.vars.onStartScope, this.vars.onStartParams);
};
if (this.duration == 0.001){
this.startTime = (this.startTime - 1);
};
return (true);
//unresolved jump
};
return (false);
}
public function render(_arg1:uint):void{
var _local2:Number;
var _local3:Number;
var _local4:Object;
var _local5:int;
_local2 = ((_arg1 - this.startTime) / 1000);
if (_local2 > this.duration){
_local2 = this.duration;
};
_local3 = this.vars.ease(_local2, 0, 1, this.duration);
_local5 = (this.tweens.length - 1);
while (_local5 > -1) {
_local4 = this.tweens[_local5];
_local4.o[_local4.p] = (_local4.s + (_local3 * _local4.c));
_local5--;
};
if (_hst){
_local5 = (_subTweens.length - 1);
while (_local5 > -1) {
_subTweens[_local5].proxy(_subTweens[_local5]);
_local5--;
};
};
if (this.vars.onUpdate != null){
this.vars.onUpdate.apply(this.vars.onUpdateScope, this.vars.onUpdateParams);
};
if (_local2 == this.duration){
complete(true);
};
}
protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams)));
}
public function complete(_arg1:Boolean=false):void{
if (!_arg1){
if (!_initted){
initTweenVals();
};
this.startTime = (_curTime - (this.duration * 1000));
render(_curTime);
return;
};
if ((((typeof(this.vars.autoAlpha) == "number")) && ((this.target.alpha == 0)))){
this.target.visible = false;
};
if (this.vars.onComplete != null){
this.vars.onComplete.apply(this.vars.onCompleteScope, this.vars.onCompleteParams);
};
removeTween(this);
}
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function frameProxy(_arg1:Object):void{
_arg1.info.target.gotoAndStop(Math.round(_arg1.target.frame));
}
public static function removeTween(_arg1:TweenLite=null):void{
if (((!((_arg1 == null))) && (!((_all[_arg1.target] == undefined))))){
delete _all[_arg1.target][_arg1];
};
}
public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{
var _local3:Object;
var _local4:*;
if (((!((_arg1 == null))) && (!((_all[_arg1] == undefined))))){
if (_arg2){
_local3 = _all[_arg1];
for (_local4 in _local3) {
_local3[_local4].complete(false);
};
};
delete _all[_arg1];
};
}
public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4=null):TweenLite{
return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, onCompleteScope:_arg4, overwrite:false}));
}
public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
_arg3.runBackwards = true;
return (new TweenLite(_arg1, _arg2, _arg3));
}
public static function executeAll(_arg1:Event=null):void{
var _local2:uint;
var _local3:Dictionary;
var _local4:Object;
var _local5:Object;
_local2 = (_curTime = getTimer());
if (_listening){
_local3 = _all;
for each (_local4 in _local3) {
for (_local5 in _local4) {
if (((!((_local4[_local5] == undefined))) && (_local4[_local5].active))){
_local4[_local5].render(_local2);
};
};
};
};
}
public static function volumeProxy(_arg1:Object):void{
_arg1.info.target.soundTransform = _arg1.target;
}
public static function killGarbage(_arg1:TimerEvent):void{
var _local2:uint;
var _local3:Boolean;
var _local4:Object;
var _local5:Object;
var _local6:Object;
_local2 = 0;
for (_local4 in _all) {
_local3 = false;
for (_local5 in _all[_local4]) {
_local3 = true;
break;
};
if (!_local3){
delete _all[_local4];
} else {
_local2++;
};
};
if (_local2 == 0){
_timer.removeEventListener("timer", killGarbage);
_timer.stop();
_listening = false;
};
}
public static function tintProxy(_arg1:Object):void{
var _local2:Number;
var _local3:Number;
var _local4:Object;
var _local5:Object;
_local2 = _arg1.target.progress;
_local3 = (1 - _local2);
_local4 = _arg1.info.color;
_local5 = _arg1.info.endColor;
_arg1.info.target.transform.colorTransform = new ColorTransform(((_local4.redMultiplier * _local3) + (_local5.redMultiplier * _local2)), ((_local4.greenMultiplier * _local3) + (_local5.greenMultiplier * _local2)), ((_local4.blueMultiplier * _local3) + (_local5.blueMultiplier * _local2)), ((_local4.alphaMultiplier * _local3) + (_local5.alphaMultiplier * _local2)), ((_local4.redOffset * _local3) + (_local5.redOffset * _local2)), ((_local4.greenOffset * _local3) + (_local5.greenOffset * _local2)), ((_local4.blueOffset * _local3) + (_local5.blueOffset * _local2)), ((_local4.alphaOffset * _local3) + (_local5.alphaOffset * _local2)));
}
public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
return (new TweenLite(_arg1, _arg2, _arg3));
}
}
}//package gs
Section 42
//Accelerate (Accelerate)
package {
import flash.media.*;
public dynamic class Accelerate extends Sound {
}
}//package
Section 43
//Arrow (Arrow)
package {
import flash.display.*;
public dynamic class Arrow extends MovieClip {
public var hit:MovieClip;
}
}//package
Section 44
//Banner (Banner)
package {
import flash.display.*;
public dynamic class Banner extends MovieClip {
public var hit:MovieClip;
}
}//package
Section 45
//Barrier (Barrier)
package {
import flash.display.*;
public dynamic class Barrier extends MovieClip {
public var hit:MovieClip;
}
}//package
Section 46
//Blimp (Blimp)
package {
import flash.display.*;
public dynamic class Blimp extends MovieClip {
public var hit:MovieClip;
}
}//package
Section 47
//Collide (Collide)
package {
import flash.media.*;
public dynamic class Collide extends Sound {
}
}//package
Section 48
//CollideSkid (CollideSkid)
package {
import flash.media.*;
public dynamic class CollideSkid extends Sound {
}
}//package
Section 49
//Decelerate (Decelerate)
package {
import flash.media.*;
public dynamic class Decelerate extends Sound {
}
}//package
Section 50
//DecelerateHigh (DecelerateHigh)
package {
import flash.media.*;
public dynamic class DecelerateHigh extends Sound {
}
}//package
Section 51
//DecelerateMid (DecelerateMid)
package {
import flash.media.*;
public dynamic class DecelerateMid extends Sound {
}
}//package
Section 52
//Gravel (Gravel)
package {
import flash.media.*;
public dynamic class Gravel extends Sound {
}
}//package
Section 53
//GreenDot (GreenDot)
package {
import flash.display.*;
public dynamic class GreenDot extends MovieClip {
public var num:MovieClip;
}
}//package
Section 54
//Light (Light)
package {
import flash.display.*;
public dynamic class Light extends MovieClip {
public var light:MovieClip;
}
}//package
Section 55
//Map (Map)
package {
import flash.display.*;
public dynamic class Map extends MovieClip {
public var tyre40:MovieClip;
public var tyre49:MovieClip;
public var tyre43:MovieClip;
public var arrow20:MovieClip;
public var tyre47:MovieClip;
public var arrow12:MovieClip;
public var tyre50:MovieClip;
public var tyre53:MovieClip;
public var tyre54:MovieClip;
public var tyre55:MovieClip;
public var tyre57:MovieClip;
public var tyre58:MovieClip;
public var tyre56:MovieClip;
public var tyre41:MovieClip;
public var tyre59:MovieClip;
public var tyre52:MovieClip;
public var tyre61:MovieClip;
public var tyre62:MovieClip;
public var tyre63:MovieClip;
public var tyre64:MovieClip;
public var tyre65:MovieClip;
public var tyre66:MovieClip;
public var tyre42:MovieClip;
public var tyre67:MovieClip;
public var tyre68:MovieClip;
public var tyre69:MovieClip;
public var tyre71:MovieClip;
public var tyre76:MovieClip;
public var tyre73:MovieClip;
public var tyre74:MovieClip;
public var tyre75:MovieClip;
public var tyre60:MovieClip;
public var tyre72:MovieClip;
public var tyre51:MovieClip;
public var tyre70:MovieClip;
public var sand:MovieClip;
public var banner1:Banner;
public var arrow16:MovieClip;
public var banner0:Banner;
public var n11:MovieClip;
public var n13:MovieClip;
public var n15:MovieClip;
public var n17:MovieClip;
public var n12:MovieClip;
public var n20:MovieClip;
public var n21:MovieClip;
public var n23:MovieClip;
public var n25:MovieClip;
public var n27:MovieClip;
public var n22:MovieClip;
public var n26:MovieClip;
public var n24:MovieClip;
public var blimp:Blimp;
public var n28:MovieClip;
public var n29:MovieClip;
public var arrow0:MovieClip;
public var arrow1:MovieClip;
public var arrow2:MovieClip;
public var n31:MovieClip;
public var n32:MovieClip;
public var n33:MovieClip;
public var n34:MovieClip;
public var n35:MovieClip;
public var track:MovieClip;
public var arrow5:MovieClip;
public var arrow6:MovieClip;
public var arrow7:MovieClip;
public var arrow8:MovieClip;
public var arrow9:MovieClip;
public var n36:MovieClip;
public var n30:MovieClip;
public var barrier2:Barrier;
public var barrier4:Barrier;
public var opp1:MovieClip;
public var opp2:MovieClip;
public var opp3:MovieClip;
public var opp4:MovieClip;
public var barrier1:Barrier;
public var barrier3:Barrier;
public var arrow4:MovieClip;
public var opp0:MovieClip;
public var barrier0:Barrier;
public var n38:MovieClip;
public var arrow3:MovieClip;
public var n37:MovieClip;
public var n1:MovieClip;
public var n8:MovieClip;
public var n9:MovieClip;
public var n6:MovieClip;
public var n4:MovieClip;
public var tyre10:MovieClip;
public var tyre11:MovieClip;
public var tyre12:MovieClip;
public var tyre13:MovieClip;
public var tyre14:MovieClip;
public var tyre15:MovieClip;
public var tyre16:MovieClip;
public var tyre17:MovieClip;
public var lights0:MovieClip;
public var lights4:MovieClip;
public var tyre1:MovieClip;
public var lights1:MovieClip;
public var lights3:MovieClip;
public var tyre28:MovieClip;
public var tyre8:MovieClip;
public var tyre9:MovieClip;
public var tyre2:MovieClip;
public var lights2:MovieClip;
public var tyre29:MovieClip;
public var car:MovieClip;
public var tyre30:MovieClip;
public var tyre31:MovieClip;
public var tyre32:MovieClip;
public var tyre34:MovieClip;
public var tyre35:MovieClip;
public var tyre36:MovieClip;
public var tyre38:MovieClip;
public var tyre37:MovieClip;
public var tyre39:MovieClip;
public var tyre33:MovieClip;
public var arrow10:MovieClip;
public var arrow11:MovieClip;
public var arrow13:MovieClip;
public var arrow15:MovieClip;
public var arrow17:MovieClip;
public var arrow19:MovieClip;
public var arrow14:MovieClip;
public var arrow18:MovieClip;
public var tyre45:MovieClip;
public var tyre46:MovieClip;
public var tyre48:MovieClip;
public var tyre0:MovieClip;
public var tyre44:MovieClip;
}
}//package
Section 56
//MenuLoop (MenuLoop)
package {
import flash.media.*;
public dynamic class MenuLoop extends Sound {
}
}//package
Section 57
//OpponentCar (OpponentCar)
package {
import flash.display.*;
public dynamic class OpponentCar extends MovieClip {
public var clip:MovieClip;
}
}//package
Section 58
//RaceAmbience (RaceAmbience)
package {
import flash.media.*;
public dynamic class RaceAmbience extends Sound {
}
}//package
Section 59
//RaceStart (RaceStart)
package {
import flash.media.*;
public dynamic class RaceStart extends Sound {
}
}//package
Section 60
//Radar (Radar)
package {
import flash.display.*;
public dynamic class Radar extends MovieClip {
}
}//package
Section 61
//RedDot (RedDot)
package {
import flash.display.*;
public dynamic class RedDot extends MovieClip {
public var num:MovieClip;
}
}//package
Section 62
//RollOver (RollOver)
package {
import flash.media.*;
public dynamic class RollOver extends Sound {
}
}//package
Section 63
//Rumble (Rumble)
package {
import flash.media.*;
public dynamic class Rumble extends Sound {
}
}//package
Section 64
//ScoreBar (ScoreBar)
package {
import flash.display.*;
public dynamic class ScoreBar extends MovieClip {
}
}//package
Section 65
//SkidBump (SkidBump)
package {
import flash.media.*;
public dynamic class SkidBump extends Sound {
}
}//package
Section 66
//SkidShort (SkidShort)
package {
import flash.media.*;
public dynamic class SkidShort extends Sound {
}
}//package
Section 67
//SkyBox (SkyBox)
package {
import flash.display.*;
public dynamic class SkyBox extends MovieClip {
}
}//package
Section 68
//TickOver (TickOver)
package {
import flash.media.*;
public dynamic class TickOver extends Sound {
}
}//package
Section 69
//TrackSeg1 (TrackSeg1)
package {
import flash.display.*;
public dynamic class TrackSeg1 extends BitmapData {
public function TrackSeg1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 70
//TrackSeg2 (TrackSeg2)
package {
import flash.display.*;
public dynamic class TrackSeg2 extends BitmapData {
public function TrackSeg2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 71
//Tyre (Tyre)
package {
import flash.display.*;
public dynamic class Tyre extends MovieClip {
public var hit:MovieClip;
}
}//package
Section 72
//WrongWay (WrongWay)
package {
import flash.display.*;
public dynamic class WrongWay extends MovieClip {
}
}//package