Frame 1
fscommand ("showmenu", "false");
fscommand ("trapallkeys", "true");
fscommand ("allowscale", "false");
Frame 14
loadedbytes01 = getBytesLoaded();
totalbytes01 = getBytesTotal();
loadedmovie01 = Math.ceil(loadedbytes01 / 1000) add "Kb";
totalmovie01 = Math.ceil(totalbytes01 / 1000) add "Kb";
percentageloaded01 = Math.ceil((loadedbytes01 / totalbytes01) * 100);
percentageloaded01 = percentageloaded01;
if (((String(totalbytes01) != "") && (totalbytes01 != undefined)) && (totalbytes01 != 0)) {
preloadText01 = (("LOADING... \r" + loadedmovie01) + " of ") + totalmovie01;
}
if (loadedbytes01 == totalbytes01) {
gotoAndPlay (16);
}
Frame 15
gotoAndPlay (14);
Frame 25
gotoAndStop (55);
Frame 55
Object.FLEM = function () {
this._listener_array = [];
};
Object.FLEM.prototype.addFLEMListener = function (obj) {
var a = this._listener_array;
var found = false;
var i = a.length;
while (i--) {
if (a[i] == obj) {
found = true;
break;
}
}
if (found) {
return(false);
}
a[a.length] = obj;
if (this.sendFLEMEvent == undefined) {
this.sendFLEMEvent = this._sendFLEMEvent;
}
return(true);
};
Object.FLEM.prototype.removeFLEMListener = function (obj) {
var a = this._listener_array;
var i = a.length;
while (i--) {
if (a[i] == obj) {
a.splice(i, 1);
break;
}
}
if (a.length == 0) {
this.sendFLEMEvent = undefined;
}
};
Object.FLEM.prototype._sendFLEMEvent = function (func_str, argObj) {
var a = this._listener_array;
var i = a.length;
while (i--) {
if (a[i] != undefined) {
a[i][func_str](argObj);
} else {
a.splice(i, 1);
}
}
};
Object.addStaticFLEM = function (obj) {
if (obj._listener_array == undefined) {
obj._listener_array = [];
obj._sendFLEMEvent = Object.FLEM.prototype._sendFLEMEvent;
obj.addFLEMListener = Object.FLEM.prototype.addFLEMListener;
obj.removeFLEMListener = Object.FLEM.prototype.removeFLEMListener;
}
};
Object.removeStaticFLEM = function (obj) {
delete obj._listener_array;
delete obj._sendFLEMEvent;
delete obj.addFLEMListener;
delete obj.removeFLEMListener;
};
Object.prototype.registerFLEM = function (objects, reg) {
if (objects.__proto__ == Array.prototype) {
var n = objects.length;
var i = 0;
while (i < n) {
if (reg == false) {
objects[i].removeFLEMListener(this);
} else {
objects[i].addFLEMListener(this);
}
i++;
}
}
};
ASSetPropFlags(Object.prototype, ["registerFLEM"], 1);
Object.addStaticFLEM(MovieClip);
soundToggle = "sOn";
game.masterSwitch = true;
stop();
function arrayconvert(instring) {
outarray = (dimarray = new Array());
dim = 1;
d1 = 0;
mylength = instring.length;
i = 2;
while (i < mylength) {
mychar = substring(instring, i, 1);
var _local1 = "[";
switch (mychar) {
case _local1 :
outarray[outarray.length] = (dimarray = new Array());
dim++;
Set("d" add dim, 0);
break;
case "," :
eval ("d" add dim)++;
break;
case "]" :
dim--;
break;
default :
dimarray[eval ("d" add dim)] = dimarray[eval ("d" add dim)] add mychar;
}
i++;
}
numbercrunch(outarray);
return(outarray);
}
function numbercrunch(inarray) {
for (var i in inarray) {
if (!isNaN(Number(inarray[i]))) {
inarray[i] = Number(inarray[i]);
} else if (typeof(inarray[i]) == "object") {
numbercrunch(inarray[i]);
}
}
}
function stringconvert(inarray) {
var outstring = "]";
for (var i in inarray) {
var ptype = inarray[i];
if (typeof(ptype) == "object") {
outstring = stringconvert(ptype) add outstring;
} else {
outstring = String(ptype) add outstring;
}
if (i) {
outstring = "," add outstring;
}
}
outstring = "[" add outstring;
return(outstring);
}
function colldetect(mymap, mytxt) {
var mycoll = new Array();
var myarr = new Array();
i = 1;
while (eval (mytxt add i) ne "") {
myarr[i] = eval (mytxt add i);
i++;
}
mynumcoll = i - 1;
mymapx = mymap[0].length;
i = mymap.length;
while (i--) {
mycoll[i] = new Array();
j = mymapx;
while (j--) {
mycoll[i][j] = 0;
k = mynumcoll;
while (0 < k) {
l = myarr[k].length;
while (0 < l) {
if ((mymap[i][j] == myarr[k][l]) || (((myarr[k][l] == "to") && (myarr[k][l - 1] < mymap[i][j])) && (mymap[i][j] < myarr[k][l + 1]))) {
mycoll[i][j] = k;
}
l--;
}
k--;
}
}
}
return(mycoll);
}
function resetall() {
for (s in game:sprlist) {
MovieClip.removeFLEMListener(game.sprlist[s]);
Object.removeStaticFLEM(game.sprlist[s]);
removeMovieClip(game.sprlist[s].mc);
if (game.sprlist[s].alias != "none") {
delete game.sprlist[s].tl[game.sprlist[s].alias];
}
}
game.sprlist = new Array();
}
function mycoll() {
myx = ((Math.abs(this.sx) < elx) ? ((this.x = this.x + ((mysx = this.sx)))) : ((this.x = this.x + ((elx * Math.abs(this.sx)) / ((mysx = this.sx))))));
myy = ((Math.abs(this.sy) < ely) ? ((this.y = this.y + ((mysy = this.sy)))) : ((this.y = this.y + ((ely * Math.abs(this.sy)) / ((mysy = this.sy))))));
myz = ((Math.abs(this.sz) < elz) ? ((this.z = this.z + ((mysz = this.sz)))) : ((this.z = this.z + ((elz * Math.abs(this.sz)) / ((mysz = this.sz))))));
if (((((((!this.tl.gamectrl.menu) && (netsprite.x < (this.x + this.w))) && (this.x < (netsprite.x + netsprite.w))) && (netsprite.y < (this.y + this.h))) && (this.y < (netsprite.y + netsprite.h))) && (netsprite.z < (this.z + this.d))) && (this.z < (netsprite.z + netsprite.d))) {
mygradx = ((0 < mysx) ? ((myx + this.w) - netsprite.x) : ((myx - netsprite.x) - netsprite.w));
mygrady = ((0 < mysy) ? ((myy + this.h) - netsprite.y) : ((myy - netsprite.y) - netsprite.h));
mygradz = ((0 < mysz) ? ((myz + this.d) - netsprite.z) : ((myz - netsprite.z) - netsprite.d));
mygradx1 = mygradx * mysy;
mygradx2 = mygradx * mysz;
mygrady1 = mygrady * mysx;
mygrady2 = mygrady * mysz;
mygradz1 = mygradz * mysx;
mygradz2 = mygradz * mysy;
if (((0 < mysx) && ((mygrady1 * mysy) >= (mygradx1 * mysy))) && ((mygradz1 * mysz) >= (mygradx2 * mysz))) {
this.x = this.tl.netsprite.x - this.w;
this.sx = (-mysx) * this.tl.netsprite.bnce;
this.nethit = true;
} else if (((mysx < 0) && ((mygradx1 * mysy) >= (mygrady1 * mysy))) && ((mygradx2 * mysz) >= (mygradz1 * mysz))) {
this.x = this.tl.netsprite.x + this.tl.netsprite.w;
this.sx = (-mysx) * this.tl.netsprite.bnce;
this.nethit = true;
}
if (((0 < mysy) && ((mygradx1 * mysx) >= (mygrady1 * mysx))) && ((mygradz2 * mysz) >= (mygrady2 * mysz))) {
this.y = this.tl.netsprite.y - this.h;
this.sy = (-mysy) * this.tl.netsprite.bnce;
this.sx = ((0.3 < Math.abs(mysx)) ? (mysx * this.tl.netsprite.bnce) : (mysx));
this.sz = ((0.3 < Math.abs(mysz)) ? (mysz * this.tl.netsprite.bnce) : (mysz));
this.nethit = true;
} else if (((mysy < 0) && ((mygrady1 * mysx) >= (mygradx1 * mysx))) && ((mygrady2 * mysz) >= (mygradz2 * mysz))) {
this.y = this.tl.netsprite.y + this.tl.netsprite.h;
this.sy = (-mysy) * this.tl.netsprite.bnce;
this.nethit = true;
}
if (((0 < mysz) && ((mygradx2 * mysx) >= (mygradz1 * mysx))) && ((mygrady2 * mysy) >= (mygradz2 * mysy))) {
this.z = this.tl.netsprite.z - this.d;
this.sz = (-mysz) * this.tl.netsprite.bnce;
this.nethit = true;
} else if (((mysz < 0) && ((mygradz1 * mysx) >= (mygradx2 * mysx))) && ((mygradz2 * mysy) >= (mygrady2 * mysy))) {
this.z = this.tl.netsprite.z + this.tl.netsprite.d;
this.sz = (-mysz) * this.tl.netsprite.bnce;
this.nethit = true;
}
}
if (((((((!this.begin) && (tarsprite.x < (this.x + this.w))) && (this.x < (tarsprite.x + tarsprite.w))) && (tarsprite.y < (this.y + this.h))) && (this.y < (tarsprite.y + tarsprite.h))) && ((tarsprite.z - tarsprite.d) < (this.z + this.d))) && (this.z < tarsprite.z)) {
mygradx = ((0 < mysx) ? ((myx + this.w) - tarsprite.x) : ((myx - tarsprite.x) - tarsprite.w));
mygrady = ((0 < mysy) ? ((myy + this.h) - tarsprite.y) : ((myy - tarsprite.y) - tarsprite.h));
mygradz = ((0 < mysz) ? (((myz + this.d) - tarsprite.z) + tarsprite.d) : (myz - tarsprite.z));
mygradx1 = mygradx * mysy;
mygradx2 = mygradx * mysz;
mygrady1 = mygrady * mysx;
mygrady2 = mygrady * mysz;
mygradz1 = mygradz * mysx;
mygradz2 = mygradz * mysy;
if (((0 < mysx) && ((mygrady1 * mysy) >= (mygradx1 * mysy))) && ((mygradz1 * mysz) >= (mygradx2 * mysz))) {
this.x = this.tl.tarsprite.x - this.w;
this.sx = (-mysx) * this.tl.tarsprite.bnce;
} else if (((mysx < 0) && ((mygradx1 * mysy) >= (mygrady1 * mysy))) && ((mygradx2 * mysz) >= (mygradz1 * mysz))) {
this.x = this.tl.tarsprite.x + this.tl.tarsprite.w;
this.sx = (-mysx) * this.tl.tarsprite.bnce;
}
if (((0 < mysy) && ((mygradx1 * mysx) >= (mygrady1 * mysx))) && ((mygradz2 * mysz) >= (mygrady2 * mysz))) {
this.y = this.tl.tarsprite.y - this.h;
this.sy = (-mysy) * this.tl.tarsprite.bnce;
this.sx = ((0.3 < Math.abs(mysx)) ? (mysx * this.tl.tarsprite.bnce) : (mysx));
this.sz = ((0.3 < Math.abs(mysz)) ? (mysz * this.tl.tarsprite.bnce) : (mysz));
} else if (((mysy < 0) && ((mygrady1 * mysx) >= (mygradx1 * mysx))) && ((mygrady2 * mysz) >= (mygradz2 * mysz))) {
this.y = this.tl.tarsprite.y + this.tl.tarsprite.h;
this.sy = (-mysy) * this.tl.tarsprite.bnce;
}
if (((0 < mysz) && ((mygradx2 * mysx) >= (mygradz1 * mysx))) && ((mygrady2 * mysy) >= (mygradz2 * mysy))) {
this.z = (this.tl.tarsprite.z - this.d) - this.tl.tarsprite.d;
this.sz = (-mysz) * this.tl.tarsprite.bnce;
this.nethit = true;
} else if (((mysz < 0) && ((mygradz1 * mysx) >= (mygradx2 * mysx))) && ((mygradz2 * mysy) >= (mygrady2 * mysy))) {
this.z = this.tl.tarsprite.z;
this.sz = (-mysz) * this.tl.tarsprite.bnce;
}
}
}
function myframe() {
this.mframe = this.dmatrix[this.dx + 1][this.dz + 1];
if (this.myserve && (!this.run)) {
tellTarget (this.mc) {
gotoAndStop(this.bounceframe);
};
} else if ((this.sx != 0) || (this.sz != 0)) {
this.move = this.waittime;
this.moving = true;
if (this.mframe) {
tellTarget (this.mc) {
gotoAndStop(this.mframe + 8);
};
}
} else if (this.move) {
if (this.move == this.waittime) {
tellTarget (this.mc) {
if (16 < _currentframe) {
gotoAndStop(this.dmatrix[1][this.direction + 1]);
} else {
gotoAndStop(_currentframe - 8);
}
};
} else if (this.move == 1) {
tellTarget (this.mc) {
gotoAndStop(this.waitframe);
};
}
this.move--;
}
}
function my3dpoint() {
this.vscale = 1;
this.xtrue = this.x * this.vscale;
this.ytrue = (this.y * this.vscale) + (this.z * 0.5);
this.ztrue = this.z;
}
function mydelete() {
MovieClip.removeFLEMListener(this);
Object.removeStaticFLEM(this);
removeMovieClip(this.mc);
if (this.alias != "none") {
delete this.tl[this.alias];
}
for (s in this/tl:sprlist) {
if (this.tl.sprlist[s] == this) {
this.tl.sprlist.splice(s, 1);
break;
}
}
}
function createball() {
this.tl.gamectrl.createspr("shadesprite");
this.tl.gamectrl.createspr("vertline");
this.tl.gamectrl.createspr("ballsprite", this);
this.tl.gamectrl.createspr("batsprite", this);
}
function catchball() {
tellTarget (this.mc) {
gotoAndStop(this.catchframe);
};
this.tl.gamectrl.deletespr("shadesprite");
this.tl.gamectrl.deletespr("vertline");
this.tl.gamectrl.deletespr("ballsprite");
this.tl.gamectrl.deletespr("batsprite");
}
function bounceball() {
this.myshot = false;
this.myspace = false;
this.myframe();
}
function endhit() {
this.myserve = false;
this.mysmash = false;
this.myshot = false;
this.move = 30;
}
function mymover() {
if (this.run || (this.tl.gamectrl.playlock)) {
if (((((this.tics >= this.reflex) && (this.hitable)) || (this.tics >= (this.reflex * 2))) || (this.swap)) || (this.begin)) {
if (this.diffX < 0) {
this.dx = -1;
this.sx = this.sx - this.incrx;
} else {
this.sx = this.sx + this.incrx;
this.dx = 1;
}
if ((Math.abs(this.diffX) < Math.abs((this.x + this.sx) - this.startX)) && (!this.ballhit)) {
this.x = this.startX + this.diffX;
this.dx = 0;
this.sx = 0;
var xlim = 1;
}
if (((!this.tl.gamectrl.begin) || (this.x < 300)) || (this.tl.gamectrl.menu)) {
if (this.diffZ < 0) {
this.dz = -1;
this.sz = this.sz - this.incrz;
} else {
this.dz = 1;
this.sz = this.sz + this.incrz;
}
}
if ((Math.abs(this.diffZ) < Math.abs((this.z + this.sz) - this.startZ)) && (!this.ballhit)) {
this.z = this.startZ + this.diffZ;
this.dz = 0;
this.sz = 0;
var ylim = 1;
}
if (xlim && (ylim)) {
if (this.swap) {
this.swap = false;
this.begin = true;
this.myservesort();
} else if (this.tl.gamectrl.menu) {
this.run = 0;
} else {
this.begin = false;
this.run = 0;
if (!this.tl.gamectrl.playlock) {
if (this.hitable) {
this.myspace = 1;
}
this.hitdist = this.hitdist2;
}
}
}
}
this.tics++;
}
}
function mysetup() {
this.dmatrix = new Array();
this.dmatrix[0] = [2, 1, 8];
this.dmatrix[1] = [3, 0, 7];
this.dmatrix[2] = [4, 5, 6];
if (this.tl.gamectrl.menu) {
this.x = 410;
this.z = 540;
this.direction = 1;
} else {
this.direction = (this.tl.tarsprite.myplayer * 2) - 3;
this.z = this.z - (this.direction * this.d);
}
this.opp = eval ("this.tl.gamectrl.aliasP0" add (3 - this.tl.tarsprite.myplayer));
this.handed = this.dx;
this.swap = false;
this.myservesort();
this.sx = 0;
this.sy = 0;
this.sz = 0;
this.mymover();
this.myframe();
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
}
function myservesort() {
mywayup = this.dmatrix[this.handed + 1][this.direction + 1];
this.serveframe = mywayup + 16;
this.catchframe = mywayup + 24;
this.bounceframe = mywayup + 32;
this.smashframe = mywayup + 40;
this.strokeframe = 48;
this.waitframe = mywayup + 56;
this.winframe = mywayup + 64;
this.loseframe = mywayup + 72;
this.createbat = false;
this.mysmash = false;
this.myshot = false;
this.myspace = false;
this.spacelock = false;
this.bnceg = 0;
this.bncex = 0;
this.bncez = 0;
this.win = 0;
this.die = 0;
this.waittime = 30;
this.begin = true;
this.myserve = ((this.tl.gamectrl.servesprite == this.alias) ? true : false);
this.tics = 0;
this.startX = this.x;
this.startZ = this.z;
this.mybasepos = (this.myserve ? (((this.tl.gamectrl.serveside * 30) + (this.handed * 11)) - 1) : (((this.tl.gamectrl.serveside * (this.tl.courtr - this.tl.courtl)) * 3) / 8));
if (this.tl.gamectrl.menu) {
this.diffX = (80 + (this.tl.tarsprite.myplayer * 55)) - this.x;
this.diffZ = -5;
} else if (this.swap) {
this.diffX = 15 - this.x;
this.diffZ = this.tl.netsprite.z - this.z;
} else {
this.diffX = ((this.tl.courtcentre - (this.direction * this.mybasepos)) - Math.ceil(this.w / 2)) - this.x;
this.diffZ = (this.tl.netsprite.z - (this.direction * this.tl.courtdepth)) - this.z;
}
this.hitable = 0;
this.ballhit = 0;
this.run = 1;
}
function mywin(winner) {
if (winner) {
tellTarget (this.mc) {
gotoAndStop(this.winframe);
};
} else {
tellTarget (this.mc) {
gotoAndStop(this.loseframe);
};
}
}
function mycoll() {
myx = ((Math.abs(this.sx) < elx) ? ((this.x = this.x + ((mysx = this.sx)))) : ((this.x = this.x + ((elx * Math.abs(this.sx)) / ((mysx = this.sx))))));
myy = ((Math.abs(this.sy) < ely) ? ((this.y = this.y + ((mysy = this.sy)))) : ((this.y = this.y + ((ely * Math.abs(this.sy)) / ((mysy = this.sy))))));
myz = ((Math.abs(this.sz) < elz) ? ((this.z = this.z + ((mysz = this.sz)))) : ((this.z = this.z + ((elz * Math.abs(this.sz)) / ((mysz = this.sz))))));
if (((((((!this.tl.gamectrl.menu) && (netsprite.x < (this.x + this.w))) && (this.x < (netsprite.x + netsprite.w))) && (netsprite.y < (this.y + this.h))) && (this.y < (netsprite.y + netsprite.h))) && (netsprite.z < (this.z + this.d))) && (this.z < (netsprite.z + netsprite.d))) {
mygradx = ((0 < mysx) ? ((myx + this.w) - netsprite.x) : ((myx - netsprite.x) - netsprite.w));
mygrady = ((0 < mysy) ? ((myy + this.h) - netsprite.y) : ((myy - netsprite.y) - netsprite.h));
mygradz = ((0 < mysz) ? ((myz + this.d) - netsprite.z) : ((myz - netsprite.z) - netsprite.d));
mygradx1 = mygradx * mysy;
mygradx2 = mygradx * mysz;
mygrady1 = mygrady * mysx;
mygrady2 = mygrady * mysz;
mygradz1 = mygradz * mysx;
mygradz2 = mygradz * mysy;
if (((0 < mysx) && ((mygrady1 * mysy) >= (mygradx1 * mysy))) && ((mygradz1 * mysz) >= (mygradx2 * mysz))) {
this.x = this.tl.netsprite.x - this.w;
this.sx = (-mysx) * this.tl.netsprite.bnce;
this.nethit = true;
} else if (((mysx < 0) && ((mygradx1 * mysy) >= (mygrady1 * mysy))) && ((mygradx2 * mysz) >= (mygradz1 * mysz))) {
this.x = this.tl.netsprite.x + this.tl.netsprite.w;
this.sx = (-mysx) * this.tl.netsprite.bnce;
this.nethit = true;
}
if (((0 < mysy) && ((mygradx1 * mysx) >= (mygrady1 * mysx))) && ((mygradz2 * mysz) >= (mygrady2 * mysz))) {
this.y = this.tl.netsprite.y - this.h;
this.sy = (-mysy) * this.tl.netsprite.bnce;
this.sx = ((0.3 < Math.abs(mysx)) ? (mysx * this.tl.netsprite.bnce) : (mysx));
this.sz = ((0.3 < Math.abs(mysz)) ? (mysz * this.tl.netsprite.bnce) : (mysz));
this.nethit = true;
} else if (((mysy < 0) && ((mygrady1 * mysx) >= (mygradx1 * mysx))) && ((mygrady2 * mysz) >= (mygradz2 * mysz))) {
this.y = this.tl.netsprite.y + this.tl.netsprite.h;
this.sy = (-mysy) * this.tl.netsprite.bnce;
this.nethit = true;
}
if (((0 < mysz) && ((mygradx2 * mysx) >= (mygradz1 * mysx))) && ((mygrady2 * mysy) >= (mygradz2 * mysy))) {
this.z = this.tl.netsprite.z - this.d;
this.sz = (-mysz) * this.tl.netsprite.bnce;
this.nethit = true;
} else if (((mysz < 0) && ((mygradz1 * mysx) >= (mygradx2 * mysx))) && ((mygradz2 * mysy) >= (mygrady2 * mysy))) {
this.z = this.tl.netsprite.z + this.tl.netsprite.d;
this.sz = (-mysz) * this.tl.netsprite.bnce;
this.nethit = true;
}
}
if (((((((!this.begin) && (tarsprite.x < (this.x + this.w))) && (this.x < (tarsprite.x + tarsprite.w))) && (tarsprite.y < (this.y + this.h))) && (this.y < (tarsprite.y + tarsprite.h))) && ((tarsprite.z - tarsprite.d) < (this.z + this.d))) && (this.z < tarsprite.z)) {
mygradx = ((0 < mysx) ? ((myx + this.w) - tarsprite.x) : ((myx - tarsprite.x) - tarsprite.w));
mygrady = ((0 < mysy) ? ((myy + this.h) - tarsprite.y) : ((myy - tarsprite.y) - tarsprite.h));
mygradz = ((0 < mysz) ? (((myz + this.d) - tarsprite.z) + tarsprite.d) : (myz - tarsprite.z));
mygradx1 = mygradx * mysy;
mygradx2 = mygradx * mysz;
mygrady1 = mygrady * mysx;
mygrady2 = mygrady * mysz;
mygradz1 = mygradz * mysx;
mygradz2 = mygradz * mysy;
if (((0 < mysx) && ((mygrady1 * mysy) >= (mygradx1 * mysy))) && ((mygradz1 * mysz) >= (mygradx2 * mysz))) {
this.x = this.tl.tarsprite.x - this.w;
this.sx = (-mysx) * this.tl.tarsprite.bnce;
} else if (((mysx < 0) && ((mygradx1 * mysy) >= (mygrady1 * mysy))) && ((mygradx2 * mysz) >= (mygradz1 * mysz))) {
this.x = this.tl.tarsprite.x + this.tl.tarsprite.w;
this.sx = (-mysx) * this.tl.tarsprite.bnce;
}
if (((0 < mysy) && ((mygradx1 * mysx) >= (mygrady1 * mysx))) && ((mygradz2 * mysz) >= (mygrady2 * mysz))) {
this.y = this.tl.tarsprite.y - this.h;
this.sy = (-mysy) * this.tl.tarsprite.bnce;
this.sx = ((0.3 < Math.abs(mysx)) ? (mysx * this.tl.tarsprite.bnce) : (mysx));
this.sz = ((0.3 < Math.abs(mysz)) ? (mysz * this.tl.tarsprite.bnce) : (mysz));
} else if (((mysy < 0) && ((mygrady1 * mysx) >= (mygradx1 * mysx))) && ((mygrady2 * mysz) >= (mygradz2 * mysz))) {
this.y = this.tl.tarsprite.y + this.tl.tarsprite.h;
this.sy = (-mysy) * this.tl.tarsprite.bnce;
}
if (((0 < mysz) && ((mygradx2 * mysx) >= (mygradz1 * mysx))) && ((mygrady2 * mysy) >= (mygradz2 * mysy))) {
this.z = (this.tl.tarsprite.z - this.d) - this.tl.tarsprite.d;
this.sz = (-mysz) * this.tl.tarsprite.bnce;
this.nethit = true;
} else if (((mysz < 0) && ((mygradz1 * mysx) >= (mygradx2 * mysx))) && ((mygradz2 * mysy) >= (mygrady2 * mysy))) {
this.z = this.tl.tarsprite.z;
this.sz = (-mysz) * this.tl.tarsprite.bnce;
}
}
}
function myframe() {
this.mframe = this.dmatrix[this.dx + 1][this.dz + 1];
if (this.myserve && (!this.run)) {
tellTarget (this.mc) {
gotoAndStop(this.bounceframe);
};
} else if ((this.sx != 0) || (this.sz != 0)) {
this.move = this.waittime;
this.moving = true;
if (this.mframe) {
tellTarget (this.mc) {
gotoAndStop(this.mframe + 8);
};
}
} else if (this.move) {
if (this.move == this.waittime) {
tellTarget (this.mc) {
if (16 < _currentframe) {
gotoAndStop(this.dmatrix[1][this.direction + 1]);
} else {
gotoAndStop(_currentframe - 8);
}
};
} else if (this.move == 1) {
tellTarget (this.mc) {
gotoAndStop(this.waitframe);
};
}
this.move--;
}
}
function my3dpoint() {
this.vscale = 1;
this.xtrue = this.x * this.vscale;
this.ytrue = (this.y * this.vscale) + (this.z * 0.5);
this.ztrue = this.z;
}
function mydelete() {
MovieClip.removeFLEMListener(this);
Object.removeStaticFLEM(this);
removeMovieClip(this.mc);
if (this.alias != "none") {
delete this.tl[this.alias];
}
for (s in this/tl:sprlist) {
if (this.tl.sprlist[s] == this) {
this.tl.sprlist.splice(s, 1);
break;
}
}
}
function createball() {
this.tl.gamectrl.createspr("shadesprite");
this.tl.gamectrl.createspr("vertline");
this.tl.gamectrl.createspr("ballsprite", this);
this.tl.gamectrl.createspr("batsprite", this);
}
function catchball() {
tellTarget (this.mc) {
gotoAndStop(this.catchframe);
};
this.tl.gamectrl.deletespr("shadesprite");
this.tl.gamectrl.deletespr("vertline");
this.tl.gamectrl.deletespr("ballsprite");
this.tl.gamectrl.deletespr("batsprite");
}
function bounceball() {
this.myshot = false;
this.myspace = false;
this.myframe();
}
function endhit() {
this.myserve = false;
this.mysmash = false;
this.myshot = false;
this.move = 30;
}
function mymover() {
if (this.run || (this.tl.gamectrl.playlock)) {
if (((((this.tics >= this.reflex) && (this.hitable)) || (this.tics >= (this.reflex * 2))) || (this.swap)) || (this.begin)) {
if (this.diffX < 0) {
this.dx = -1;
this.sx = this.sx - this.incrx;
} else {
this.sx = this.sx + this.incrx;
this.dx = 1;
}
if ((Math.abs(this.diffX) < Math.abs((this.x + this.sx) - this.startX)) && (!this.ballhit)) {
this.x = this.startX + this.diffX;
this.dx = 0;
this.sx = 0;
var xlim = 1;
}
if (((!this.tl.gamectrl.begin) || (this.x < 300)) || (this.tl.gamectrl.menu)) {
if (this.diffZ < 0) {
this.dz = -1;
this.sz = this.sz - this.incrz;
} else {
this.dz = 1;
this.sz = this.sz + this.incrz;
}
}
if ((Math.abs(this.diffZ) < Math.abs((this.z + this.sz) - this.startZ)) && (!this.ballhit)) {
this.z = this.startZ + this.diffZ;
this.dz = 0;
this.sz = 0;
var ylim = 1;
}
if (xlim && (ylim)) {
if (this.swap) {
this.swap = false;
this.begin = true;
this.myservesort();
} else if (this.tl.gamectrl.menu) {
this.run = 0;
} else {
this.begin = false;
this.run = 0;
if (!this.tl.gamectrl.playlock) {
if (this.hitable) {
this.myspace = 1;
}
this.hitdist = this.hitdist2;
}
}
}
}
this.tics++;
}
}
function mysetup() {
this.dmatrix = new Array();
this.dmatrix[0] = [2, 1, 8];
this.dmatrix[1] = [3, 0, 7];
this.dmatrix[2] = [4, 5, 6];
if (this.tl.gamectrl.menu) {
this.x = 410;
this.z = 540;
this.direction = 1;
} else {
this.direction = (this.tl.tarsprite.myplayer * 2) - 3;
this.z = this.z - (this.direction * this.d);
}
this.opp = eval ("this.tl.gamectrl.aliasP0" add (3 - this.tl.tarsprite.myplayer));
this.handed = this.dx;
this.swap = false;
this.myservesort();
this.sx = 0;
this.sy = 0;
this.sz = 0;
this.mymover();
this.myframe();
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
}
function myservesort() {
mywayup = this.dmatrix[this.handed + 1][this.direction + 1];
this.serveframe = mywayup + 16;
this.catchframe = mywayup + 24;
this.bounceframe = mywayup + 32;
this.smashframe = mywayup + 40;
this.strokeframe = 48;
this.waitframe = mywayup + 56;
this.winframe = mywayup + 64;
this.loseframe = mywayup + 72;
this.createbat = false;
this.mysmash = false;
this.myshot = false;
this.myspace = false;
this.spacelock = false;
this.bnceg = 0;
this.bncex = 0;
this.bncez = 0;
this.win = 0;
this.die = 0;
this.waittime = 30;
this.begin = true;
this.myserve = ((this.tl.gamectrl.servesprite == this.alias) ? true : false);
this.tics = 0;
this.startX = this.x;
this.startZ = this.z;
this.mybasepos = (this.myserve ? (((this.tl.gamectrl.serveside * 30) + (this.handed * 11)) - 1) : (((this.tl.gamectrl.serveside * (this.tl.courtr - this.tl.courtl)) * 3) / 8));
if (this.tl.gamectrl.menu) {
this.diffX = (80 + (this.tl.tarsprite.myplayer * 55)) - this.x;
this.diffZ = -5;
} else if (this.swap) {
this.diffX = 15 - this.x;
this.diffZ = this.tl.netsprite.z - this.z;
} else {
this.diffX = ((this.tl.courtcentre - (this.direction * this.mybasepos)) - Math.ceil(this.w / 2)) - this.x;
this.diffZ = (this.tl.netsprite.z - (this.direction * this.tl.courtdepth)) - this.z;
}
this.hitable = 0;
this.ballhit = 0;
this.run = 1;
}
function mywin(winner) {
if (winner) {
tellTarget (this.mc) {
gotoAndStop(this.winframe);
};
} else {
tellTarget (this.mc) {
gotoAndStop(this.loseframe);
};
}
}
var loadAudio = true;
var soundToggle = "sOn";
Preloader = function (loadQue, frame) {
this.loadQue = loadQue;
this.frame = frame;
this.path = "http://news.bbc.co.uk/sol/shared/spl/hi/tennis/03/game/";
this.toLoad = (this.totalLoad = this.loadQue.length);
this.queUp();
};
Preloader.prototype.queUp = function () {
if (this.loadQue.length != 0) {
_root.loadbox.attachMovie("loadline", "loadline" add this.toLoad, this.toLoad + 10);
tellTarget ("_root.loadbox.loadline" add this.toLoad) {
_x = (178 - Math.round((176 * this.toLoad) / this.totalLoad));
_xscale = ((1 < this.toLoad) ? ((Math.round((176 * this.toLoad) / this.totalLoad) - Math.round((176 * (this.toLoad - 1)) / this.totalLoad)) - 1) : (Math.round((176 * this.toLoad) / this.totalLoad)));
};
this.loadtype = this.loadQue[0][0].substr(-3);
if (this.loadtype == "swf") {
_root.game.map.attachMovie("blank", this.loadQue[0][1], this.toLoad * 20);
this.curLoad = eval ("_root.game.map." add this.loadQue[0][1]);
this.curLoad.loadMovie(this.path add this.loadQue[0][0]);
} else if (this.loadtype == "txt") {
_root.attachMovie("blank", this.loadQue[0][1], this.toLoad * 20);
this.curLoad = eval ("_root." add this.loadQue[0][1]);
this.curLoad.loadVariables(this.path add this.loadQue[0][0]);
this.curLoad.end = "false";
}
if (this.loadQue[0][1] == "sound") {
_root.soundLoadBtn._visible = 1;
} else {
_root.soundLoadBtn._visible = 0;
}
MovieClip.addFLEMListener(this);
} else {
_root.gotoAndStop(this.frame);
}
};
Preloader.prototype.onEnterFrame = function () {
if (this.loadtype == "swf") {
ldBytes = this.curLoad.getBytesLoaded();
tlBytes = this.curLoad.getBytesTotal();
if (((String(tlBytes) != "") && (tlBytes != undefined)) && (tlBytes != 0)) {
ldedMov = Math.ceil(ldBytes / 1000) add "Kb";
tlMov = Math.ceil(tlBytes / 1000) add "Kb";
percLd = Math.ceil((ldBytes / tlBytes) * 100);
_root.preloadText = (((("LOADING " add this.loadQue[0][2]) add newline) add ldedMov) add " of ") add tlMov;
if (ldBytes == tlBytes) {
this.endLoad();
}
} else {
_root.preloadText = "LOADING " add this.loadQue[0][2];
}
} else if (this.loadtype == "txt") {
_root.preloadText = (("LOADING " add this.loadQue[0][2]) add newline) add "PLEASE WAIT...";
if (this.curLoad.end == "true") {
this.endLoad();
}
}
};
Preloader.prototype.endLoad = function () {
MovieClip.removeFLEMListener(this);
this.loadQue.shift();
this.toLoad--;
this.queUp();
};
spriteObj = function (mysprite, mycreator) {
this.tl = _root.game;
this.creator = mycreator;
this.depth = 0;
this.myobject = _root.myobjarr[mysprite[0]];
while (eval ((("_root.game.map." add game.swfs[mysprite[2]]) add ".s") add this.depth) != undefined) {
this.depth++;
}
this.mc = (("/game/map/" add game.swfs[mysprite[2]]) add "/s") add this.depth;
this.sprite = eval (("game.map." add game.swfs[mysprite[2]]) add ".mylinks")[mysprite[1]];
this.x = mysprite[3];
this.y = mysprite[4];
this.z = mysprite[5];
this.sx = mysprite[6];
this.sy = mysprite[7];
this.sz = mysprite[8];
this.w = eval (("game.map." add game.swfs[mysprite[2]]) add ".myw")[mysprite[1]];
this.h = eval (("game.map." add game.swfs[mysprite[2]]) add ".myh")[mysprite[1]];
this.d = eval (("game.map." add game.swfs[mysprite[2]]) add ".myd")[mysprite[1]];
this.grav = mysprite[9];
this.drag = mysprite[10];
this.incrx = mysprite[11];
this.incrz = mysprite[12];
this.dx = ((this.sx == 0) ? 0 : (Math.abs(this.sx) / this.sx));
this.dy = ((this.sy == 0) ? 0 : (Math.abs(this.sy) / this.sy));
this.dz = ((this.sz == 0) ? 0 : (Math.abs(this.sz) / this.sz));
this.move = 0;
this.frame = 1;
this.j = mysprite[13];
this.jmax = mysprite[13];
this.jincr = mysprite[14];
this.bnce = mysprite[15];
this.power = mysprite[16];
this.shot = mysprite[17];
this.reflex = mysprite[18];
eval ("game.map." add game.swfs[mysprite[2]]).attachMovie(this.sprite, "s" add this.depth, this.tl.sprlist.length + 1);
this.moving = false;
this.alias = mysprite[20];
if (this.alias != "none") {
Set("game." add this.alias, this);
}
tellTarget (this.mc) {
myobject = this;
};
Object.addStaticFLEM(this);
this.addFLEMListener(game.gamectrl);
this.inherit(eval (this.myobject));
};
spriteObj.prototype.inherit = function (superClass) {
this.__proto__ = superClass.prototype;
this.temp = superClass;
this.temp();
delete this.temp;
};
gamectrl = function (mymenu) {
this.menu = mymenu;
this.tl = _root.game;
this.tl.masterSwitch = true;
this.tl.sprlist = new Array();
this.tl._alpha = 100;
if (this.menu) {
this.aliasP01 = "bobshakey";
this.aliasP02 = "bobjohn";
this.aliasP03 = "bobvictoria";
this.aliasP04 = "bobwinston";
this.playlock = (this.playtime = 300);
} else {
this.aliasP01 = ((_root.theGame != undefined) ? (_root.theGame.aliasP01[0] add _root.theGame.characters[_root.theGame.aliasP01[1]]) : "bobjohn");
this.aliasP02 = ((_root.theGame != undefined) ? (_root.theGame.aliasP02[0] add _root.theGame.characters[_root.theGame.aliasP02[1]]) : "oppwinston");
this.playlock = (this.playtime = 60);
}
this.servesprite = this.aliasP01;
this.begin = true;
this.serveside = 1;
this.servenum = 1;
this.gamenum = 0;
this.timer = new timer();
this.pause(0, "start");
MovieClip.addFLEMListener(this);
};
gamectrl.prototype.order = function (value1, value2) {
name1 = value1.ztrue;
name2 = value2.ztrue;
if (name1 < name2) {
return(-1);
}
if (name2 < name1) {
return(1);
}
return(0);
};
gamectrl.prototype.onBounce = function (mybounce) {
this.createspr("bncesprite");
_root.game.map.sound.ballbounce01.startAud(1);
if ((mybounce == "out") || (mybounce == "end")) {
for (s in sprlist) {
if ((sprlist[s].alias == this.aliasP01) || (sprlist[s].alias == this.aliasP02)) {
eval (sprlist[s].mc).gotoAndStop((sprlist[s].direction * 2) + 5);
MovieClip.removeFLEMListener(sprlist[s]);
} else if (sprlist[s].alias == "batsprite") {
MovieClip.removeFLEMListener(sprlist[s]);
}
}
}
if (mybounce == "in") {
if (this.tl.ballsprite.myserve && (this.tl.ballsprite.nethit)) {
for (s in sprlist) {
sprlist[s].removeFLEMListener(this);
}
_root.theGame.alert("let" add this.servenum);
this.pause(1000, "pointwon");
}
} else if (mybounce == "out") {
if ((!this.tl.ballsprite.myserve) || (this.servenum != 1)) {
this.servenum = 1;
} else {
this.servenum = 2;
}
this.tl.ballsprite.myserve = false;
if (this.tl.ballsprite.nethit) {
_root.theGame.alert("net");
} else {
_root.theGame.alert("out");
}
for (s in sprlist) {
sprlist[s].removeFLEMListener(this);
}
this.ptwinner = this.tl.ballsprite.creator.opp;
this.ptloser = this.tl.ballsprite.creator.alias;
_root.theGame.sTrig(this.tl.ballsprite.creator.alias, "_lose");
this.pause(1500, "pointwon");
} else if (mybounce == "end") {
for (s in sprlist) {
sprlist[s].removeFLEMListener(this);
}
this.ptwinner = this.tl.ballsprite.creator.alias;
this.ptloser = this.tl.ballsprite.creator.opp;
_root.theGame.sTrig(this.tl.ballsprite.creator.alias, "_win");
this.servenum = 1;
this.pause(1500, "pointwon");
}
};
gamectrl.prototype.createspr = function (myalias, mycreator) {
myindex = this.tl.sprlist.length;
for (s in this/tl:spritearr) {
if (this.tl.spritearr[s][20] == myalias) {
this.tl.sprlist[myindex] = new _root.spriteObj(this.tl.spritearr[s], mycreator);
}
}
MovieClip.addFLEMListener(this.tl.sprlist[myindex]);
};
gamectrl.prototype.deletespr = function (myalias) {
for (s in this/tl:sprlist) {
if (this.tl.sprlist[s].alias == myalias) {
this.tl.sprlist[s].mydelete();
}
}
};
gamectrl.prototype.doaction = function (myaction) {
this.timer.removeFLEMListener(this);
if (myaction == "die") {
s = sprlist.length;
while (s--) {
if (sprlist[s].sprite != "bob") {
MovieClip.removeFLEMListener(sprlist[s]);
mymc = sprlist[s].mc;
tellTarget (mymc add "/move") {
stop();
};
}
}
} else if (myaction == "start") {
_root.resetall();
if (this.menu) {
for (s in spritearr) {
if (spritearr[s][20] == "tarsprite") {
sprlist[sprlist.length] = new _root.spriteObj(spritearr[s]);
}
}
} else {
for (s in spritearr) {
if (spritearr[s][19]) {
sprlist[sprlist.length] = new _root.spriteObj(spritearr[s]);
}
}
}
this.pause(1500, "go");
} else if (myaction == "pointwon") {
this.begin = false;
if ((this.servenum == 1) && ((!this.tl.ballsprite.nethit) || (!this.tl.ballsprite.myserve))) {
_root.theGame.score(this.ptwinner, this.servesprite);
this.serveside = -this.serveside;
}
if (_root.theGame.gamestatus == "game") {
this.gamenum++;
if (Math.floor((this.gamenum - 1) / 2) == ((this.gamenum - 1) / 2)) {
this.tl[this.aliasP01].direction = -this.tl[this.aliasP01].direction;
this.tl[this.aliasP02].direction = -this.tl[this.aliasP02].direction;
this.tl[this.aliasP01].swap = true;
this.tl[this.aliasP02].swap = true;
}
this.serveside = 1;
this.servesprite = ((this.servesprite == this.aliasP01) ? (this.aliasP02) : (this.aliasP01));
if (this.servesprite == this.aliasP02) {
_root.scoreBd.server.gotoAndStop(12);
} else {
_root.scoreBd.server.gotoAndStop(1);
}
this.begin = true;
}
if (_root.theGame.gamestatus == "match") {
this.tl[this.ptwinner].mywin(true);
this.tl[this.ptloser].mywin(false);
} else {
if ((this.tl[this.aliasP01].direction * this.tl.netsprite.z) < (this.tl[this.aliasP01].direction * this.tl[this.aliasP01].z)) {
this.tl[this.aliasP01].swap = true;
}
if ((this.tl[this.aliasP02].direction * this.tl.netsprite.z) < (this.tl[this.aliasP02].direction * this.tl[this.aliasP02].z)) {
this.tl[this.aliasP02].swap = true;
}
this.tl[this.aliasP01].myservesort();
this.tl[this.aliasP02].myservesort();
this.tl.shadesprite.mydelete();
this.tl.ballsprite.mydelete();
this.tl.vertline.mydelete();
for (s in sprlist) {
sprlist[s].addFLEMListener(this);
}
this.playlock = (this.begin ? ((this.playtime = 60)) : ((this.playtime = 30)));
this.pause(0, "go");
}
} else if (myaction == "go") {
for (s in sprlist) {
MovieClip.addFLEMListener(sprlist[s]);
}
}
};
gamectrl.prototype.onEnterFrame = function () {
sprlist.sort(this.order);
for (s in sprlist) {
eval (sprlist[s].mc).swapDepths(Number(s));
}
if ((this.menu && (this.tl[this.aliasP04] != undefined)) && (!this.tl[this.aliasP04].run)) {
if (this.playlock < 0) {
_root.resetall();
_root.menuloop.gotoAndPlay(1);
} else if (100 >= this.playlock) {
this.tl._alpha = this.playlock;
}
this.playlock--;
} else if ((((((!this.menu) && (this.playlock)) && (this.tl[this.aliasP01] != undefined)) && (!this.tl[this.aliasP01].run)) && (this.tl[this.aliasP02] != undefined)) && (!this.tl[this.aliasP02].run)) {
if (this.playlock == this.playtime) {
if (this.begin) {
if (_root.theGame.demotime) {
_root.theGame.alert("playGame");
} else {
_root.theGame.alert("demoGame");
}
} else {
_root.theGame.alert("reset");
}
}
this.playlock--;
}
};
gamectrl.prototype.pauseSwitch = function () {
this.tl.masterSwitch = !this.tl.masterSwitch;
if (this.tl.masterSwitch) {
for (s in this/tl:sprlist) {
if (this.tl.sprlist[s].moving) {
eval (this.tl.sprlist[s].mc).move.play();
}
}
_root.theGame.alert("reset");
} else {
for (s in this/tl:sprlist) {
if (this.tl.sprlist[s].moving) {
eval (this.tl.sprlist[s].mc).move.stop();
}
}
_root.theGame.alert("paused");
}
};
gamectrl.prototype.pause = function (mylength, myaction) {
this.timer.myaction = myaction;
this.timer.mylength = mylength;
this.timer.mystart = getTimer();
this.timer.addFLEMListener(this);
};
timer = function () {
this.base = Object.FLEM;
this.base();
delete this.base;
MovieClip.addFLEMListener(this);
};
timer.prototype.__proto__ = Object.FLEM.prototype;
timer.prototype.onEnterFrame = function () {
if ((getTimer() - this.mystart) >= this.mylength) {
this.sendFLEMEvent("doaction", this.myaction);
}
};
myobjarr = ["bob", "net", "ball", "ballshade", "ballbnce", "bat", "oppnt", "tardis", "vertline"];
spriteObj = function (mysprite, mycreator) {
this.tl = _root.game;
this.creator = mycreator;
this.depth = 0;
this.myobject = _root.myobjarr[mysprite[0]];
while (eval ((("_root.game.map." add game.swfs[mysprite[2]]) add ".s") add this.depth) != undefined) {
this.depth++;
}
this.mc = (("/game/map/" add game.swfs[mysprite[2]]) add "/s") add this.depth;
this.sprite = eval (("game.map." add game.swfs[mysprite[2]]) add ".mylinks")[mysprite[1]];
this.x = mysprite[3];
this.y = mysprite[4];
this.z = mysprite[5];
this.sx = mysprite[6];
this.sy = mysprite[7];
this.sz = mysprite[8];
this.w = eval (("game.map." add game.swfs[mysprite[2]]) add ".myw")[mysprite[1]];
this.h = eval (("game.map." add game.swfs[mysprite[2]]) add ".myh")[mysprite[1]];
this.d = eval (("game.map." add game.swfs[mysprite[2]]) add ".myd")[mysprite[1]];
this.grav = mysprite[9];
this.drag = mysprite[10];
this.incrx = mysprite[11];
this.incrz = mysprite[12];
this.dx = ((this.sx == 0) ? 0 : (Math.abs(this.sx) / this.sx));
this.dy = ((this.sy == 0) ? 0 : (Math.abs(this.sy) / this.sy));
this.dz = ((this.sz == 0) ? 0 : (Math.abs(this.sz) / this.sz));
this.move = 0;
this.frame = 1;
this.j = mysprite[13];
this.jmax = mysprite[13];
this.jincr = mysprite[14];
this.bnce = mysprite[15];
this.power = mysprite[16];
this.shot = mysprite[17];
this.reflex = mysprite[18];
eval ("game.map." add game.swfs[mysprite[2]]).attachMovie(this.sprite, "s" add this.depth, this.tl.sprlist.length + 1);
this.moving = false;
this.alias = mysprite[20];
if (this.alias != "none") {
Set("game." add this.alias, this);
}
tellTarget (this.mc) {
myobject = this;
};
Object.addStaticFLEM(this);
this.addFLEMListener(game.gamectrl);
this.inherit(eval (this.myobject));
};
spriteObj.prototype.inherit = function (superClass) {
this.__proto__ = superClass.prototype;
this.temp = superClass;
this.temp();
delete this.temp;
};
bob = function () {
this.mysetup();
this.dxdelay = 0;
this.dzdelay = 0;
};
bob.prototype.mysetup = mysetup;
bob.prototype.myservesort = myservesort;
bob.prototype.mymover = mymover;
bob.prototype.myctrl = function () {
if (Key.isDown(38) || (Key.isDown(69))) {
this.dz = -1;
this.dzdelay = -1;
this.dztimer = 3;
if ((!this.myshot) && (!this.myserve)) {
this.sz = this.sz - this.incrz;
}
} else if (Key.isDown(40) || (Key.isDown(68))) {
this.dz = 1;
this.dzdelay = 1;
this.dztimer = 3;
if ((!this.myshot) && (!this.myserve)) {
this.sz = this.sz + this.incrz;
}
} else {
this.dz = 0;
}
if (Key.isDown(37) || (Key.isDown(89))) {
this.dx = -1;
this.dxdelay = -1;
this.dxtimer = 3;
if ((!this.myshot) && (!this.myserve)) {
this.sx = this.sx - this.incrx;
}
} else if (Key.isDown(39) || (Key.isDown(85))) {
this.dx = 1;
this.dxdelay = 1;
this.dxtimer = 3;
if ((!this.myshot) && (!this.myserve)) {
this.sx = this.sx + this.incrx;
}
} else {
this.dx = 0;
}
if (Key.isDown(32) && (!this.spacelock)) {
this.spacelock = true;
this.myspace = true;
} else if ((!Key.isDown(32)) && (this.spacelock)) {
this.spacelock = false;
this.myspace = false;
}
if (this.dxdelay && (this.dxtimer)) {
this.dxtimer--;
if (!this.dxtimer) {
this.dxdelay = 0;
}
}
if (this.dzdelay && (this.dztimer)) {
this.dztimer--;
if (!this.dztimer) {
this.dzdelay = 0;
}
}
if (this.hitable) {
this.hitdist = 0;
if ((this.tl.ballsprite.z < ((this.z + this.d) + this.hitdist)) && ((this.z - this.hitdist) < (this.tl.ballsprite.z + this.tl.ballsprite.d))) {
this.myspace = 0;
this.hitable = 0;
}
}
};
bob.prototype.mycoll = mycoll;
bob.prototype.myframe = myframe;
bob.prototype.my3dpoint = my3dpoint;
bob.prototype.mydie = function () {
tellTarget (this.mc) {
gotoAndStop(this.dmatrix[this.dx + 1][this.dz + 1] + 16);
};
this.end = getProperty(this.mc add "/move", _totalframes);
this.die = 1;
this.sendFLEMEvent("onHit", this);
};
bob.prototype.createball = createball;
bob.prototype.catchball = catchball;
bob.prototype.bounceball = bounceball;
bob.prototype.setTarget = function (startBallX, startBallZ, BallTime) {
this.startBallX = startBallX;
this.startBallZ = startBallZ;
this.startBallSZ = this.tl.ballsprite.sz;
this.myshot = 0;
this.hitable = 1;
};
bob.prototype.starthit = function () {
this.ballhit = 8;
this.moving = true;
};
bob.prototype.endhit = endhit;
bob.prototype.mydelete = mydelete;
bob.prototype.mywin = mywin;
bob.prototype.onEnterFrame = function () {
if (this.tl.gamectrl.playlock) {
this.mymover();
this.myframe();
this.mycoll();
} else {
this.myctrl();
if (!this.myshot) {
this.myframe();
this.mycoll();
if (this.myspace) {
this.createbat = true;
this.myshot = true;
if (this.bnceg) {
mydrag = 1 - this.tl.ballsprite.drag;
mygrav = this.tl.ballsprite.grav;
timediff = Math.log(this.tl.ballsprite.sz / (this.tl.ballsprite.sz - (mydrag * (this.z - this.tl.ballsprite.z)))) / mydrag;
this.mysmash = ((((((mygrav * timediff) / mydrag) + (((this.tl.ballsprite.sy - (mygrav / mydrag)) * (1 - Math.pow(Math.E, (-mydrag) * timediff))) / mydrag)) + this.tl.ballsprite.y) < -40) ? true : false);
}
if (this.myserve) {
tellTarget (this.mc) {
gotoAndStop(this.serveframe);
};
} else if (this.mysmash) {
tellTarget (this.mc) {
gotoAndStop(this.smashframe);
};
this.tl.gamectrl.createspr("batsprite", this);
} else {
if (this.bnceg) {
this.bnceside = ((((this.bnceg * ((this.x + (this.w / 2)) - this.bncex)) + this.bncez) < this.z) ? (Math.abs(this.bnceg) / this.bnceg) : ((-Math.abs(this.bnceg)) / this.bnceg));
this.tl.gamectrl.createspr("batsprite", this);
} else {
this.bnceside = this.handed * this.direction;
}
tellTarget (this.mc) {
gotoAndStop(this.dmatrix[this.bnceside + 1][this.direction + 1] + this.strokeframe);
};
}
}
} else if (!this.myspace) {
tellTarget (this.mc add "/move") {
play();
};
}
if (this.ballhit) {
this.ballhit--;
}
if (this.x < mapl) {
this.x = mapl;
}
if (mapr < (this.x + this.w)) {
this.x = mapr - this.w;
}
if ((this.z - this.d) < mapt) {
this.z = mapt + this.d;
}
if (mapb < this.z) {
this.z = mapb;
}
}
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
this.sx = ((0.6 < Math.abs(this.sx)) ? (this.sx * this.drag) : 0);
this.sy = ((0.6 < Math.abs(this.sy)) ? (this.sy * this.drag) : 0);
this.sz = ((0.6 < Math.abs(this.sz)) ? (this.sz * this.drag) : 0);
};
net = function () {
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
};
net.prototype.mydelete = mydelete;
net.prototype.my3dpoint = my3dpoint;
net.prototype.onEnterFrame = function () {
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
};
ball = function () {
this.x = (Math.ceil(this.creator.x + (this.creator.w / 2)) + (this.creator.direction * ((this.creator.handed * 11) - 1))) - (this.w / 2);
this.y = -20;
this.z = this.creator.z + this.creator.direction;
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
this.ballhit = false;
this.myserve = false;
this.nethit = false;
};
ball.prototype.myctrl = function () {
if ((((-27 < this.y) && (this.creator.myserve)) && (!this.ballhit)) && (0 < this.sy)) {
this.creator.catchball();
}
};
ball.prototype.mycoll = mycoll;
ball.prototype.mydelete = mydelete;
ball.prototype.my3dpoint = my3dpoint;
ball.prototype.onEnterFrame = function () {
this.myctrl();
this.mycoll();
if (0 < (this.y + this.h)) {
this.x = this.x - (((this.y + this.h) * this.sx) / this.sy);
this.z = this.z - (((this.y + this.h) * this.sz) / this.sy);
this.y = -this.h;
this.sy = (-this.sy) * this.bnce;
if (this.ballhit) {
if (this.myserve) {
if ((((((this.creator.direction * this.tl.netsprite.z) < (this.creator.direction * this.z)) && (servel < (this.x + (this.w / 2)))) && ((this.x + (this.w / 2)) < server)) && (servet < (this.z - (this.d / 2)))) && ((this.z - (this.d / 2)) < serveb)) {
this.sendFLEMEvent("onBounce", "in");
} else {
this.sendFLEMEvent("onBounce", "out");
}
} else if ((((((this.creator.direction * this.tl.netsprite.z) < (this.creator.direction * this.z)) && (courtl < (this.x + (this.w / 2)))) && ((this.x + (this.w / 2)) < courtr)) && (courtt < (this.z - (this.d / 2)))) && ((this.z - (this.d / 2)) < courtb)) {
this.sendFLEMEvent("onBounce", "in");
} else {
this.sendFLEMEvent("onBounce", "out");
}
} else {
this.sendFLEMEvent("onBounce", "end");
}
this.ballhit = false;
}
if (this.x < mapl) {
this.x = mapl;
this.sx = (-this.sx) * 0.3;
}
if (mapr < (this.x + this.w)) {
this.x = mapr - this.w;
this.sx = (-this.sx) * 0.3;
}
if ((this.z - this.d) < mapt) {
this.z = mapt + this.d;
this.sz = (-this.sz) * 0.3;
}
if (mapb < this.z) {
this.z = mapb;
this.sz = (-this.sz) * 0.3;
}
this.sy = this.sy + this.grav;
this.sx = ((0.01 < Math.abs(this.sx)) ? (this.sx * this.drag) : 0);
this.sy = ((0.01 < Math.abs(this.sy)) ? (this.sy * this.drag) : 0);
this.sz = ((0.01 < Math.abs(this.sz)) ? (this.sz * this.drag) : 0);
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
};
ballshade = function () {
this.myctrl();
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
};
ballshade.prototype.myctrl = function () {
this.x = this.tl.ballsprite.x - (this.tl.ballsprite.y + this.tl.ballsprite.h);
this.y = 0;
this.z = (this.tl.ballsprite.z - this.d) - ((this.tl.ballsprite.y + this.tl.ballsprite.h) * 0.5);
};
ballshade.prototype.mydelete = mydelete;
ballshade.prototype.my3dpoint = my3dpoint;
ballshade.prototype.onEnterFrame = function () {
this.myctrl();
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
};
ballbnce = function () {
this.myctrl();
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
this.mylife = 30;
};
ballbnce.prototype.myctrl = function () {
this.x = this.tl.ballsprite.x;
this.y = 0;
this.z = this.tl.ballsprite.z - this.d;
};
ballbnce.prototype.mydelete = mydelete;
ballbnce.prototype.my3dpoint = my3dpoint;
ballbnce.prototype.onEnterFrame = function () {
this.my3dpoint();
if (!(this.mylife--)) {
this.mydelete();
}
};
bat = function () {
this.receiver = this.tl[this.creator.opp];
myballw = this.tl.ballsprite.w;
myballh = this.tl.ballsprite.h;
myballd = this.tl.ballsprite.d;
if (this.creator.myserve) {
this.xrad = 100;
this.yrad = 200;
this.power = this.creator.power / 100;
this.rpow = 12 * this.power;
this.iadd = (this.creator.direction * Math.pow(this.power, 2)) * 15;
this.rw = 20;
this.rh = 70;
this.rd = 6;
this.rx = (Math.ceil(this.creator.x + (this.creator.w / 2)) + (this.creator.direction * ((this.creator.handed * 11) - 1))) - (this.rw / 2);
this.ry = -90;
this.rz = this.creator.z;
} else if (this.creator.mysmash) {
this.xrad = 100;
this.yrad = -200;
this.power = this.creator.power / 100;
this.rpow = 12 * this.power;
this.iadd = (Math.atan(55 / ((this.tl.netsprite.z + (((this.tl.courtb - this.tl.courtt) * this.creator.direction) / 4)) - this.creator.z)) * 60) / Math.PI;
this.rw = 50;
this.rh = 70;
this.rd = 20;
this.rx = (Math.ceil(this.creator.x + (this.creator.w / 2)) + (this.creator.direction * ((this.creator.handed * 11) - 1))) - (this.rw / 2);
this.ry = -90;
this.rz = this.creator.z;
} else {
this.xrad = 150;
this.yrad = -150;
this.power = this.creator.power / 100;
this.rpow = 10 * this.power;
this.iadd = (((this.creator.z - this.tl.netsprite.z) * 0.03) / Math.pow(this.power, 2)) - (this.creator.direction * 1);
this.rw = 50;
this.rh = 40;
this.rd = 20;
this.rx = (((this.creator.x + (this.creator.w / 2)) + ((this.creator.direction * this.creator.handed) * 3)) + (this.creator.bnceside * (5 + (this.creator.w / 2)))) - (this.rw / 2);
this.ry = -40;
this.rz = this.creator.z;
}
this.mylife = 100;
this.ianglex = 0;
this.iangley = 0;
setProperty(this.mc, _visible , false);
this.myctrl();
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
};
bat.prototype.mydelete = mydelete;
bat.prototype.my3dpoint = my3dpoint;
bat.prototype.myctrl = function () {
myballx = this.tl.ballsprite.x + this.tl.ballsprite.sx;
mybally = this.tl.ballsprite.y + this.tl.ballsprite.sy;
myballz = this.tl.ballsprite.z + this.tl.ballsprite.sz;
myballsx = this.tl.ballsprite.sx;
myballsy = this.tl.ballsprite.sy;
myballsz = this.tl.ballsprite.sz;
myballw = this.tl.ballsprite.w;
myballh = this.tl.ballsprite.h;
myballd = this.tl.ballsprite.d;
myz = ((0 < this.creator.direction) ? (this.rz + ((this.rd + myballd) / 2)) : (this.rz - ((this.rd + myballd) / 2)));
myx = (myballsz ? (myballx + (((myz - myballz) * myballsx) / myballsz)) : (myballx));
myy = (myballsz ? (mybally + (((myz - myballz) * myballsy) / myballsz)) : (mybally));
ellipsew = (((((myx + (myballw / 2)) - this.rx) - (this.rw / 2)) != 0) ? (Math.pow((2 * (((myx + (myballw / 2)) - this.rx) - (this.rw / 2))) / (myballw + this.rw), 2)) : 0);
ellipseh = (((((myy + (myballh / 2)) - this.ry) - (this.rh / 2)) != 0) ? (Math.pow((2 * (((myy + (myballh / 2)) - this.ry) - (this.rh / 2))) / (myballh + this.rh), 2)) : 0);
if (((ellipsew + ellipseh) < 1) && (Math.abs(this.rz - myballz) < ((this.rd + myballd) / 2))) {
if (this.creator.myserve) {
setProperty(this.mc, _visible , true);
}
myrad = (Math.PI/180);
mydiffx = (((this.rx + (this.rw / 2)) - myx) - (myballw / 2)) / this.xrad;
mydiffy = (((this.ry + (this.rh / 2)) - myy) - (myballh / 2)) / this.yrad;
mydistance = Math.sqrt(((mydiffx != 0) ? (Math.pow(mydiffx, 2)) : 0) + ((mydiffy != 0) ? (Math.pow(mydiffy, 2)) : 0));
mynormx = (mydistance ? (mydiffy / mydistance) : 0);
mynormy = (mydistance ? ((-mydiffx) / mydistance) : 0);
this.coscalc = 1 / Math.sqrt(1 + (Math.sin(mydistance) * Math.sin(mydistance)));
if (this.creator.myserve) {
this.ianglex = this.ianglex + ((this.creator.direction * this.creator.dx) * this.incrx);
this.iangley = this.iangley + (this.creator.dz * this.incrz);
this.ianglex = this.ianglex * this.drag;
this.iangley = this.iangley * this.drag;
} else {
this.ianglex = ((this.creator.myobject == "oppnt") ? (((this.creator.direction * (this.tl.courtcentre - this.creator.x)) / 40) + this.creator.dx) : (((this.creator.direction * (this.tl.courtcentre - this.creator.x)) / 15) + (((this.creator.direction * 16) + ((this.creator.z - this.tl.netsprite.z) / 20)) * this.creator.dxdelay)));
this.iangley = ((0 < (this.creator.dz * this.creator.direction)) ? (this.creator.dz * 3) : (this.creator.dzdelay * 7));
}
ix = (this.creator.myserve ? (this.ianglex + (15 * this.tl.gamectrl.serveside)) : (this.ianglex));
iy = this.iangley + this.iadd;
iangle = Math.sqrt((ix * ix) + (iy * iy));
inormx = (iangle ? (iy / iangle) : 0);
inormy = (iangle ? ((-ix) / iangle) : 0);
qa = Math.cos((iangle * myrad) / 2);
mysin = Math.sin((iangle * myrad) / 2);
qb = inormx * mysin;
qc = inormy * mysin;
qe = Math.sqrt((1 + this.coscalc) / 2);
mysin = (-this.creator.direction) * Math.sqrt((1 - this.coscalc) / 2);
qf = mynormx * mysin;
qg = mynormy * mysin;
wangle = 2 * Math.acos(((qa * qe) - (qb * qf)) - (qc * qg));
wnormx = (qb * qe) + (qa * qf);
wnormy = (qa * qg) + (qc * qe);
wnormz = (qb * qg) - (qc * qf);
mynorm = Math.sqrt(((wnormx * wnormx) + (wnormy * wnormy)) + (wnormz * wnormz));
wnormx = (mynorm ? (wnormx / mynorm) : 0);
wnormy = (mynorm ? (wnormy / mynorm) : 0);
wnormz = (mynorm ? (wnormz / mynorm) : 0);
vc = Math.cos(wangle);
vs = Math.sin(wangle);
vt = 1 - vc;
this.vx = (((((vt * wnormx) * wnormx) + vc) * myballsx) + ((((vt * wnormx) * wnormy) - (vs * wnormz)) * myballsy)) + ((((vt * wnormx) * wnormz) + (vs * wnormy)) * myballsz);
this.vy = (((((vt * wnormx) * wnormy) + (vs * wnormz)) * myballsx) + ((((vt * wnormy) * wnormy) + vc) * myballsy)) + ((((vt * wnormy) * wnormz) - (vs * wnormx)) * myballsz);
this.vz = (((((vt * wnormx) * wnormz) - (vs * wnormy)) * myballsx) + ((((vt * wnormy) * wnormz) + (vs * wnormx)) * myballsy)) + ((((vt * wnormz) * wnormz) + vc) * myballsz);
this.vz = this.rpow * this.creator.direction;
this.vx = this.vx * 0.25;
this.vy = this.vy * 0.25;
mysx = (((((vt * wnormx) * wnormx) + vc) * this.vx) + ((((vt * wnormx) * wnormy) + (vs * wnormz)) * this.vy)) + ((((vt * wnormx) * wnormz) - (vs * wnormy)) * this.vz);
mysy = (((((vt * wnormx) * wnormy) - (vs * wnormz)) * this.vx) + ((((vt * wnormy) * wnormy) + vc) * this.vy)) + ((((vt * wnormy) * wnormz) + (vs * wnormx)) * this.vz);
mysz = (((((vt * wnormx) * wnormz) + (vs * wnormy)) * this.vx) + ((((vt * wnormy) * wnormz) - (vs * wnormx)) * this.vy)) + ((((vt * wnormz) * wnormz) + vc) * this.vz);
mypower = Math.cos((this.rz - myballz) / 22);
mysx = mysx * mypower;
mysz = mysz * mypower;
mydrag = 1 - this.tl.ballsprite.drag;
mygrav = this.tl.ballsprite.grav;
mytime = Math.log(1 - ((mydrag * (mysy - (this.creator.direction * mysz))) / mygrav)) / mydrag;
do {
mypoint = (((mytime * mygrav) + ((mysy - (mygrav / mydrag)) * (1 - Math.pow(Math.E, (-mydrag) * mytime)))) / mydrag) + myy;
mygrad = (mygrav / mydrag) + ((mysy - (mygrav / mydrag)) * Math.pow(Math.E, (-mydrag) * mytime));
mytime = mytime - (((mypoint + myballh) - 2) / mygrad);
} while (Math.abs((mypoint + myballh) - 2) >= 1);
this.x = myx + ((mysx * (1 - Math.pow(Math.E, (-mydrag) * mytime))) / mydrag);
this.y = 0;
this.z = (myz + ((mysz * (1 - Math.pow(Math.E, (-mydrag) * mytime))) / mydrag)) - this.d;
if ((((!random(6)) && (this.creator.myobject == "oppnt")) && (((this.creator.direction * this.tl.netsprite.z) + ((this.tl.serveb - this.tl.servet) / 4)) < (this.creator.direction * this.z))) && ((this.creator.direction * this.z) < ((this.creator.direction * this.tl.netsprite.z) + ((this.tl.serveb - this.tl.servet) / 2)))) {
this.creator.swipe = true;
}
if (this.creator.ballhit) {
if (this.creator.myobject == "oppnt") {
_root.game.map.sound.ballreturn02.startAud(1);
} else {
_root.game.map.sound.ballreturn01.startAud(1);
}
this.tl.ballsprite.x = ((myballsx != 0) ? (myx - (mysx * (1 - ((myballx - myx) / myballsx)))) : (myx));
this.tl.ballsprite.y = ((myballsy != 0) ? (myy - (mysy * (1 - ((mybally - myy) / myballsy)))) : (myy));
this.tl.ballsprite.z = myz;
this.tl.ballsprite.sx = mysx;
this.tl.ballsprite.sy = mysy;
this.tl.ballsprite.sz = mysz;
this.tl.ballsprite.ballhit = true;
this.tl.ballsprite.myserve = this.creator.myserve;
this.tl.ballsprite.creator = this.creator;
this.receiver.bnceg = mysz / mysx;
this.receiver.bncex = this.x + (this.w / 2);
this.receiver.bncez = this.z + this.d;
if ((this.receiver.myobject == "oppnt") && (random(5) || ((((((this.creator.direction * this.tl.netsprite.z) < (this.creator.direction * this.z)) && (courtl < (this.x + (this.w / 2)))) && ((this.x + (this.w / 2)) < courtr)) && (courtt < (this.z - (this.d / 2)))) && ((this.z - (this.d / 2)) < courtb)))) {
this.receiver.setTarget(this.tl.ballsprite.x + (this.tl.ballsprite.w / 2), this.tl.ballsprite.z, mytime);
} else if (this.receiver.myobject == "bob") {
this.receiver.setTarget(this.tl.ballsprite.x + (this.tl.ballsprite.w / 2), this.tl.ballsprite.z, mytime);
}
this.creator.bnceg = 0;
if (!this.creator.myserve) {
this.mydelete();
}
}
} else if ((!(this.mylife--)) || ((!this.creator.myshot) && (!this.tl.ballsprite.ballhit))) {
this.mydelete();
}
};
bat.prototype.onEnterFrame = function () {
this.myctrl();
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
};
oppnt = function () {
this.mysetup();
this.offset = 20;
this.hitPerc = new Array();
this.hitPerc[0] = [0.2, "ground"];
this.hitPerc[1] = [-0.1, "volley"];
this.hitPerc[2] = [-0.2, "smash"];
this.bnceside;
this.swipe = 0;
};
oppnt.prototype.mysetup = mysetup;
oppnt.prototype.myservesort = myservesort;
oppnt.prototype.mymover = mymover;
oppnt.prototype.myctrl = function () {
this.mymover();
if ((this.myserve && (!this.tl.gamectrl.playlock)) && (!this.myshot)) {
this.myspace = 1;
}
if ((this.hitable && (this.tl.ballsprite.z < ((this.z + this.d) + this.hitdist))) && ((this.z - this.hitdist) < (this.tl.ballsprite.z + this.tl.ballsprite.d))) {
if (this.myspace) {
this.myspace = 0;
} else {
this.myspace = 1;
this.run = 0;
this.swipe = 1;
}
this.hitable = 0;
} else if (this.swipe) {
this.swipe = 0;
this.myspace = 0;
}
};
oppnt.prototype.setTarget = function (startBallX, startBallZ, BallTime) {
mydrag = 1 - this.tl.ballsprite.drag;
mygrav = this.tl.ballsprite.grav;
var newsy = ((-this.tl.ballsprite.bnce) * ((mygrav / mydrag) + ((this.tl.ballsprite.sy - (mygrav / mydrag)) * Math.pow(Math.E, (-mydrag) * BallTime))));
var timediff = ((0.8 * Math.log(1 - ((mydrag * newsy) / mygrav))) / mydrag);
this.hitPerc[0][0] = timediff / BallTime;
this.hitPerc[1][0] = (-timediff) / (BallTime * 2);
var timediff = (Math.log(1 - ((mydrag * this.tl.ballsprite.sy) / mygrav)) / mydrag);
var smashy = ((((mygrav * timediff) / mydrag) + (((this.tl.ballsprite.sy - (mygrav / mydrag)) * (1 - Math.pow(Math.E, (-mydrag) * timediff))) / mydrag)) + this.tl.ballsprite.y);
this.hitPerc[2][0] = ((timediff / BallTime) - 1) / 2;
var sDistX = (this.bncex - startBallX);
var sDistZ = (this.bncez - startBallZ);
var distShort = Infinity;
for (s in this:hitPerc) {
if (((this.hitPerc[s][1] != "smash") || (smashy < -40)) && ((this.hitPerc[s][1] != "volley") || (!this.tl.ballsprite.myserve))) {
var dx = ((startBallX + (sDistX * (1 + this.hitPerc[s][0]))) - this.x);
var dz = ((startBallZ + (sDistZ * (1 + this.hitPerc[s][0]))) - this.z);
var dist = Math.sqrt((dx * dx) + (dz * dz));
if (dist < distShort) {
distShort = dist;
var shot = this.hitPerc[s][1];
this.diffX = dx;
this.diffZ = dz;
}
}
}
this.bnceside = ((((this.bnceg * ((this.x + (this.w / 2)) - this.bncex)) + this.bncez) < this.z) ? (Math.abs(this.bnceg) / this.bnceg) : ((-Math.abs(this.bnceg)) / this.bnceg));
if (shot == "smash") {
this.batx = Math.ceil(this.w / 2) + (this.direction * ((this.handed * 11) - 1));
this.mysmash = true;
} else {
this.batx = ((this.w / 2) + ((this.direction * this.handed) * 3)) + (this.bnceside * (5 + (this.w / 2)));
}
this.diffX = this.diffX - this.batx;
this.startX = this.x;
this.startZ = this.z;
this.run = 1;
this.tics = 0;
this.myshot = 0;
this.hitable = 1;
mytimeA = Math.log(this.tl.ballsprite.sz / (this.tl.ballsprite.sz - (mydrag * ((this.startZ + this.diffZ) - startBallZ)))) / mydrag;
myrandom2 = (random(2) * 2) - 1;
myrandom1 = Math.round(8 * Math.pow((random(100) + 1) / 100, Math.tan(((200 - this.shot) * Math.PI) / 400)));
this.hitdist = Math.abs((this.tl.ballsprite.sz * (Math.pow(Math.E, (-mydrag) * ((mytimeA - 6) + (myrandom1 * myrandom2))) - Math.pow(Math.E, (-mydrag) * mytimeA))) / mydrag);
this.hitdist2 = Math.abs((this.tl.ballsprite.sz * (Math.pow(Math.E, (-mydrag) * ((mytimeA - 1) + (myrandom1 * myrandom2))) - Math.pow(Math.E, (-mydrag) * mytimeA))) / mydrag);
};
oppnt.prototype.mycoll = mycoll;
oppnt.prototype.myframe = myframe;
oppnt.prototype.my3dpoint = my3dpoint;
oppnt.prototype.createball = createball;
oppnt.prototype.catchball = catchball;
oppnt.prototype.bounceball = bounceball;
oppnt.prototype.starthit = function () {
this.moving = true;
this.ballhit = 8;
if (!this.myserve) {
if ((!random(Math.round(this.shot / 4))) && ((this.direction * this.tl[this.opp].z) < ((this.direction * this.tl.netsprite.z) + (this.tl.courtdepth * 0.5)))) {
this.dz = -this.direction;
} else if ((!random(this.shot * 2)) && (((this.direction * this.tl.netsprite.z) + (this.tl.courtdepth * 0.5)) < (this.direction * this.tl[this.opp].z))) {
this.dz = this.direction;
}
leftspotx = this.tl.courtl + 10;
leftspotz = ((2 * this.tl.netsprite.z) - this.z) - (this.dz * 30);
rightspotx = this.tl.courtr - 10;
rightspotz = ((2 * this.tl.netsprite.z) - this.z) - (this.dz * 30);
bobspotx = this.tl[this.opp].x + (this.tl[this.opp].w / 2);
bobspotz = this.tl[this.opp].z;
if (rightspotx < bobspotx) {
bobspotx = rightspotx;
if ((this.direction * rightspotz) < (this.direction * bobspotz)) {
bobspotz = rightspotz;
}
} else if (bobspotx < leftspotx) {
bobspotx = leftspotx;
if ((this.direction * leftspotz) < (this.direction * bobspotz)) {
bobspotz = leftspotz;
}
}
bobang = Math.atan(((bobspotx - this.batx) - this.x) / (bobspotz - this.z));
lspotang = Math.atan(((leftspotx - this.batx) - this.x) / (leftspotz - this.z));
rspotang = Math.atan(((rightspotx - this.batx) - this.x) / (rightspotz - this.z));
var myprob = Math.pow((random(100) + 1) / 100, Math.tan(((100 - this.shot) * Math.PI) / 200));
var myprob1 = (((lspotang - bobang) != 0) ? (Math.abs(Math.ceil((bobang - rspotang) / (lspotang - bobang)))) : 100);
var myprob2 = (((bobang - rspotang) != 0) ? (Math.abs(Math.ceil((lspotang - bobang) / (bobang - rspotang)))) : 100);
if (((Math.abs(bobang - lspotang) < Math.abs(bobang - rspotang)) && (myprob1)) || (!myprob2)) {
this.dx = rspotang - ((rspotang - bobang) * myprob);
} else {
this.dx = lspotang - ((lspotang - bobang) * myprob);
}
this.dx = this.dx * 50;
}
};
oppnt.prototype.endhit = function () {
this.myserve = false;
this.mysmash = false;
this.myshot = false;
this.move = 30;
this.startX = this.x;
this.startZ = this.z;
this.diffX = (this.tl.courtcentre - (this.w / 2)) - this.x;
if (0 < this.direction) {
this.diffZ = (((this.tl.courtt + (this.tl.courtdepth * 0.4)) < this.startZ) ? ((this.tl.courtt + (this.tl.courtdepth * 0.8)) - this.z) : (this.tl.courtt - this.z));
} else {
this.diffZ = ((this.startZ < (this.tl.courtb - (this.tl.courtdepth * 0.4))) ? ((this.tl.courtb - (this.tl.courtdepth * 0.8)) - this.z) : (this.tl.courtb - this.z));
}
this.run = 1;
this.tics = 0;
this.hitable = 0;
};
oppnt.prototype.mydelete = mydelete;
oppnt.prototype.mywin = mywin;
oppnt.prototype.onEnterFrame = function () {
if (!this.die) {
this.myctrl();
if (!this.myshot) {
this.myframe();
this.mycoll();
if (this.myspace) {
if (this.myserve) {
this.dx = Math.round((Math.atan((random(201) - 100) / this.shot) * 2) / Math.PI);
} else {
this.dx = 0;
}
this.dz = 0;
this.createbat = true;
this.myshot = true;
if (this.myserve) {
tellTarget (this.mc) {
gotoAndStop(this.serveframe);
};
} else if (this.mysmash) {
tellTarget (this.mc) {
gotoAndStop(this.smashframe);
};
this.tl.gamectrl.createspr("batsprite", this);
} else {
if (this.bnceg) {
this.bnceside = ((((this.bnceg * ((this.x + (this.w / 2)) - this.bncex)) + this.bncez) < this.z) ? (Math.abs(this.bnceg) / this.bnceg) : ((-Math.abs(this.bnceg)) / this.bnceg));
this.tl.gamectrl.createspr("batsprite", this);
} else {
this.bnceside = this.handed * this.direction;
}
tellTarget (this.mc) {
gotoAndStop(this.dmatrix[this.bnceside + 1][this.direction + 1] + this.strokeframe);
};
}
}
} else if (!this.myspace) {
tellTarget (this.mc add "/move") {
play();
};
}
if (this.ballhit) {
this.ballhit--;
}
if (this.x < mapl) {
this.x = mapl;
}
if (mapr < (this.x + this.w)) {
this.x = mapr - this.w;
}
if ((this.z - this.d) < mapt) {
this.z = mapt + this.d;
}
if (mapb < this.z) {
this.z = mapb;
}
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
this.sx = ((0.6 < Math.abs(this.sx)) ? (this.sx * this.drag) : 0);
this.sy = ((0.6 < Math.abs(this.sy)) ? (this.sy * this.drag) : 0);
this.sz = ((0.6 < Math.abs(this.sz)) ? (this.sz * this.drag) : 0);
} else {
this.die++;
if ((mapheight * ely) < getProperty(this.mc, _y)) {
if (gamectrl.dead) {
gamectrl.pause(500, "end");
} else {
gamectrl.pause(500, "start");
}
this.mydelete();
} else if (this.end < this.die) {
this.sy = this.sy + this.gravity;
setProperty(this.mc, _y , getProperty(this.mc, _y) + this.sy);
this.sy = this.sy * this.drag;
}
}
};
tardis = function () {
if (this.tl.gamectrl.menu) {
this.x = 390;
this.z = 550;
} else {
_root.game.map.sound.tardis.startAud(1);
}
this.my3dpoint();
tellTarget (this.mc) {
gotoAndStop (1);
};
this.moving = true;
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
this.mycount = 50;
this.myplayer = 1;
};
tardis.prototype.mydelete = mydelete;
tardis.prototype.my3dpoint = my3dpoint;
tardis.prototype.onEnterFrame = function () {
if (!(this.mycount--)) {
if ((this.myplayer < 3) || (this.tl.gamectrl.menu && (this.myplayer < 5))) {
this.sendFLEMEvent("createspr", eval ("this.tl.gamectrl.aliasP0" add this.myplayer));
this.myplayer++;
this.mycount = 50;
tellTarget (this.mc) {
gotoAndStop (2);
};
tellTarget (this.mc add "/move") {
gotoAndPlay (1);
};
this.moving = true;
}
}
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
};
vertline = function () {
this.myctrl();
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
};
vertline.prototype.myctrl = function () {
this.x = this.tl.ballsprite.x;
this.y = this.tl.ballsprite.y + this.tl.ballsprite.h;
this.z = this.tl.ballsprite.z - 1;
setProperty(this.mc add "/move", _yscale , -this.y);
};
vertline.prototype.mydelete = mydelete;
vertline.prototype.my3dpoint = my3dpoint;
vertline.prototype.onEnterFrame = function () {
this.myctrl();
this.my3dpoint();
setProperty(this.mc, _x , this.xtrue);
setProperty(this.mc, _y , this.ytrue);
};
dataArr = new Array(["data/master.txt", "master", "player data", "level 1", 400000]);
gfxArr = new Array(["swf/players.swf", "players", "player graphics"], ["swf/level01.swf", "level01", "level graphics"], ["swf/sound01.swf", "sound", "sound"]);
GameObj = function () {
this.characters = new Array("shakey", "john", "victoria", "winston");
this.gamesTotal = 0;
this.aliasP01 = new Array("bob", 1, 0, 0);
this.aliasP02 = new Array("opp", 0, 0, 0);
this.createorder(1);
this.gamesPlayed = 0;
this.scoreDisp = new Array("0", "15", "30", "40", "Ad");
this.snd = "_root.game.map.sound.";
this.rndSnd = 0;
this.fullset = 0;
this.demotime = 0;
};
GameObj.prototype.tl = this;
GameObj.prototype.selectPlayer = function (selNo) {
i = 0;
while (i < 3) {
if (i == selNo) {
_root["select" + this.characters[i]].gotoAndStop(2);
stopAllSounds();
eval ((this.snd add this.characters[i]) add "Sig").startAud(1);
} else {
_root["select" + this.characters[i]].gotoAndStop(1);
}
i++;
}
this.createorder(selNo);
};
GameObj.prototype.createorder = function (selNo) {
this.aliasP01[1] = selNo;
this.gameLevel = 0;
this.gameorder = new Array();
for (i in this:characters) {
if (i != this.aliasP01[1]) {
this.gameorder.unshift(i);
}
}
};
GameObj.prototype.init = function () {
MovieClip.removeFLEMListener(this);
if (!this.demotime) {
this.aliasP01[1] = random(this.characters.length);
do {
this.aliasP02[1] = random(this.characters.length);
} while (this.aliasP01[1] == this.aliasP02[1]);
this.aliasP01[0] = "opp";
this.aliasP02[0] = "opp";
} else {
this.aliasP01[0] = "bob";
this.aliasP02[0] = "opp";
}
this.gameover = 0;
this.advantage = 0;
_root.resetall();
stopAllSounds();
this.aliasP01[2] = 0;
this.aliasP02[2] = 0;
this.aliasP01[3] = 0;
this.aliasP02[3] = 0;
this.updateScoreBd();
};
GameObj.prototype.playIntro = function () {
if (this.gameorder == undefined) {
this.createorder(0);
}
this.gameLevel = this.gameLevel + 1;
this.aliasP02[1] = this.gameorder[this.gameLevel - 1];
this.tl.introMov.gotoAndStop(this.characters[this.aliasP02[1]]);
eval ((this.snd add this.characters[this.aliasP02[1]]) add "theme").startAud(1);
};
GameObj.prototype.updateScoreBd = function () {
this.tl.scoreBd.score01 = this.scoreDisp[this.aliasP01[2]];
this.tl.scoreBd.score02 = this.scoreDisp[this.aliasP02[2]];
this.tl.scoreBd.name01 = this.characters[this.aliasP01[1]];
this.tl.scoreBd.name02 = this.characters[this.aliasP02[1]];
if (this.tl.scoreBd.name01 == "victoria") {
this.tl.scoreBd.name01 = "Queen Vic";
}
if (this.tl.scoreBd.name02 == "victoria") {
this.tl.scoreBd.name02 = "Queen Vic";
}
this.tl.scoreBd.games01 = this.aliasP01[3];
this.tl.scoreBd.games02 = this.aliasP02[3];
};
GameObj.prototype.onMakeScreen = function () {
this.dataSet = "/master";
tellTarget ("/game") {
spritearr = _root.arrayconvert(eval (this.dataSet + ":spritearr"));
numsprites = spritearr.length;
swfs = _root.arrayconvert(eval (this.dataSet + ":swfs"));
};
};
GameObj.prototype.alert = function (mytype) {
this.gamestatus = "point";
if (mytype == "reset") {
this.tl.prompt.gotoAndStop(1);
} else {
this.tl.prompt.gotoAndPlay(mytype);
}
};
GameObj.prototype.score = function (alias, server) {
if (alias == (this.aliasP01[0] add this.characters[this.aliasP01[1]])) {
var scorer = this.aliasP01;
var nonscorer = this.aliasP02;
} else if (alias == (this.aliasP02[0] add this.characters[this.aliasP02[1]])) {
var scorer = this.aliasP02;
var nonscorer = this.aliasP01;
}
if (server == (this.aliasP01[0] add this.characters[this.aliasP01[1]])) {
var firstscore = this.aliasP01;
var secondscore = this.aliasP02;
} else if (server == (this.aliasP02[0] add this.characters[this.aliasP02[1]])) {
var firstscore = this.aliasP02;
var secondscore = this.aliasP01;
}
this.tl.scoreBd.gotoAndStop("normal");
this.gamestatus = "point";
if (this.advantage == nonscorer) {
nonscorer[2]--;
scorer[2] = 3;
this.advantage = 0;
} else if (this.advantage == scorer) {
this.gameWon(scorer);
var js = 1;
} else {
if (scorer[2] == 3) {
if (this.deuce) {
this.advantage = scorer;
} else {
this.gameWon(scorer);
var js = 1;
}
}
if (!js) {
scorer[2]++;
}
}
if (!js) {
if ((scorer[2] == 3) && (nonscorer[2] == 3)) {
trace("this.deuce");
this.deuce = 1;
} else {
if (this.fullset) {
if ((scorer[2] >= 3) && (this.advantage != nonscorer)) {
if (nonscorer[3] >= 5) {
var playdec = 1;
}
if ((scorer[3] == 5) && (!playdec)) {
this.tl.scoreBd.gotoAndStop("match");
} else if (scorer[3] == 6) {
this.tl.scoreBd.gotoAndStop("match");
} else {
this.tl.scoreBd.gotoAndStop("game");
}
} else if (nonscorer[2] >= 3) {
if (scorer[3] >= 5) {
var playdec = 1;
}
if ((nonscorer[3] == 5) && (!playdec)) {
this.tl.scoreBd.gotoAndStop("match");
} else if (nonscorer[3] == 6) {
this.tl.scoreBd.gotoAndStop("match");
} else {
this.tl.scoreBd.gotoAndStop("game");
}
}
} else if ((scorer[2] >= 3) && (this.advantage != nonscorer)) {
if (scorer[3] == 1) {
this.tl.scoreBd.gotoAndStop("match");
} else {
this.tl.scoreBd.gotoAndStop("game");
}
} else if (nonscorer[2] >= 3) {
if (nonscorer[3] == 1) {
this.tl.scoreBd.gotoAndStop("match");
} else {
this.tl.scoreBd.gotoAndStop("game");
}
}
this.deuce = 0;
}
this.updateScoreBd();
this.tl.prompt.score1 = this.scoreDisp[firstscore[2]];
this.tl.prompt.score2 = this.scoreDisp[secondscore[2]];
if (this.deuce) {
trace("this.deuce 02");
this.tl.prompt.gotoAndPlay("deuce");
} else if (this.advantage != 0) {
this.tl.prompt.gotoAndPlay("advantage");
this.tl.prompt.player = this.characters[scorer[1]];
if (this.tl.prompt.player == "victoria") {
this.tl.prompt.player = "Queen Vic";
}
} else {
this.tl.prompt.gotoAndPlay("score");
}
}
};
GameObj.prototype.gameWon = function (alias) {
alias[3]++;
if (alias == this.aliasP01) {
var loseAlias = this.aliasP02;
} else {
var loseAlias = this.aliasP01;
}
if (this.fullset) {
if (alias[3] == 7) {
var hasWon = 1;
} else if ((alias[3] >= 6) && (loseAlias[3] != 5)) {
if (loseAlias[3] == alias[3]) {
trace("nextGame Wins it");
this.tl.prompt.gotoAndPlay("nextgame");
var lastPt = 1;
} else {
var hasWon = 1;
}
}
} else if (alias[3] == 2) {
var hasWon = 1;
}
if (hasWon) {
this.tl.prompt.winner = this.characters[alias[1]];
if (this.tl.prompt.winner == "victoria") {
this.tl.prompt.winner = "Queen Vic";
}
this.tl.prompt.gotoAndPlay("match");
this.gamestatus = "match";
trace("end of game");
if (alias == this.aliasP01) {
if (this.aliasP02[1] == 3) {
this.gameover = "win";
this.winChar = this.characters[alias[1]];
this.gameLevel = 0;
trace("player winner");
}
} else {
this.gameover = "over";
trace("gameover");
this.gameLevel = 0;
}
eval ((this.snd add this.characters[alias[1]]) add "theme").startAud(1);
} else {
this.tl.prompt.winner = this.characters[alias[1]];
if (this.tl.prompt.winner == "victoria") {
this.tl.prompt.winner = "Queen Vic";
}
if (!lastPt) {
this.tl.prompt.gotoAndPlay("game");
}
this.gamestatus = "game";
}
this.advantage = 0;
this.aliasP01[2] = 0;
this.aliasP02[2] = 0;
this.updateScoreBd();
};
GameObj.prototype.sTrig = function (alias, outcome) {
var rand = random(9);
while (rand == this.rndSnd) {
rand = random(9);
}
eval (((this.snd add _root.game[alias].sprite) add outcome) add rand).startAud(1);
this.rndSnd = rand;
};
GameObj.prototype.onEnterFrame = function () {
if (0 < this.demotime) {
this.demotime--;
}
if (this.demotime < 0) {
this.demotime++;
}
if (!this.demotime) {
this.fullset = 0;
if (this.gamestatus == "match") {
stopAllSounds();
_root.resetall();
MovieClip.removeFLEMListener(_root.game.gamectrl);
MovieClip.removeFLEMListener(_root.game.gamectrl.timer);
if (_root.game.gamectrl != undefined) {
delete _root.game.gamectrl;
}
eval (("_root.game.map." add _root.mytile) add ".background").removeMovieClip();
MovieClip.removeFLEMListener(this);
_root.gotoAndStop("menu");
} else {
_root.gotoAndStop("playGame");
}
}
};
loadAllData = new Preloader(dataArr.concat(gfxArr), "titleScreen");
theGame = new GameObj();
Instance of Symbol 43 MovieClip in Frame 55
onClipEvent (load) {
rad = (Math.PI/180);
lens = 60;
camz = -50;
persp = (300 * Math.cos((lens * rad) / 2)) / Math.sin((lens * rad) / 2);
starholder = new Array();
starnum = 25;
starstart = 100;
starend = 0;
starmove = (starstart - starend) / starnum;
}
onClipEvent (enterFrame) {
if (starholder.length < starnum) {
attachMovie("star", "star" add starholder.length, starholder.length + 1);
starholder[starholder.length] = [random(101) - 50, random(101) - 50, starstart];
}
for (i in starholder) {
s = starholder[i];
s[2] = s[2] - 4;
if (s[2] < starend) {
starholder[i] = [random(101) - 50, random(101) - 50, starstart];
} else {
x = s[0];
y = s[1];
z = s[2] - camz;
vscale = (persp * (((const = Math.sqrt(((z * z) + (x * x)) + (y * y)))) - z)) / ((x * x) + (y * y));
xtrue = x * vscale;
ytrue = y * vscale;
ztrue = const * Math.sqrt(0.5 + ((0.5 * z) / const));
tellTarget ("star" add i) {
_x = ../:xtrue;
_y = ../:ytrue;
_xscale = ../:vscale;
_yscale = ../:vscale;
};
}
}
}
Instance of Symbol 45 MovieClip "game" in Frame 55
onClipEvent (enterFrame) {
if (masterSwitch) {
MovieClip.sendFLEMEvent("onEnterFrame");
}
}
Instance of Symbol 50 MovieClip "soundLoadBtn" in Frame 55
onClipEvent (load) {
}
Frame 62
Frame 71
stop();
Frame 79
theGame.demotime = 1000;
theGame.gamestatus = "none";
game.masterSwitch = true;
MovieClip.addFLEMListener(theGame);
if (soundToggle == "sOn") {
nextFrame();
}
stop();
Instance of Symbol 56 MovieClip in Frame 79
onClipEvent (keyDown) {
if ((Key.getCode() == 49) || (Key.getCode() == 97)) {
_root.resetall();
stopAllSounds();
_root.game.map.sound.button02.startAud(1);
_root.gotoAndStop("gameType");
} else if ((Key.getCode() == 50) || (Key.getCode() == 98)) {
_root.resetall();
stopAllSounds();
_root.game.map.sound.button02.startAud(1);
_root.gotoAndPlay("instructions");
} else if ((Key.getCode() == 51) || (Key.getCode() == 99)) {
_root.resetall();
stopAllSounds();
_root.game.map.sound.button02.startAud(1);
_root.gotoAndPlay("soundCont");
}
}
Frame 84
MovieClip.removeFLEMListener(theGame);
_root.game.map.sound.button02.startAud(1);
stop();
Instance of Symbol 56 MovieClip in Frame 84
onClipEvent (keyDown) {
if ((Key.getCode() == 49) || (Key.getCode() == 97)) {
_root.gotoAndPlay("selectPlayer");
_root.theGame.fullset = 0;
} else if ((Key.getCode() == 50) || (Key.getCode() == 98)) {
_root.gotoAndPlay("selectPlayer");
_root.theGame.fullset = 1;
}
}
Frame 91
MovieClip.removeFLEMListener(theGame);
_root.game.map.sound.button02.startAud(1);
stop();
Instance of Symbol 98 MovieClip in Frame 91
onClipEvent (keyDown) {
if (Key.getCode() == 32) {
_root.game.map.sound.hitSpace.startAud(1);
_root.gotoAndPlay("menu");
}
}
Frame 99
MovieClip.removeFLEMListener(theGame);
_root.game.map.sound.button02.startAud(1);
stop();
Instance of Symbol 118 MovieClip in Frame 99
onClipEvent (load) {
this.gotoAndStop(_root.soundToggle);
}
onClipEvent (keyDown) {
var keyK = Key.getCode();
if ((keyK == 39) || (keyK == 80)) {
this.gotoAndStop("sOn");
} else if ((keyK == 37) || (keyK == 79)) {
this.gotoAndStop("sOff");
}
}
Instance of Symbol 98 MovieClip in Frame 99
onClipEvent (keyDown) {
if (Key.getCode() == 32) {
_root.game.map.sound.hitSpace.startAud(1);
_root.gotoAndPlay("menu");
}
}
Frame 109
stop();
Instance of Symbol 131 MovieClip "selectjohn" in Frame 109
onClipEvent (load) {
this.gotoAndStop(2);
_root.theGame.selectPlayer(1);
stopAllSounds();
_root.game.map.sound.button02.startAud(1);
}
onClipEvent (keyDown) {
var selected = _root.theGame.aliasP01[1];
if (Key.isDown(37) || (Key.isDown(79))) {
if (selected != 0) {
selected--;
}
_root.theGame.selectPlayer(selected);
} else if (Key.isDown(39) || (Key.isDown(80))) {
if (selected != 2) {
selected++;
}
_root.theGame.selectPlayer(selected);
}
}
Instance of Symbol 98 MovieClip in Frame 109
onClipEvent (keyDown) {
if (Key.getCode() == 32) {
_root.gotoAndPlay("demo");
}
}
Frame 118
stop();
Instance of Symbol 98 MovieClip in Frame 118
onClipEvent (keyDown) {
if (Key.getCode() == 32) {
stopAllSounds();
_root.gotoAndPlay("Intro");
}
}
Frame 127
stop();
theGame.playIntro();
Instance of Symbol 98 MovieClip in Frame 127
onClipEvent (keyDown) {
if (Key.getCode() == 32) {
_root.gotoAndStop("playGame");
}
}
Frame 133
theGame.init();
stop();
theGame.onMakeScreen();
game.elx = 12;
game.ely = 12;
game.elz = 12;
game.mapw = 452;
game.maph = 100;
game.mapd = 678;
game.mapl = 6;
game.mapt = 48;
game.mapr = 446;
game.mapb = 678;
game.servel = 121;
game.servet = 258;
game.server = 313;
game.serveb = 470;
game.courtl = 121;
game.courtt = 150;
game.courtr = 313;
game.courtb = 578;
game.courtwidth = game.courtr - game.courtl;
game.courtcentre = (game.courtl + game.courtr) / 2;
game.courtdepth = (game.courtb - game.courtt) / 2;
game.crumble = 0;
mytile = game.swfs[0];
eval ("game.map." add mytile).attachMovie("background", "background", 0);
if (_root.game.gamectrl != undefined) {
MovieClip.removeFLEMListener(_root.game.gamectrl);
MovieClip.removeFLEMListener(_root.game.gamectrl.timer);
delete _root.game.gamectrl;
}
game.gamectrl = new gamectrl(false);
Instance of Symbol 98 MovieClip "hitspacebot" in Frame 133
onClipEvent (load) {
if (_root.theGame.demotime) {
_visible = 0;
}
}
Instance of Symbol 98 MovieClip "hitspacetop" in Frame 133
onClipEvent (load) {
if (_root.theGame.demotime) {
_visible = 0;
}
}
onClipEvent (keyDown) {
if ((Key.getCode() == 32) && (_visible)) {
stopAllSounds();
_root.resetall();
MovieClip.removeFLEMListener(_root.game.gamectrl);
MovieClip.removeFLEMListener(_root.game.gamectrl.timer);
if (_root.game.gamectrl != undefined) {
delete _root.game.gamectrl;
}
eval (("_root.game.map." add _root.mytile) add ".background").removeMovieClip();
if (0 >= _root.theGame.demotime) {
_root.gotoAndStop("menu");
} else if (_root.theGame.gameover != 0) {
_root.gotoAndStop("gameOver");
} else {
_root.gotoAndStop("Intro");
}
}
if (Key.getCode() == 80) {
_root.game.gamectrl.pauseSwitch();
} else if (Key.getCode() == 81) {
_root.game.masterSwitch = true;
stopAllSounds();
_root.resetall();
MovieClip.removeFLEMListener(_root.game.gamectrl);
MovieClip.removeFLEMListener(_root.game.gamectrl.timer);
if (_root.game.gamectrl != undefined) {
delete _root.game.gamectrl;
}
eval (("_root.game.map." add _root.mytile) add ".background").removeMovieClip();
_root.gotoAndStop("menu");
}
}
Frame 141
stop();
Instance of Symbol 43 MovieClip in Frame 141
onClipEvent (load) {
rad = (Math.PI/180);
lens = 60;
camz = -50;
persp = (300 * Math.cos((lens * rad) / 2)) / Math.sin((lens * rad) / 2);
starholder = new Array();
starnum = 25;
starstart = 100;
starend = 0;
starmove = (starstart - starend) / starnum;
}
onClipEvent (enterFrame) {
if (starholder.length < starnum) {
attachMovie("star", "star" add starholder.length, starholder.length + 1);
starholder[starholder.length] = [random(101) - 50, random(101) - 50, starstart];
}
for (i in starholder) {
s = starholder[i];
s[2] = s[2] - 4;
if (s[2] < starend) {
starholder[i] = [random(101) - 50, random(101) - 50, starstart];
} else {
x = s[0];
y = s[1];
z = s[2] - camz;
vscale = (persp * (((const = Math.sqrt(((z * z) + (x * x)) + (y * y)))) - z)) / ((x * x) + (y * y));
xtrue = x * vscale;
ytrue = y * vscale;
ztrue = const * Math.sqrt(0.5 + ((0.5 * z) / const));
tellTarget ("star" add i) {
_x = ../:xtrue;
_y = ../:ytrue;
_xscale = ../:vscale;
_yscale = ../:vscale;
};
}
}
}
Instance of Symbol 224 MovieClip "goMov" in Frame 141
onClipEvent (load) {
var go = _root.theGame.gameover;
_root.goMov.gotoAndStop(go);
trace("og on clip " + go);
if (go == "win") {
_root.game.map.sound.hopeandglory.startAud(3);
_root.goMov.character.gotoAndStop(_root.theGame.winChar);
} else {
_root.mask._visible = 0;
_root.game.map.sound.gameover.startAud(1);
}
}
Instance of Symbol 98 MovieClip in Frame 141
onClipEvent (keyDown) {
if (Key.getCode() == 32) {
stopAllSounds();
_root.gotoAndPlay("menu");
}
}
Instance of Symbol 8 MovieClip in Symbol 9 MovieClip [flemEngine] Frame 1
onClipEvent (load) {
MovieClip.sendFLEMEvent("onLoad");
}
onClipEvent (enterFrame) {
MovieClip.sendFLEMEvent("onEnterFrame");
}
onClipEvent (mouseDown) {
Mouse.sendFLEMEvent("onMouseDown");
}
onClipEvent (mouseUp) {
Mouse.sendFLEMEvent("onMouseUp");
}
onClipEvent (keyDown) {
Key.sendFLEMEvent("onKeyDown");
}
onClipEvent (keyUp) {
Key.sendFLEMEvent("onKeyUp");
}
Symbol 33 MovieClip [playDisplay] Frame 1
timeDisp = 0;
timeDispShad = 0;
scoreDisp = 0;
scoreDispShad = 0;
totalScoreDisp = _root.theGame.cumScore;
totalscoreDispShad = totalScoreDisp;
Symbol 49 Button
on (release) {
_root.preLoadExternals.endLoad();
_root.loadAudio = false;
}
Symbol 73 Button
on (release) {
stopAllSounds();
_root.game.map.sound.button01.startAud(1);
_root.gotoAndStop("menu");
}
Symbol 78 Button
on (release) {
stopAllSounds();
_root.gotoAndStop("soundCont");
}
Symbol 82 Button
on (release) {
stopAllSounds();
_root.gotoAndStop("instructions");
}
Symbol 85 Button
on (release) {
stopAllSounds();
_root.gotoAndStop("gameType");
}
Symbol 86 MovieClip Frame 251
_root.game.elx = 12;
_root.game.ely = 12;
_root.game.elz = 12;
_root.theGame.onMakeScreen();
if (_root.game.gamectrl != undefined) {
MovieClip.removeFLEMListener(_root.game.gamectrl);
MovieClip.removeFLEMListener(_root.game.gamectrl.timer);
delete _root.game.gamectrl;
}
_root.game.gamectrl = new _root.gamectrl(true);
stop();
Symbol 92 Button
on (release) {
gotoAndStop (109);
theGame.fullset = 0;
}
Symbol 96 Button
on (release) {
gotoAndStop (109);
theGame.fullset = 1;
}
Symbol 112 Button
on (release) {
gotoAndStop (12);
}
Symbol 117 Button
on (release) {
gotoAndStop (1);
}
Symbol 118 MovieClip Frame 1
stop();
_root.soundToggle = "sOn";
_root.game.map.sound.snd.enableEvents();
Symbol 118 MovieClip Frame 12
stop();
_root.soundToggle = "sOff";
_root.game.map.sound.snd.disableEvents();
Symbol 119 Button
on (release) {
gotoAndStop (12);
}
Symbol 120 Button
on (release) {
gotoAndStop (1);
}
Symbol 121 MovieClip Frame 1
stop();
if (_root.soundToggle == "sOn") {
_root.game.map.sound.snd.enableEvents(1);
}
Symbol 121 MovieClip Frame 12
stop();
if (_root.soundToggle == "sOn") {
_root.game.map.sound.snd.disableEvents(1);
}
Symbol 127 MovieClip Frame 1
stop();
Symbol 127 MovieClip Frame 2
stop();
Symbol 131 MovieClip Frame 1
stop();
Symbol 131 MovieClip Frame 2
stop();
Symbol 135 MovieClip Frame 1
stop();
Symbol 135 MovieClip Frame 2
stop();
Symbol 140 Button
on (release) {
_root.theGame.selectPlayer(0);
}
Symbol 141 Button
on (release) {
_root.theGame.selectPlayer(1);
}
Symbol 142 Button
on (release) {
_root.theGame.selectPlayer(2);
}
Symbol 177 MovieClip Frame 1
stop();
Symbol 177 MovieClip Frame 10
stop();
Symbol 177 MovieClip Frame 20
stop();
Symbol 177 MovieClip Frame 30
stop();
Symbol 185 MovieClip Frame 1
stop();
Symbol 185 MovieClip Frame 10
stop();
Symbol 188 MovieClip Frame 1
stop();
Symbol 211 MovieClip Frame 1
stop();
Symbol 211 MovieClip Frame 57
gotoAndStop (1);
Symbol 211 MovieClip Frame 113
gotoAndStop (1);
Symbol 211 MovieClip Frame 156
gotoAndStop (1);
Symbol 211 MovieClip Frame 196
gotoAndStop (1);
Symbol 211 MovieClip Frame 236
gotoAndStop (1);
Symbol 211 MovieClip Frame 276
gotoAndStop (1);
Symbol 211 MovieClip Frame 326
gotoAndStop (1);
Symbol 211 MovieClip Frame 378
gotoAndStop (1);
Symbol 211 MovieClip Frame 436
gotoAndStop (1);
Symbol 211 MovieClip Frame 496
gotoAndStop (1);
Symbol 211 MovieClip Frame 556
gotoAndStop (1);
Symbol 211 MovieClip Frame 706
if (_root.theGame.demotime) {
_root.hitspacetop._visible = 1;
_root.hitspacetop.gotoAndPlay(1);
_root.hitspacebot._visible = 1;
_root.hitspacebot.gotoAndPlay(1);
} else {
_root.theGame.demotime = -300;
MovieClip.addFLEMListener(_root.theGame);
}
stop();
Symbol 211 MovieClip Frame 721
stop();
Symbol 216 MovieClip Frame 1
stop();
Symbol 216 MovieClip Frame 10
stop();
Symbol 216 MovieClip Frame 20
stop();
Symbol 216 MovieClip Frame 30
stop();
Symbol 222 MovieClip Frame 1
delay = 1;
Symbol 222 MovieClip Frame 21
removeMovieClip("");
stop();
Symbol 224 MovieClip Frame 1
dropcnt = 1;
play();
Symbol 224 MovieClip Frame 2
dropbreed = int(random(2));
if (Number(dropbreed) == 1) {
dropcnt = Number(dropcnt) + 1;
duplicateMovieClip ("all", "all" add dropcnt, dropcnt);
setProperty("all" add dropcnt, _x , random(400));
setProperty("all" add dropcnt, _y , Number(random(50)) + 150);
}
if (500 < Number(dropcnt)) {
dropcnt = 1;
}
Symbol 224 MovieClip Frame 3
gotoAndPlay (2);
Symbol 224 MovieClip Frame 10
stop();