Frame 1
totalBytes = this.getBytesTotal();
attemptValidation = false;
totalBytesLoaded = this.getBytesLoaded();
fscommand ("allowscale", "false");
if (_root.userName.length == null) {
version = "standalone";
attemptValidation = true;
if (attemptValidation) {
}
} else if (_root.userName != null) {
version = "mplayer";
}
startingHole = 1;
player1Char = 1;
player2Char = 2;
movieClip.prototype.changeColor = function (r, g, b) {
myColor = new Color(this);
colorTransform = {ra:100, rb:r, ga:100, gb:g, ba:100, bb:b, aa:100, ab:0};
myColor.setTransform(colorTransform);
};
Frame 2
totalBytesLoaded = this.getBytesLoaded();
percent = (totalBytesLoaded / totalBytes) * 100;
if (percent >= 100) {
gotoAndStop ("sound");
}
percent = int(percent) + "% loaded.";
ls = Math.round((totalBytesLoaded / (getTimer() / 1000)) / 10.24) / 100;
var speedload = (("@ " + ls) + "kbs");
Frame 3
gotoAndPlay ("loop");
Frame 6
miniclip_start = getTimer();
play();
Frame 7
if ((getTimer() - miniclip_start) >= 3000) {
if (version == "standalone") {
userID = Number(_root.electrotank_userid);
if (0 < userID) {
loggedIn = true;
} else {
loggedIn = false;
}
gotoAndStop ("splash");
} else if (version == "mplayer") {
gotoAndStop ("game");
}
} else {
play();
}
Frame 8
gotoAndPlay(_currentframe - 1);
Frame 10
stop();
startingHole = 1;
byPassHoleSelection = false;
Frame 15
function scoreLoaded() {
if (scoreIs == "loading") {
eval (highScorePath).parseList(scoreOb);
} else if (scoreIs == "updating") {
_root.loadScore();
}
}
function loadScore() {
scoreIs = "loading";
scoreOb = new XML();
scoreOb.ignoreWhite = true;
scoreOb.onLoad = scoreLoaded;
scoreOb.load((loadScoreURL + "&ran=") + random(20000));
}
function updateScore() {
scoreIs = "updating";
save = (((saveURL + "?GameID=31&auxData=0&userID=") + userID) + "&score=") + userScore;
loadVariables (save, this.saver);
}
loadScoreURL = "http://www.electrotank.com/games/gethighscore.asp?GameID=31&sortOrder=asc&NumToReturn=50";
saveURL = "http://www.electrotank.com/games/savehighscore.asp";
userScore = score;
Instance of Symbol 85 MovieClip "saver" in Frame 15
onClipEvent (data) {
_parent.loadScore();
}
Frame 25
function choseChar(num, name) {
if (moreTries) {
i = 0;
while (4 >= (++i)) {
if (i != num) {
this[name]["c" + i].gotoAndStop(1);
}
}
this[name]["c" + num].gotoAndStop(1 + num);
this[("player" + name.substr(1)) + "char"] = num;
}
}
function moreOk(name, name2) {
if (moreTries) {
return(true);
}
if (this[name][name2].chosen != "yes") {
return(true);
}
return(false);
}
stop();
player1 = "";
player2 = "";
selection.setFocus("player1");
moreTries = true;
Frame 32
function choseChar(num, name) {
i = 0;
while (4 >= (++i)) {
if (i != num) {
p1["c" + i].gotoAndStop(1);
}
}
this[name]["c" + num].chosen = "yes";
player1char = num;
}
function moreOk(name, name2) {
if (p1[name2].chosen != "yes") {
return(true);
}
return(false);
}
moreTries = true;
Frame 41
function logInit() {
logDoc = logDoc.firstChild;
validity = logDoc.firstChild.firstChild.nodeValue.toLowerCase();
if (validity == "valid") {
_root.loggedIn = true;
_root.userName = login.userName;
_root.userID = Number(logDoc.firstChild.nextSibling.firstChild.nodeValue);
login.gotoAndStop("login success");
} else {
_root.loggedIn = false;
login.gotoAndStop("login failed");
}
}
function logMeIn(url) {
logDoc = new XML();
logDoc.onLoad = logInit;
logDoc.load(url);
}
BaseURL = "http://www.electrotank.com/games/";
Frame 49
function tempBlock() {
mx = _root._XMouse;
my = _root._yMouse;
returnVal = true;
i = -1;
while ((++i) < shotBlockArr.length) {
if (shotBlockArr[i].hitDetect()) {
returnVal = false;
break;
}
}
return(returnVal);
}
_root.join_room(_root.gameRoom);
stop();
_root.shotBlockArr = [];
_root.okToShoot = tempBlock;
Symbol 11 Button
on (release) {
getURL ("http://www.miniclip.com", "_blank");
}
Symbol 24 Button
on (release) {
this.gotoAndStop(1);
}
Symbol 26 MovieClip Frame 1
stop();
Symbol 41 MovieClip Frame 1
stop();
Symbol 41 MovieClip Frame 2
stop();
Symbol 41 MovieClip Frame 3
stop();
Symbol 41 MovieClip Frame 4
stop();
Symbol 41 MovieClip Frame 5
stop();
Symbol 41 MovieClip Frame 6
stop();
Symbol 41 MovieClip Frame 7
stop();
Symbol 43 Button
on (rollOver) {
tellTarget ("/high") {
gotoAndStop (7);
};
}
on (rollOut) {
tellTarget ("/high") {
gotoAndStop (1);
};
}
on (release) {
gotoAndStop ("credits");
}
Symbol 44 Button
on (rollOver) {
tellTarget ("/high") {
gotoAndStop (3);
};
}
on (rollOut) {
tellTarget ("/high") {
gotoAndStop (1);
};
}
on (release) {
numPlayers = 2;
gotoAndStop ("enterNames");
}
Symbol 45 Button
on (rollOver) {
tellTarget ("/high") {
gotoAndStop (2);
};
}
on (rollOut) {
tellTarget ("/high") {
gotoAndStop (1);
};
}
on (release) {
numPlayers = 1;
if (!byPassHoleSelection) {
gotoAndStop ("single");
} else {
gotoAndStop ("game");
}
}
Symbol 46 Button
on (rollOver) {
tellTarget ("/high") {
gotoAndStop (6);
};
}
on (rollOut) {
tellTarget ("/high") {
gotoAndStop (1);
};
}
on (release) {
gotoAndStop ("instructions");
}
Symbol 47 Button
on (rollOver) {
tellTarget ("/high") {
gotoAndStop (5);
};
}
on (rollOut) {
tellTarget ("/high") {
gotoAndStop (1);
};
}
on (release) {
hs = "";
gotoAndStop ("scores");
}
Symbol 49 Button
on (release) {
getURL ("http://www.miniclip.com/buy_minigolf.htm", "_blank");
}
Symbol 74 Button
on (press) {
down = "yes";
}
on (rollOut, release, dragOut, releaseOutside) {
down = "";
}
Symbol 77 Button
on (press) {
down = "yes";
}
on (rollOut, release, releaseOutside) {
down = "";
}
Instance of Symbol 75 MovieClip in Symbol 81 MovieClip Frame 1
onClipEvent (enterFrame) {
if (down == "yes") {
_parent._parent._parent.scroll("up");
}
}
Instance of Symbol 78 MovieClip "button" in Symbol 81 MovieClip Frame 1
onClipEvent (mouseMove) {
updateAfterEvent();
if (down == "yes") {
ym = _parent._yMouse;
if (ym < yH) {
y = yH;
} else if ((yH + l) < ym) {
y = yH + l;
} else {
y = ym;
}
factor = (y - yH) / l;
_parent._parent._parent.scroll("bar", factor);
_y = y;
}
}
onClipEvent (load) {
function go(factor) {
_y = (yH + (l * factor));
}
yH = _y;
l = _parent.line._height - (_height / 2);
_parent.line._visible = false;
}
onClipEvent (mouseUp) {
down = "";
}
Instance of Symbol 75 MovieClip in Symbol 81 MovieClip Frame 1
onClipEvent (enterFrame) {
if (down == "yes") {
_parent._parent._parent.scroll("down");
}
}
Symbol 83 MovieClip Frame 1
function parseList(xmlObj) {
list = new Array();
contentLayer = new XML(xmlobj.firstChild.firstChild);
gameName = xmlObj.firstChild.firstChild.attributes.game;
gameDifficulty = xmlObj.firstChild.firstChild.attributes.difficulty;
people = new Array();
people = contentLayer.firstChild.childNodes;
var i = -1;
while ((++i) < people.length) {
tempObj = new XML(people[i]);
userId = tempObj.firstChild.attributes.userid;
name = tempObj.firstChild.firstChild.firstChild.nodeValue;
score = tempObj.firstChild.firstChild.nextSibling.firstChild.nodeValue;
list.push([name, score, userId]);
}
buildList();
}
function scroll(dir, factor) {
s = 10;
if (dir == "up") {
if ((sy + sb) < ((p._y - s) + p._height)) {
p._y = p._y - s;
} else {
p._y = (sy + sb) - p._height;
}
} else if (dir == "down") {
if ((p._y + s) < sy) {
p._y = p._y + s;
} else {
p._y = sy;
}
} else if (dir == "bar") {
y = sy - (factor * (p._height - sb));
p._y = y;
}
if (dir != "bar") {
max = p._height - sb;
now = math.abs(sy - p._y);
factor = now / max;
display.bar.button.go(factor);
}
}
function buildList() {
highScore = "";
h = display.list.infoBar._height + 5;
var i = -1;
while ((++i) < list.length) {
highScore = highScore + (((list[i][0] + " ") + list[i][1]) + newline);
name = "infoBar" + i;
y = i * h;
p.infoBar.duplicateMovieClip(name, i);
p[name]._y = y;
p[name].name = list[i][0];
p[name].score = list[i][1];
p[name].num = i + 1;
}
}
stop();
_root.highScorePath = _target;
p = display.list;
sy = p._y;
sb = 120;
p.infoBar._visible = false;
if (_root.hs == "submit") {
_root.updateScore();
} else {
_root.loadScore();
}
Symbol 86 Button
on (release) {
gotoAndStop ("splash");
}
Symbol 97 MovieClip Frame 1
stop();
Symbol 97 MovieClip Frame 2
stop();
Symbol 98 Button
on (rollOver) {
tellTarget ("/back") {
gotoAndStop (2);
};
}
on (rollOut) {
tellTarget ("/back") {
gotoAndStop (1);
};
}
on (release) {
gotoAndStop ("splash");
}
Symbol 107 MovieClip Frame 1
if (_name != "shadow") {
num = _name.substr(6);
_x = _parent["ball" + num]._x;
_y = _parent["ball" + num]._y;
}
Symbol 113 MovieClip Frame 1
stop();
Symbol 119 MovieClip Frame 1
stop();
Symbol 119 MovieClip Frame 2
stop();
Symbol 122 MovieClip Frame 1
stop();
Symbol 122 MovieClip Frame 2
stop();
Symbol 126 MovieClip Frame 1
stop();
Symbol 126 MovieClip Frame 2
stop();
Symbol 130 MovieClip Frame 1
stop();
Symbol 130 MovieClip Frame 2
stop();
Instance of Symbol 126 MovieClip in Symbol 132 MovieClip Frame 1
onClipEvent (load) {
this.gotoAndStop(2);
}
Instance of Symbol 130 MovieClip "keys" in Symbol 132 MovieClip Frame 40
onClipEvent (load) {
this.gotoAndStop(2);
}
Symbol 132 MovieClip Frame 80
stop();
Symbol 133 MovieClip Frame 1
keys.gotoAndPlay(1);
Symbol 133 MovieClip Frame 85
stop();
gotoAndPlay (1);
Symbol 159 MovieClip Frame 1
stop();
Symbol 159 MovieClip Frame 2
stop();
Symbol 160 Button
on (rollOver) {
tellTarget ("/play") {
gotoAndStop (2);
};
}
on (rollOut) {
tellTarget ("/play") {
gotoAndStop (1);
};
}
on (release, keyPress "<Enter>") {
if ((player1 != "") && (player2 != "")) {
gotoAndStop ("game");
}
}
Symbol 180 Button
on (rollOver) {
if (((chosen != "yes") && (_parent._parent.moreOk(_parent._name, _name))) && (taken != "yes")) {
_alpha = 50;
this.gotoAndStop(num + 1);
}
}
on (rollOut, dragOut, releaseOutside) {
if (((chosen != "yes") && (_parent._parent.moreOk(_parent_.name, _name))) && (taken != "yes")) {
this.gotoAndStop(1);
}
}
on (release) {
if (((chosen != "yes") && (_parent._parent.moreOk(_parent._name, _name))) && (taken != "yes")) {
chosen = "yes";
_parent._parent.choseChar(num, _parent._name);
_alpha = 100;
}
}
Symbol 189 MovieClip Frame 1
stop();
num = Number(_name.substr(1));
chosen = "";
Symbol 189 MovieClip Frame 2
stop();
Symbol 189 MovieClip Frame 3
stop();
Symbol 189 MovieClip Frame 4
stop();
Symbol 189 MovieClip Frame 5
stop();
Symbol 199 Button
on (release, keyPress "<Enter>") {
gotoAndStop ("game");
}
Symbol 208 MovieClip Frame 1
stop();
Symbol 208 MovieClip Frame 2
stop();
Symbol 209 Button
on (rollOver) {
tellTarget ("/over") {
gotoAndStop (2);
};
}
on (rollOut) {
tellTarget ("/over") {
gotoAndStop (1);
};
}
on (release) {
getURL ("http://www.electrotank.com/games/multiuser/");
}
Symbol 211 Button
on (release, keyPress "<Enter>") {
submit();
}
Symbol 219 Button
on (release) {
getURL ("http://www.electrotank.com/registration.asp", "_blank");
}
Symbol 228 Button
on (release) {
this.gotoAndStop(1);
}
Symbol 229 MovieClip Frame 1
function submit() {
mode = "logging";
url = (((_root.baseURL + "CheckLogin.asp?userName=") + userName) + "&password=") + password;
_root.logMeIn(url);
this.gotoAndStop(2);
}
stop();
selection.setFocus("username");
Instance of Symbol 223 MovieClip in Symbol 229 MovieClip Frame 2
onClipEvent (enterFrame) {
_rotation = (_rotation + 3);
}
Symbol 229 MovieClip Frame 7
play();
Symbol 229 MovieClip Frame 35
_root.gotoAndStop("scores");
Symbol 229 MovieClip Frame 43
stop();
Symbol 240 MovieClip Frame 1
stop();
Symbol 240 MovieClip Frame 5
gotoAndStop (1);
Symbol 240 MovieClip Frame 14
gotoAndStop (1);
Symbol 240 MovieClip Frame 20
gotoAndStop (1);
Symbol 240 MovieClip Frame 30
gotoAndStop (1);
Symbol 240 MovieClip Frame 45
gotoAndStop (1);
Symbol 240 MovieClip Frame 55
gotoAndStop (1);
Symbol 247 MovieClip Frame 1
stop();
Symbol 247 MovieClip Frame 2
stop();
_parent.okToplay = true;
Symbol 247 MovieClip Frame 3
stop();
Symbol 251 MovieClip Frame 1
function hitDetect() {
ret = false;
mx = _root._xMouse;
my = _root._yMouse;
if (this.hitTest(mx, my)) {
ret = true;
}
return(ret);
}
_root.shotBlockArr.push(this.valueOf());
_visible = false;
stop();
Symbol 253 Button
on (release) {
play();
}
Symbol 261 Button
on (release) {
_root.join_room("Lobby");
_root.skin.gotoAndStop("chatter");
unloadMovie (this._parent._parent);
}
Symbol 266 Button
on (release) {
if (_currentframe == 1) {
stopAllSounds();
gotoAndStop (2);
} else {
gotoAndPlay (3);
}
}
Symbol 270 MovieClip Frame 1
stop();
Symbol 270 MovieClip Frame 2
stop();
Symbol 270 MovieClip Frame 3
gotoAndStop (1);
Symbol 275 Button
on (release) {
_root.gotoAndStop("splash");
}
Symbol 276 MovieClip Frame 1
stop();
if (_parent._parent.version == "mplayer") {
stop();
} else {
this.gotoAndStop(2);
}
Symbol 282 MovieClip Frame 7
stop();
Symbol 283 Button
on (release, keyPress "<Enter>") {
args = new Array();
args[0] = "chat";
args[1] = _parent._parent.myColor;
args[2] = message;
if (message != "") {
_root.sendMovePublic(args);
message = "";
}
}
Symbol 286 MovieClip Frame 1
stop();
Symbol 286 MovieClip Frame 10
stop();
Symbol 286 MovieClip Frame 18
gotoAndStop (1);
Symbol 288 MovieClip Frame 1
stop();
Symbol 292 MovieClip Frame 1
stop();
Symbol 292 MovieClip Frame 110
gotoAndStop (1);
Symbol 294 MovieClip Frame 1
stop();
Symbol 294 MovieClip Frame 110
gotoAndStop (1);
Symbol 297 MovieClip Frame 1
stop();
Symbol 297 MovieClip Frame 2
stop();
Symbol 302 MovieClip Frame 403
_parent.gotoAndStop("refresh");
Symbol 334 MovieClip Frame 1
stop();
Symbol 429 MovieClip Frame 1
stop();
Symbol 450 Button
on (release) {
_parent._parent.gotoAndStop("splash");
}
Symbol 452 Button
on (release) {
score = Number(c1fs) + Number(c1fs2);
_root.hs = "submit";
_root.score = score;
if (_root.loggedIn) {
_root.gotoAndStop("scores");
} else {
_root.gotoAndStop("login");
}
}
Symbol 466 Button
on (release) {
_parent.multiPlayAgain();
}
Symbol 468 MovieClip Frame 1
function setPar() {
var i = -1;
s1 = 0;
s2 = 0;
while ((++i) < _parent.par.length) {
this["p" + (i + 1)] = _parent.par[i];
if (8 >= i) {
s1 = s1 + this["p" + (i + 1)];
} else {
s2 = s2 + this["p" + (i + 1)];
}
}
}
function setScores() {
var i = 0;
while (_parent.numPlayers >= (++i)) {
j = i - 1;
this["c" + i] = _parent.names[j];
var n = -1;
this[("c" + i) + "fs"] = 0;
while ((++n) < _parent["saveParScores" + i].length) {
this[(("c" + i) + "s") + (n + 1)] = _parent["saveParScores" + i][n];
this[(("c" + i) + "st") + (n + 1)] = _parent.strokesSaved[i - 1][n];
if (8 >= n) {
this[("c" + i) + "fs"] = this[("c" + i) + "fs"] + this[(("c" + i) + "s") + (n + 1)];
this[("c" + i) + "fst"] = this[("c" + i) + "fst"] + this[(("c" + i) + "st") + (n + 1)];
} else {
this[("c" + i) + "fs2"] = this[("c" + i) + "fs2"] + this[(("c" + i) + "s") + (n + 1)];
this[("c" + i) + "fst2"] = this[("c" + i) + "fst2"] + this[(("c" + i) + "st") + (n + 1)];
}
}
}
}
function clearFields() {
var i = -1;
while (18 >= (++i)) {
this["s" + i] = "";
this["c1s" + i] = "";
this["c2s" + i] = "";
this["c1st" + i] = "";
this["c2st" + i] = "";
this["p" + i] = "";
c1fst = 0;
c1fst2 = 0;
c1fs2 = 0;
c2fst = "";
c2fst2 = "";
c2fs2 = "";
if (1 < _parent.numPlayers) {
c2fst = 0;
c2fst2 = 0;
c2fs2 = 0;
}
}
fs = "";
fs1 = "";
fs2 = "";
c1fs = "";
c2fs = "";
c1 = "";
c2 = "";
}
face1 = _parent.player1char;
face2 = _parent.player2char;
clearFields();
setPar();
setScores();
this.gotoAndStop(_parent.version);
Symbol 468 MovieClip Frame 5
if (gameOver == "yes") {
play();
} else {
stop();
}
if (_parent.numPlayers == 1) {
head2._visible = 0;
place1._visible = 0;
place2._visible = 0;
}
if (c1fs < c2fs) {
place1.gotoAndStop(1);
place2.gotoAndStop(2);
} else if (c2fs < c1fs) {
place1.gotoAndStop(2);
place2.gotoAndStop(1);
} else {
place1.gotoAndStop(5);
place2.gotoAndStop(5);
}
if (c1fs2 < c2fs2) {
thePlace1.gotoAndStop(1);
thePlace2.gotoAndStop(2);
} else if (csfs2 < c1fs2) {
thePlace1.gotoAndStop(2);
thePlace2.gotoAndStop(1);
} else {
thePlace1.gotoAndStop(5);
thePlace2.gotoAndStop(5);
}
Instance of Symbol 334 MovieClip "head1" in Symbol 468 MovieClip Frame 5
onClipEvent (load) {
this.gotoAndStop(_parent.face1);
}
Instance of Symbol 334 MovieClip "head2" in Symbol 468 MovieClip Frame 5
onClipEvent (load) {
this.gotoAndStop(_parent.face2);
}
Instance of Symbol 334 MovieClip in Symbol 468 MovieClip Frame 5
onClipEvent (enterFrame) {
this.gotoAndStop(_parent.head1._currentFrame);
}
Instance of Symbol 334 MovieClip in Symbol 468 MovieClip Frame 5
onClipEvent (load) {
this.gotoAndStop(2);
}
onClipEvent (enterFrame) {
_visible = _parent.head2._visible;
}
Symbol 468 MovieClip Frame 6
stop();
Symbol 468 MovieClip Frame 20
stop();
Symbol 468 MovieClip Frame 21
theHole = "Hole " + _parent.holeNumber;
holeNum = _parent.holeNumber - 1;
tie = "";
if (9 < holeNum) {
s1 = c1fs;
s2 = c2fs;
c1fs = c1fs + c1fs2;
c2fs = c2fs + c2fs2;
}
if (c2fs < c1fs) {
end1 = "stats2";
end2 = "stats1";
} else if (c1fs < c2fs) {
end1 = "stats1";
end2 = "stats2";
} else if (c1fs == c2fs) {
end1 = "stats1";
end2 = "stats2";
tie = "yes";
}
if (tie != "yes") {
topText = "First Place.";
bottomText = "Second Place.";
} else {
topText = "Players are tied";
bottomText = "";
}
if (tie != "yes") {
if (end1 == "stats1") {
place1.gotoAndStop(1);
place2.gotoAndStop(2);
} else {
place2.gotoAndStop(1);
place1.gotoAndStop(2);
}
} else {
place2.gotoAndStop(4);
place1.gotoAndStop(3);
}
end1 = "stats1";
end2 = "stats2";
this[end1].score = c1fs;
this[end1].head.gotoAndStop(face1);
this[end2].score = c2fs;
this[end1].name = c1;
this[end2].head.gotoAndStop(face2);
this[end2].name = c2;
if (gameOver != "yes") {
play();
} else {
prevFrame();
}
Symbol 468 MovieClip Frame 85
if ((_parent.myColor == "b") || (_parent.proceed == "yes")) {
_parent.gotoAndStop("main");
} else {
play();
}
Symbol 468 MovieClip Frame 86
prevFrame();
Symbol 477 MovieClip Frame 1
stop();
Symbol 477 MovieClip Frame 5
stop();
Symbol 479 MovieClip Frame 1
controllerPath = _parent._parent._parent;
Symbol 479 MovieClip Frame 2
ballName = "ball" + controllerPath.controller.ballNumber;
point = new Object();
relativeX = _parent[ballName]._x - _x;
relativeY = _parent[ballName]._y - _y;
point.x = relativeX;
point.y = relativeY;
localToGlobal(point);
if (this.hitTest(point.x, point.y, true)) {
xs = controllerPath.controller.xMov[controllerPath.controller.ballNumber];
ys = controllerPath.controller.yMov[controllerPath.controller.ballNumber];
s = math.sqrt((xs * xs) + (ys * ys));
if (0 < s) {
if (sand.puff._currentframe == 1) {
if (1 < s) {
sand.puff.gotoAndPlay(2);
sand.puff._x = relativeX;
sand.puff._y = relativeY;
}
}
controllerPath.controller.onSand = true;
} else {
sand.puff.gotoAndStop(1);
}
} else {
sand.puff.gotoAndStop(1);
controllerPath.controller.onSand = false;
}
Symbol 479 MovieClip Frame 3
gotoAndPlay (2);
Symbol 479 MovieClip Frame 4
ballName = "ball" + controllerPath.controller.ballNumber;
point = new Object();
point.x = _parent[ballName]._x - _x;
point.y = _parent[ballName]._y - _y;
localToGlobal(point);
if (this.hitTest(point.x, point.y, true)) {
controllerPath.controller.onSand = true;
} else {
controllerPath.controller.onSand = false;
}
Symbol 487 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Symbol 493 MovieClip Frame 1
controllerPath = _parent._parent._parent;
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (center._x * (_xscale / 100)) + _x;
fy = (center._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
xp = (1 / cosY) * (fx - (zp * sinY));
centerX = xp;
centerZ = zp;
fx = (radius._x * (_xscale / 100)) + _x;
fy = (radius._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
xp = (1 / cosY) * (fx - (zp * sinY));
radX = xp;
rad = math.abs(centerX - radX);
radius._visible = 0;
center._visible = 0;
stop();
Symbol 493 MovieClip Frame 2
if (_name == "hole") {
_parent.dummyHole1.gotoAndPlay(2);
} else if (_name == "hole2") {
_parent.dummyHole2.gotoAndPlay(2);
} else if (_name == "hole3") {
_parent.dummyHole3.gotoAndPlay(2);
}
Symbol 500 MovieClip Frame 1
stop();
Symbol 500 MovieClip Frame 10
stop();
Symbol 500 MovieClip Frame 20
stop();
Instance of Symbol 500 MovieClip "sploosh" in Symbol 501 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(100);
}
Symbol 502 MovieClip Frame 1
controllerPath = _parent._parent._parent;
Symbol 502 MovieClip Frame 2
ballName = "ball" + controllerPath.controller.ballNumber;
point = new Object();
relativeX = _parent[ballName]._x - _x;
relativeY = _parent[ballName]._y - _y;
point.x = relativeX;
point.y = relativeY;
localToGlobal(point);
if (this.hitTest(point.x, point.y, true)) {
xs = controllerPath.controller.xMov[controllerPath.controller.ballNumber];
ys = controllerPath.controller.yMov[controllerPath.controller.ballNumber];
s = math.sqrt((xs * xs) + (ys * ys));
if (0 < s) {
if (puddle.sploosh._currentframe == 1) {
if (5 < s) {
puddle.sploosh.gotoAndPlay("splash2");
} else {
puddle.sploosh.gotoAndPlay("splash1");
}
}
puddle.sploosh._x = relativeX;
puddle.sploosh._y = relativeY;
controllerPath.controller.onPuddle = true;
} else {
puddle.sploosh.gotoAndStop(1);
controllerPath.controller.onPuddle = false;
}
} else {
puddle.sploosh.gotoAndStop(1);
controllerPath.controller.onPuddle = false;
}
Symbol 502 MovieClip Frame 3
gotoAndPlay (2);
Instance of Symbol 508 MovieClip in Symbol 511 MovieClip Frame 1
onClipEvent (load) {
_alpha = 60;
}
Instance of Symbol 510 MovieClip "bar" in Symbol 511 MovieClip Frame 1
onClipEvent (load) {
_alpha = 60;
}
Symbol 513 MovieClip Frame 1
stop();
Symbol 546 MovieClip Frame 1
stop();
Symbol 579 MovieClip Frame 1
stop();
Symbol 612 MovieClip Frame 1
stop();
Symbol 645 MovieClip Frame 1
stop();
Symbol 674 MovieClip Frame 1
stop();
Symbol 675 MovieClip Frame 1
stop();
Instance of Symbol 231 MovieClip "head5" in Symbol 675 MovieClip Frame 1
onClipEvent (data) {
_visible = false;
this.gotoAndStop(_parent._parent._parent.theStartFrame);
_parent._parent._parent.setHead("yes");
}
Instance of Symbol 231 MovieClip "head6" in Symbol 675 MovieClip Frame 1
onClipEvent (data) {
_visible = false;
this.gotoAndStop(_parent._parent._parent.theStartFrame);
_parent._parent._parent.setHead("yes");
}
Instance of Symbol 231 MovieClip "head4" in Symbol 675 MovieClip Frame 1
onClipEvent (data) {
_visible = false;
this.gotoAndStop(_parent._parent._parent.theStartFrame);
_parent._parent._parent.setHead("yes");
}
Instance of Symbol 231 MovieClip "head3" in Symbol 675 MovieClip Frame 1
onClipEvent (data) {
_visible = false;
this.gotoAndStop(_parent._parent._parent.theStartFrame);
_parent._parent._parent.setHead("yes");
}
Instance of Symbol 231 MovieClip "head2" in Symbol 675 MovieClip Frame 1
onClipEvent (data) {
_visible = false;
this.gotoAndStop(_parent._parent._parent.theStartFrame);
_parent._parent._parent.setHead("yes");
}
Instance of Symbol 231 MovieClip "head1" in Symbol 675 MovieClip Frame 1
onClipEvent (data) {
_visible = false;
this.gotoAndStop(_parent._parent._parent.theStartFrame);
_parent._parent._parent.setHead("yes");
}
Symbol 676 MovieClip Frame 1
stop();
_parent.setAllFrames(18);
Symbol 677 MovieClip Frame 1
function init(pp1, pp2) {
p1 = pp1;
p2 = pp2;
currentChar = p1;
player.head["head" + p1].loadMovie((controllerPath.pathToHeads + p1) + ".swf");
player.head["head" + p2].loadMovie((controllerPath.pathToHeads + p2) + ".swf");
buildCharacter(currentChar);
}
function sendToFrame() {
step = "";
rotShift = 5.625;
rotation = arrowRot;
if (rotation < 0) {
rotation = rotation + 360;
}
if (360 < rotation) {
rotation = rotation - 360;
}
i = 0;
while (frames >= (++i)) {
if ((rotation >= (degreeStep * (i - 1))) && (rotation < (degreeStep * i))) {
step = i;
}
if ((rotation >= ((degreeStep * (i - 1)) - rotShift)) && (rotation < ((degreeStep * i) - rotShift))) {
}
}
swingStep = 25 * factor;
setAllFrames(step);
getStrength();
}
function setAllFrames(theFrame) {
theStartFrame = theFrame;
player.body.gotoAndStop(theFrame);
player.club.gotoAndStop(theFrame);
player.head["head" + currentChar].gotoAndStop(theFrame);
player.shirt.gotoAndStop(theFrame);
player.skin.gotoAndStop(theFrame);
player.shadow.gotoAndStop(theFrame);
player.pants.gotoAndStop(theFrame);
}
function mouseMoveFxn() {
if (controllerPath.controller.moveEnded == "yes") {
ballName = controllerPath.controller.currentBallName;
follow();
setStrengthBar();
}
}
function setStrengthBar() {
bar.bar._xScale = 100 * factor;
}
function mouseDownFxn() {
if (_root.okToShoot()) {
if (controllerPath.controller.moveEnded == "yes") {
if (followMouse == true) {
followMouse = false;
if ((rot == "") || (rot == null)) {
rot = 0;
}
if ((factor == "") || (factor == null)) {
factor = 0.25;
}
controllerPath.controller.shoot(rot, factor);
_visible = 0;
}
}
}
}
function follow() {
if (followMouse == true) {
ballName = controllerPath.controller.currentBallName;
var bx = _parent[ballName]._x;
var by = _parent[ballName]._y;
var fx = _parent._xMouse;
var fy = _parent._yMouse;
var zp = (((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY))));
var xp = ((1 / cosY) * (fx - (zp * sinY)));
var x1 = xp;
var z1 = zp;
var fx = bx;
var fy = by;
var zp = (((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY))));
var xp = ((1 / cosY) * (fx - (zp * sinY)));
var x2 = xp;
var z2 = zp;
var xDiff = (x1 - x2);
var zDiff = (z1 - z2);
rot = math.atan2(zDiff, xDiff) + math.pi;
rotation = ((rot - math.pi) * 180) / math.pi;
if (rotation < 0) {
rotation = rotation + 360;
}
var xDiff = (_parent._xMouse - bx);
var yDiff = (_parent._yMouse - by);
lineRot = math.atan2(yDiff, xDiff);
arrowRot = (lineRot * 180) / math.pi;
arrow._rotation = arrowRot + 180;
sendToFrame();
_x = _parent[ballName]._x;
_y = _parent[ballName]._y;
}
}
function setClubFrame(factor) {
zeroFrame = 10;
maxFrame = 18;
frameStep = maxFrame - zeroFrame;
clubFrame = zeroFrame + int(factor * frameStep);
player.club.club.gotoAndStop(clubFrame);
}
function getStrength() {
var fx = (_parent._xMouse - _x);
var fy = (_parent._yMouse - _y);
var dis = math.sqrt((fx * fx) + (fy * fy));
var minDis = 10;
var maxDis = 80;
var minFac = 0.15;
factor = (dis - minDis) / maxDis;
if (factor < minFac) {
factor = minFac;
}
if (1 < factor) {
factor = 1;
}
setClubFrame(factor);
}
function showMe(name) {
return(((("head" + currentChar) == name) ? true : false));
}
function changeColorOLD(path, r, g, b) {
trace("path=" + path);
myColor = new Color(path);
colorTransform = {ra:100, rb:r, ga:100, gb:g, ba:100, bb:b, aa:100, ab:0};
myColor.setTransform(colorTransform);
}
function setHead(fromHead) {
if (fromHead == "yes") {
headsLoaded++;
}
var i = 0;
while ((++i) < 7) {
player.head["head" + i]._visible = false;
}
player.head["head" + currentChar].gotoAndStop(theStartFrame);
if (headsLoaded >= numPlayers) {
player.head["head" + currentChar]._visible = true;
player._visible = true;
player.run = player.ef;
}
}
function changeCharacter(newChar) {
buildCharacter(this["p" + newChar]);
}
function buildCharacter(whichCharacter) {
currentChar = whichCharacter;
setHead();
charPath = player;
charPath.shirt.changeColor(this["character" + whichCharacter][0], this["character" + whichCharacter][1], this["character" + whichCharacter][2]);
charPath.pants.changeColor(this["character" + whichCharacter][3], this["character" + whichCharacter][4], this["character" + whichCharacter][5]);
charPath.skin.changeColor(this["character" + whichCharacter][6], this["character" + whichCharacter][7], this["character" + whichCharacter][8]);
}
stop();
numPlayers = _parent._parent._parent.numPlayers;
headsLoaded = 0;
controllerPath = _parent._parent._parent;
player._visible = false;
_x = _parent.ball0._x;
_y = _parent.ball0._y;
this.swapDepths(11000);
setAllFrames(18);
makeInvis = false;
if (makeInvis) {
player._visible = 0;
}
frames = 32;
degreeStep = 360 / frames;
ballName = controllerPath.controller.currentBallName;
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosX = controllerPath.controller.cosX;
cosY = controllerPath.controller.cosY;
character1 = [255, 255, 255, 1, 84, 222, 247, 186, 168];
character2 = [1, 173, 1, 0, 0, 153, 238, 186, 149];
character3 = [120, 105, 228, 47, 191, 190, 247, 187, 168];
character4 = [197, 52, 52, 44, 123, 254, 234, 150, 100];
init(controllerPath.player1Char, controllerPath.player2Char);
Instance of Symbol 676 MovieClip "player" in Symbol 677 MovieClip Frame 1
onClipEvent (load) {
function ef() {
if (key.isDown(16)) {
_visible = 0;
} else {
_visible = 1;
}
}
run = null;
}
onClipEvent (enterFrame) {
run();
}
Symbol 683 MovieClip Frame 1
stop();
Symbol 683 MovieClip Frame 2
currentBallName = _parent._parent._parent.controller.currentBallName;
_x = _parent[currentBallName]._x;
_y = _parent[currentBallName]._y;
Symbol 690 MovieClip Frame 1
stop();
Symbol 693 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numBumpers;
_name = ("bumper" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (c._x * (_xscale / 100)) + _x;
fy = (c._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
centerZ = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
centerX = xp;
fx = (r._x * (_xscale / 100)) + _x;
fy = (r._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
rz = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
rx = xp;
radius = math.abs(centerX - rx);
rm = rx;
tm = rz + radius;
top = centerZ - radius;
bottom = centerZ + radius;
right = centerX + radius;
left = centerX - radius;
controllerPath.controller.addScore(_target);
Instance of Symbol 474 MovieClip in Symbol 694 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 487 MovieClip in Symbol 694 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 677 MovieClip "line" in Symbol 694 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 693 MovieClip in Symbol 694 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 697 MovieClip in Symbol 698 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 677 MovieClip "line" in Symbol 698 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 679 MovieClip "pad" in Symbol 698 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Symbol 703 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numBanks;
_name = ("bank" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
tm = top;
rm = right;
controllerPath.controller.addScore(_target);
_visible = 0;
angle = 45;
Symbol 705 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Instance of Symbol 701 MovieClip in Symbol 706 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 677 MovieClip "line" in Symbol 706 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 679 MovieClip "pad" in Symbol 706 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Symbol 712 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
controllerPath.controller.addScore(_target);
bl._visible = 0;
br._visible = 0;
tl._visible = 0;
tr._visible = 0;
Symbol 718 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numBanks;
_name = ("bank" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
tm = top;
rm = right;
controllerPath.controller.addScore(_target);
_visible = 0;
angle = 135;
Symbol 720 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numBanks;
_name = ("bank" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
tm = top;
rm = right;
controllerPath.controller.addScore(_target);
_visible = 0;
angle = 315;
Symbol 722 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numBanks;
_name = ("bank" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
tm = top;
rm = right;
controllerPath.controller.addScore(_target);
_visible = 0;
angle = 225;
Symbol 724 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Instance of Symbol 710 MovieClip in Symbol 725 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 677 MovieClip "line" in Symbol 725 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 714 MovieClip in Symbol 725 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(9999);
}
Instance of Symbol 716 MovieClip in Symbol 725 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(500);
}
Instance of Symbol 716 MovieClip in Symbol 725 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(501);
}
Symbol 730 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Symbol 732 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Symbol 737 MovieClip Frame 1
lb._visible = 0;
tb._visible = 0;
rb._visible = 0;
bb._visible = 0;
Instance of Symbol 677 MovieClip "line" in Symbol 737 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 728 MovieClip in Symbol 737 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 493 MovieClip "hole" in Symbol 737 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 679 MovieClip "pad" in Symbol 737 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 693 MovieClip in Symbol 737 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 693 MovieClip in Symbol 737 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 677 MovieClip "line" in Symbol 741 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 740 MovieClip in Symbol 741 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 493 MovieClip "hole" in Symbol 741 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Symbol 751 MovieClip Frame 1
controllerPath = _parent._parent._parent;
type = "x1";
myNum = ++controllerPath.controller.numBelts;
_name = ("belt" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
tl._visible = 0;
br._visible = 0;
bl._visible = 0;
tr._visible = 0;
Symbol 753 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Instance of Symbol 677 MovieClip "line" in Symbol 754 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 745 MovieClip in Symbol 754 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 693 MovieClip in Symbol 754 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 693 MovieClip in Symbol 754 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Symbol 759 MovieClip Frame 1
if (done != "yes") {
done = "yes";
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numBelts;
_name = ("belt" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
tl._visible = 0;
br._visible = 0;
bl._visible = 0;
tr._visible = 0;
this.gotoAndPlay(random(_totalframes + 2));
}
Symbol 765 MovieClip Frame 1
controllerPath = _parent._parent._parent;
Symbol 765 MovieClip Frame 2
ballName = "ball" + controllerPath.controller.ballNumber;
point = new Object();
relativeX = _parent[ballName]._x - _x;
relativeY = _parent[ballName]._y - _y;
point.x = relativeX;
point.y = relativeY;
localToGlobal(point);
if (this.hitTest(point.x, point.y, true)) {
xs = controllerPath.controller.xMov[controllerPath.controller.ballNumber];
ys = controllerPath.controller.yMov[controllerPath.controller.ballNumber];
s = math.sqrt((xs * xs) + (ys * ys));
if (0 < s) {
if (sand.puff._currentframe == 1) {
if (3 < s) {
sand.puff.gotoAndPlay(2);
sand.puff._x = relativeX;
sand.puff._y = relativeY;
}
}
controllerPath.controller.onSand = true;
} else {
sand.puff.gotoAndStop(1);
}
} else {
sand.puff.gotoAndStop(1);
controllerPath.controller.onSand = false;
}
Symbol 765 MovieClip Frame 3
gotoAndPlay (2);
Symbol 765 MovieClip Frame 4
ballName = "ball" + controllerPath.controller.ballNumber;
point = new Object();
point.x = _parent[ballName]._x - _x;
point.y = _parent[ballName]._y - _y;
localToGlobal(point);
if (this.hitTest(point.x, point.y, true)) {
controllerPath.controller.onSand = true;
} else {
controllerPath.controller.onSand = false;
}
Instance of Symbol 500 MovieClip "sploosh" in Symbol 767 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(100);
}
Symbol 768 MovieClip Frame 1
controllerPath = _parent._parent._parent;
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = _x - 110;
fy = _y - 25;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
xp = (1 / cosY) * (fx - (zp * sinY));
Symbol 768 MovieClip Frame 2
ballName = "ball" + controllerPath.controller.ballNumber;
point = new Object();
relativeX = _parent[ballName]._x - _x;
relativeY = _parent[ballName]._y - _y;
point.x = relativeX;
point.y = relativeY;
localToGlobal(point);
if (this.hitTest(point.x, point.y, true)) {
if (math.abs(controllerPath.controller.yPos[controllerPath.controller.ballNumber] - controllerPath.controller.floor) < 2) {
xs = controllerPath.controller.xMov[controllerPath.controller.ballNumber];
ys = controllerPath.controller.yMov[controllerPath.controller.ballNumber];
s = math.sqrt((xs * xs) + (ys * ys));
if (4 < s) {
puddle.sploosh.gotoAndPlay("splash2");
} else {
puddle.sploosh.gotoAndPlay("splash1");
}
puddle.sploosh._x = relativeX;
puddle.sploosh._y = relativeY;
controllerPath.controller.hitPool(xp, zp);
}
}
Symbol 768 MovieClip Frame 3
gotoAndPlay (2);
Symbol 771 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Symbol 775 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
controllerPath.controller.addScore(_target);
bl._visible = 0;
br._visible = 0;
tl._visible = 0;
tr._visible = 0;
Symbol 779 MovieClip Frame 1
if (done != "yes") {
done = "yes";
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numBelts;
_name = ("belt" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
tl._visible = 0;
br._visible = 0;
bl._visible = 0;
tr._visible = 0;
this.gotoAndPlay(random(_totalframes + 2));
}
Instance of Symbol 500 MovieClip "sploosh" in Symbol 781 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(100);
}
Symbol 782 MovieClip Frame 1
controllerPath = _parent._parent._parent;
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = _x - 110;
fy = _y - 25;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
xp = (1 / cosY) * (fx - (zp * sinY));
Symbol 782 MovieClip Frame 2
ballName = "ball" + controllerPath.controller.ballNumber;
point = new Object();
relativeX = _parent[ballName]._x - _x;
relativeY = _parent[ballName]._y - _y;
point.x = relativeX;
point.y = relativeY;
localToGlobal(point);
if (this.hitTest(point.x, point.y, true)) {
if (math.abs(controllerPath.controller.yPos[controllerPath.controller.ballNumber] - controllerPath.controller.floor) < 2) {
xs = controllerPath.controller.xMov[controllerPath.controller.ballNumber];
ys = controllerPath.controller.yMov[controllerPath.controller.ballNumber];
s = math.sqrt((xs * xs) + (ys * ys));
if (4 < s) {
puddle.sploosh.gotoAndPlay("splash2");
} else {
puddle.sploosh.gotoAndPlay("splash1");
}
puddle.sploosh._x = relativeX;
puddle.sploosh._y = relativeY;
controllerPath.controller.hitPool(xp, zp);
}
}
Symbol 782 MovieClip Frame 3
gotoAndPlay (2);
Instance of Symbol 677 MovieClip "line" in Symbol 783 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 759 MovieClip in Symbol 783 MovieClip Frame 1
onClipEvent (load) {
type = "z2";
}
Instance of Symbol 759 MovieClip in Symbol 783 MovieClip Frame 1
onClipEvent (load) {
type = "z21";
}
Instance of Symbol 759 MovieClip in Symbol 783 MovieClip Frame 1
onClipEvent (load) {
type = "z21";
}
Instance of Symbol 759 MovieClip in Symbol 783 MovieClip Frame 1
onClipEvent (load) {
type = "z21";
}
Instance of Symbol 762 MovieClip in Symbol 783 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 773 MovieClip in Symbol 783 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(303);
}
Instance of Symbol 773 MovieClip in Symbol 783 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(302);
}
Instance of Symbol 777 MovieClip in Symbol 783 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(331);
}
Instance of Symbol 759 MovieClip in Symbol 783 MovieClip Frame 1
onClipEvent (load) {
type = "x21";
}
Instance of Symbol 759 MovieClip in Symbol 783 MovieClip Frame 1
onClipEvent (load) {
type = "x21";
}
Instance of Symbol 759 MovieClip in Symbol 783 MovieClip Frame 1
onClipEvent (load) {
type = "z21";
}
Instance of Symbol 779 MovieClip in Symbol 783 MovieClip Frame 1
onClipEvent (load) {
type = "x11";
}
Instance of Symbol 779 MovieClip in Symbol 783 MovieClip Frame 1
onClipEvent (load) {
type = "z11";
}
Symbol 788 MovieClip Frame 1
controllerPath = _parent._parent._parent;
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = _x - 110;
fy = _y - 25;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
xp = (1 / cosY) * (fx - (zp * sinY));
Symbol 788 MovieClip Frame 2
ballName = "ball" + controllerPath.controller.ballNumber;
point = new Object();
relativeX = _parent[ballName]._x - _x;
relativeY = _parent[ballName]._y - _y;
point.x = relativeX;
point.y = relativeY;
localToGlobal(point);
if (this.hitTest(point.x, point.y, true)) {
if (math.abs(controllerPath.controller.yPos[controllerPath.controller.ballNumber] - controllerPath.controller.floor) < 2) {
xs = controllerPath.controller.xMov[controllerPath.controller.ballNumber];
ys = controllerPath.controller.yMov[controllerPath.controller.ballNumber];
s = math.sqrt((xs * xs) + (ys * ys));
if (4 < s) {
puddle.sploosh.gotoAndPlay("splash2");
} else {
puddle.sploosh.gotoAndPlay("splash1");
}
puddle.sploosh._x = relativeX;
puddle.sploosh._y = relativeY;
controllerPath.controller.hitPool(xp, zp);
}
}
Symbol 788 MovieClip Frame 3
gotoAndPlay (2);
Symbol 790 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Instance of Symbol 677 MovieClip "line" in Symbol 791 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 787 MovieClip in Symbol 791 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 679 MovieClip "pad" in Symbol 791 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Symbol 796 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Instance of Symbol 794 MovieClip in Symbol 797 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 777 MovieClip in Symbol 797 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(331);
}
Instance of Symbol 677 MovieClip "line" in Symbol 797 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 679 MovieClip "pad" in Symbol 797 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Symbol 806 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Instance of Symbol 677 MovieClip "line" in Symbol 807 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 801 MovieClip in Symbol 807 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 804 MovieClip in Symbol 807 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10001);
}
Instance of Symbol 773 MovieClip in Symbol 807 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(302);
}
Instance of Symbol 693 MovieClip in Symbol 807 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 493 MovieClip "dummy2" in Symbol 807 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 493 MovieClip "dummy3" in Symbol 807 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Symbol 812 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
controllerPath.controller.addScore(_target);
bl._visible = 0;
br._visible = 0;
tl._visible = 0;
tr._visible = 0;
Instance of Symbol 810 MovieClip in Symbol 815 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 814 MovieClip in Symbol 815 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(301);
}
Instance of Symbol 814 MovieClip in Symbol 815 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(302);
}
Instance of Symbol 493 MovieClip "hole" in Symbol 815 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 677 MovieClip "line" in Symbol 815 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Symbol 821 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Symbol 823 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Symbol 824 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Instance of Symbol 818 MovieClip in Symbol 825 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 493 MovieClip "hole" in Symbol 825 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 677 MovieClip "line" in Symbol 825 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 824 MovieClip in Symbol 825 MovieClip Frame 1
onClipEvent (enterFrame) {
num = _parent._parent._parent.controller.ballNumber;
if (_parent["moveMe" + num] == "yes") {
disregard = "no";
} else {
disregard = "yes";
}
}
Instance of Symbol 693 MovieClip in Symbol 825 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 693 MovieClip in Symbol 825 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 693 MovieClip in Symbol 825 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 693 MovieClip in Symbol 825 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Symbol 830 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Instance of Symbol 828 MovieClip in Symbol 831 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 677 MovieClip "line" in Symbol 831 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Symbol 837 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Symbol 840 MovieClip Frame 1
Instance of Symbol 677 MovieClip "line" in Symbol 840 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 834 MovieClip in Symbol 840 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 493 MovieClip "hole2" in Symbol 840 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 839 MovieClip in Symbol 840 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10001);
}
Instance of Symbol 493 MovieClip "dummy2" in Symbol 840 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 493 MovieClip "hole" in Symbol 840 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 712 MovieClip in Symbol 840 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 716 MovieClip in Symbol 840 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(501);
}
Instance of Symbol 693 MovieClip in Symbol 840 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 693 MovieClip in Symbol 840 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Symbol 848 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numboxes;
_name = ("box" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (tl._x * (_xscale / 100)) + _x;
fy = (tl._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
top = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
left = xp;
fx = (br._x * (_xscale / 100)) + _x;
fy = (br._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
bottom = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
right = xp;
rm = right;
tm = top;
_visible = 0;
Symbol 851 MovieClip Frame 1
Instance of Symbol 677 MovieClip "line" in Symbol 851 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 843 MovieClip in Symbol 851 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10002);
}
Instance of Symbol 493 MovieClip "dummy2" in Symbol 851 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 846 MovieClip in Symbol 851 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 716 MovieClip in Symbol 851 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(500);
}
Instance of Symbol 716 MovieClip in Symbol 851 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(501);
}
Instance of Symbol 693 MovieClip in Symbol 851 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 850 MovieClip in Symbol 851 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(304);
}
Instance of Symbol 493 MovieClip "hole2" in Symbol 851 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 693 MovieClip in Symbol 851 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 693 MovieClip in Symbol 851 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 693 MovieClip in Symbol 851 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 693 MovieClip in Symbol 851 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 693 MovieClip in Symbol 851 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 693 MovieClip in Symbol 851 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 677 MovieClip "line" in Symbol 855 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 854 MovieClip in Symbol 855 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10000);
}
Instance of Symbol 679 MovieClip "pad" in Symbol 855 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Symbol 861 MovieClip Frame 1
controllerPath = _parent._parent._parent;
myNum = ++controllerPath.controller.numFans;
_name = ("fan" + myNum);
sinY = controllerPath.controller.sinY;
sinX = controllerPath.controller.sinX;
cosY = controllerPath.controller.cosY;
cosX = controllerPath.controller.cosX;
fx = (c._x * (_xscale / 100)) + _x;
fy = (c._y * (_xscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
centerZ = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
centerX = xp;
fx = (r._x * (_xscale / 100)) + _x;
fy = (r._y * (_yscale / 100)) + _y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
rz = zp;
xp = (1 / cosY) * (fx - (zp * sinY));
rx = xp;
radius = math.abs(centerX - rx);
rm = rx;
tm = rz + radius;
top = centerZ - radius;
bottom = centerZ + radius;
right = centerX + radius;
left = centerX - radius;
Symbol 871 MovieClip Frame 1
Instance of Symbol 677 MovieClip "line" in Symbol 871 MovieClip Frame 1
onClipEvent (mouseMove) {
mouseMoveFxn();
}
onClipEvent (mouseDown) {
mouseDownFxn();
}
Instance of Symbol 863 MovieClip in Symbol 871 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10001);
}
Instance of Symbol 865 MovieClip in Symbol 871 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10002);
}
Instance of Symbol 867 MovieClip in Symbol 871 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10003);
}
Instance of Symbol 869 MovieClip in Symbol 871 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(10004);
}
Instance of Symbol 693 MovieClip in Symbol 871 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 850 MovieClip in Symbol 871 MovieClip Frame 1
onClipEvent (load) {
this.swapDepths(304);
}
Instance of Symbol 493 MovieClip "dummy2" in Symbol 871 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 493 MovieClip "dummy3" in Symbol 871 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 493 MovieClip "dummy4" in Symbol 871 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Instance of Symbol 493 MovieClip "dummy5" in Symbol 871 MovieClip Frame 1
onClipEvent (load) {
_visible = 0;
}
Symbol 872 MovieClip Frame 1
function getInfo(x, y) {
_root.point = new Object();
_root.point.x = x;
_root.point.y = y;
globalToLocal(_root.point);
}
function scrollMe() {
ok = true;
if (key.isDown(37)) {
endX = endX + xs;
ok = false;
xwent = true;
} else if (key.isDown(39)) {
endX = endX - xs;
xwent = true;
ok = false;
}
if (key.isDown(38)) {
endY = endY + ys;
ywent = true;
ok = false;
} else if (key.isDown(40)) {
ywent = true;
endY = endY - ys;
ok = false;
}
if (ok) {
ballName = "ball" + _parent._parent.controller.ballNumber;
name = _parent._parent.controller.currentBallName;
point = new Object();
point.x = this[name]._x;
point.y = this[name]._y;
localToGlobal(point);
x = point.x;
y = point.y;
if (x < xborder) {
if (!xwent) {
endX = endX + xshift;
} else {
_parent.getInfo(xborder, y);
x = _root.point.x - this[name]._x;
endX = x;
_x = x;
}
} else if ((700 - xborder) < x) {
if (!xwent) {
endX = endX - xshift;
} else {
_parent.getInfo(700 - xborder, y);
x = _root.point.x - this[name]._x;
endX = x;
_x = x;
}
}
if (y < yborder) {
if (!ywent) {
endY = endY + yshift;
} else {
_parent.getInfo(x, yborder);
y = _root.point.y - this[name]._y;
endY = y;
_y = y;
}
} else if ((400 - yborder) < y) {
if (!ywent) {
endY = endY - yshift;
} else {
_parent.getInfo(x, 400 - yborder);
y = _root.point.y - this[name]._y;
endY = y;
_y = y;
}
}
xwent = false;
ywent = false;
}
xMov = (endX - _x) * k;
_x = (_x + xMov);
yMov = (endY - _y) * k;
_y = (_y + yMov);
}
function loadMe() {
ball._visible = false;
shadow._visible = false;
dot1._visible = false;
dot2._visible = false;
dot3._visible = false;
dot4._visible = false;
xborder = 120;
xs = 10;
ys = 10;
yborder = 90;
homeX = _x;
k = 0.3;
endX = homeX;
xwent = false;
ywent = false;
xshift = 100;
yshift = 60;
k = 0.3;
startY = _y;
xwent = true;
ywent = true;
endY = _y;
endX = _x;
}
stop();
courseShift = 100;
shift = 60;
k = 0.3;
xGive = 30;
yGive = xgive;
Instance of Symbol 694 MovieClip "course" in Symbol 872 MovieClip Frame 5
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 698 MovieClip "course" in Symbol 872 MovieClip Frame 10
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 706 MovieClip "course" in Symbol 872 MovieClip Frame 16
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 725 MovieClip "course" in Symbol 872 MovieClip Frame 21
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 737 MovieClip "course" in Symbol 872 MovieClip Frame 26
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 741 MovieClip "course" in Symbol 872 MovieClip Frame 31
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 754 MovieClip "course" in Symbol 872 MovieClip Frame 36
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 783 MovieClip "course" in Symbol 872 MovieClip Frame 40
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 791 MovieClip "course" in Symbol 872 MovieClip Frame 46
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 797 MovieClip "course" in Symbol 872 MovieClip Frame 51
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 807 MovieClip "course" in Symbol 872 MovieClip Frame 56
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 815 MovieClip "course" in Symbol 872 MovieClip Frame 61
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 825 MovieClip "course" in Symbol 872 MovieClip Frame 66
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 831 MovieClip "course" in Symbol 872 MovieClip Frame 71
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 840 MovieClip "course" in Symbol 872 MovieClip Frame 76
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 851 MovieClip "course" in Symbol 872 MovieClip Frame 82
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 855 MovieClip "course" in Symbol 872 MovieClip Frame 87
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Instance of Symbol 871 MovieClip "course" in Symbol 872 MovieClip Frame 92
onClipEvent (enterFrame) {
scrollMe();
}
onClipEvent (load) {
loadMe = _parent.loadMe;
loadMe();
scrollMe = _parent.scrollMe;
}
Symbol 877 MovieClip Frame 1
stop();
Symbol 877 MovieClip Frame 2
play();
Symbol 877 MovieClip Frame 35
gotoAndStop (1);
Symbol 886 MovieClip Frame 1
function hitDetect() {
ret = false;
mx = _root._xMouse;
my = _root._yMouse;
if (this.hitTest(mx, my)) {
ret = true;
}
return(ret);
}
_root.shotBlockArr.push(this.valueOf());
_visible = false;
stop();
Symbol 891 MovieClip Frame 1
function preloadHeads() {
this["head" + player1Char].loadMovie((pathToHeads + player1Char) + ".swf");
this["head" + player2Char].loadMovie((pathToHeads + player2Char) + ".swf");
}
function passInfo(args) {
if (args[0] == "restart") {
this.gotoAndPlay(1);
} else if (args[0] == "chat") {
if (args[1] == "w") {
bub1.message = args[2];
bub1.gotoAndPlay(2);
} else if (args[1] == "b") {
bub2.message = args[2];
bub2.gotoAndPlay(2);
}
} else if (args[0] == "shot") {
this.controller.manualShoot(Number(args[1]), Number(args[2]), Number(args[3]), Number(args[4]), Number(args[5]), Number(args[6]), Number(args[7]), Number(args[8]), args[9]);
} else if (args[0] == "endmove") {
controller.endTheMove(args);
} else if (args[0] == "proceed") {
proceed = "yes";
} else if (args[0] == "selection") {
forceSelection(Number(args[1]), Number(args[2]));
}
hist.scroll = hist.maxscroll;
}
function multiPlayAgain() {
this.gotoAndPlay(1);
args = new Array();
args[0] = "restart";
_root.sendMove(args);
}
function changePlayer(name) {
if (1 < numPlayers) {
playerText = names[name] + "'s Turn.";
}
}
version = _parent.version;
holeNumber = _parent.startingHole - 1;
player1Char = _parent.player1Char;
player2Char = _parent.player2Char;
if (version == "mplayer") {
pathToHeads = "http://www.electrotank.com/games/multiuser/games/minigolf/head0";
} else {
pathToHeads = "head0";
}
timesCalled = 0;
imTesting = "yes";
totalHoles = 18;
maxStrokes = 10;
par = new Array();
strokes = new Array(0, 0, 0, 0, 0, 0, 0);
strokesSaved = new Array(new Array(), new Array());
par = [2, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 5, 3, 4];
numPlayers = _parent.numPlayers;
char1 = 1;
char2 = 2;
proceed = "no";
if (version == "mplayer") {
numPlayers = 2;
myColor = _root.letter;
if ((myColor == "w") || (myColor == "white")) {
myColor = "w";
myTurn = true;
_parent.player1 = _root.userName;
_parent.player2 = _root.opponent;
} else {
myColor = "b";
myTurn = false;
_parent.player2 = _root.userName;
_parent.player1 = _root.opponent;
}
refreshClip._visible = 0;
} else {
chat.chatClip._visible = 0;
chat.chatClip.b.gotoAndStop(2);
status._visible = 0;
}
score = new Array(0, 0, 0, 0, 0, 0, 0);
parScore = new Array(0, 0, 0, 0, 0, 0, 0);
strokes = new Array(0, 0, 0, 0, 0, 0, 0);
names = new Array();
var i = -1;
while ((++i) < numPlayers) {
names[i] = _parent["player" + (i + 1)];
this["saveParScores" + (i + 1)] = new Array();
}
if ((version != "mplayer") || (wereHere == "yes")) {
if (_root.playedYet != "yes") {
_root.playedYet = "yes";
gotoAndStop ("refresh");
} else {
gotoAndStop ("refresh");
}
} else {
stop();
}
Instance of Symbol 231 MovieClip "head1" in Symbol 891 MovieClip Frame 1
onClipEvent (data) {
this.gotoAndStop(_parent._parent._parent.theStartFrame);
}
Instance of Symbol 231 MovieClip "head2" in Symbol 891 MovieClip Frame 1
onClipEvent (data) {
this.gotoAndStop(_parent._parent._parent.theStartFrame);
}
Instance of Symbol 231 MovieClip "head3" in Symbol 891 MovieClip Frame 1
onClipEvent (data) {
this.gotoAndStop(_parent._parent._parent.theStartFrame);
}
Instance of Symbol 231 MovieClip "head3" in Symbol 891 MovieClip Frame 1
onClipEvent (data) {
this.gotoAndStop(_parent._parent._parent.theStartFrame);
}
Instance of Symbol 231 MovieClip "head4" in Symbol 891 MovieClip Frame 1
onClipEvent (data) {
this.gotoAndStop(_parent._parent._parent.theStartFrame);
}
Instance of Symbol 231 MovieClip "head5" in Symbol 891 MovieClip Frame 1
onClipEvent (data) {
this.gotoAndStop(_parent._parent._parent.theStartFrame);
}
Instance of Symbol 231 MovieClip "head6" in Symbol 891 MovieClip Frame 1
onClipEvent (data) {
this.gotoAndStop(_parent._parent._parent.theStartFrame);
}
Instance of Symbol 240 MovieClip "soundfx" in Symbol 891 MovieClip Frame 1
onClipEvent (load) {
_visible = false;
}
Instance of Symbol 243 MovieClip "sounds" in Symbol 891 MovieClip Frame 1
onClipEvent (load) {
_visible = false;
}
Instance of Symbol 247 MovieClip "status" in Symbol 891 MovieClip Frame 1
onClipEvent (enterFrame) {
if (go) {
delay++;
if ((_parent.version == "mplayer") && (15 < delay)) {
if (_root.myRoom == _root.gameRoom) {
_parent.debug = (((((("place 3\ruser total=" add _root.userTotal) add newline) add "currentframe=") add _currentframe) add newline) add "werehere=") add _parent.werehere;
if ((Number(_root.userTotal) == 2) && (Number(_currentframe) == 1)) {
_parent.wereHere = "yes";
_parent.gotoAndStop("select");
this.gotoAndStop(2);
} else if ((Number(_root.userTotal) < 2) && (_currentframe == 2)) {
this.gotoAndStop(3);
}
} else {
_parent.debug = ((("place 2\rmyRoom=" add _root.myRoom) add newline) add "gameRoom=") add _root.gameRoom;
}
} else {
_parent.debug = ((("place 3\rversion=" add _parent.version) add newline) add "delay=") add delay;
}
}
}
onClipEvent (load) {
go = true;
delay = 0;
}
Instance of Symbol 286 MovieClip "chat" in Symbol 891 MovieClip Frame 1
onClipEvent (enterFrame) {
if (_parent.version == "mplayer") {
if (selection.getFocus().substr(selection.getFocus().length - 7) != "message") {
selection.setFocus("message");
}
} else {
_parent.cover.gotoAndStop(2);
}
}
Instance of Symbol 292 MovieClip "bub1" in Symbol 891 MovieClip Frame 1
onClipEvent (load) {
endX = _x;
endY = _y;
}
onClipEvent (enterFrame) {
_x = endX;
_y = endY;
}
Instance of Symbol 294 MovieClip "bub2" in Symbol 891 MovieClip Frame 1
onClipEvent (enterFrame) {
endX = _x;
endY = _y;
_x = endX;
_y = endY;
}
Symbol 891 MovieClip Frame 2
function sendSelection(one, two, three) {
args = new Array();
args = [one, two, three];
_root.sendMove(args);
}
function choseChar(num) {
myPick = false;
mp["c" + num].gotoAndStop(num + 1);
this[("player" + ((myColor == "w") ? 1 : 2)) + "char"] = num;
sendSelection("selection", num, ((myColor == "w") ? 1 : 2));
if (myColor == "b") {
this.gotoAndStop("intro");
}
}
function forceSelection(ch, num) {
this[("player" + num) + "char"] = ch;
mp["c" + ch].gotoAndStop(ch + 1);
mp["c" + ch].taken = "yes";
if (myColor == "w") {
this.gotoAndStop("intro");
} else {
myPick = true;
}
}
function moreOk() {
if (myPick) {
return(true);
}
return(false);
}
if (myColor == "w") {
myPick = true;
thePlayer1 = _root.userName;
thePlayer2 = _root.opponent;
} else {
thePlayer1 = _root.opponent;
thePlayer2 = _root.userName;
myPick = false;
}
Instance of Symbol 297 MovieClip "text" in Symbol 891 MovieClip Frame 2
onClipEvent (enterFrame) {
if (_parent.myPick) {
this.gotoAndStop(1);
} else {
this.gotoAndStop(2);
}
}
Symbol 891 MovieClip Frame 6
if (imTesting == "yes") {
gotoAndPlay ("refresh");
} else {
stop();
}
Symbol 891 MovieClip Frame 11
function tallyScore() {
if (0 < holeNumber) {
var i = 0;
while (numPlayers >= (++i)) {
var j = (i - 1);
score[j] = score[j] + strokes[j];
strokesSaved[j][holeNumber - 1] = strokes[j];
var thisPar = (strokes[j] - par[holeNumber - 1]);
parScore[j] = parScore[j] + thisPar;
this["saveParScores" + i].push(thisPar);
}
}
}
tallyScore();
holeNumber++;
changePlayer(0);
if (totalHoles < holeNumber) {
holeNumber = totalHoles;
endOfGame = "yes";
}
if (endOfGame == "yes") {
endOfGame = "no";
gotoAndStop ("gameOver");
} else {
gotoAndStop ("splash");
}
if (numPlayers == 1) {
playerText = "Good Luck!";
}
Instance of Symbol 468 MovieClip "scoreCard" in Symbol 891 MovieClip Frame 19
onClipEvent (mouseDown) {
if (_parent.version == "standalone") {
_parent.gotoAndStop("main");
}
}
Instance of Symbol 468 MovieClip "scoreCard" in Symbol 891 MovieClip Frame 25
onClipEvent (load) {
gameOver = "yes";
}
Symbol 891 MovieClip Frame 35
function setStrokeText(num) {
strokes[num]++;
strokeText = "Number of strokes: " + strokes[num];
}
strokes = new Array(0, 0, 0, 0, 0, 0, 0);
hole = "hole" + holeNumber;
whichHole = "Hole " + holeNumber;
currentPar = par[holeNumber - 1];
whichPar = "Par " + currentPar;
strokeText = "Number of strokes: 0";
proceed = "no";
stop();
Instance of Symbol 471 MovieClip "controller" in Symbol 891 MovieClip Frame 35
onClipEvent (load) {
function endTheMove(args) {
moveEnded = "yes";
_parent.screenSync._visible = 0;
}
function shotMessage(msgType, numStrokes) {
if (msgType == "shotlimit") {
shotMsg = "Stroke Limit Reached.";
}
if (msgType == "ballin") {
if (numStrokes == 1) {
shotMsg = "Hole in one!";
} else if (((par - numStrokes) == 2) && (numStrokes != 1)) {
shotMsg = "Eagle!";
} else if ((par - numStrokes) == 1) {
shotMsg = "Birdie!";
} else if ((par - numStrokes) == 0) {
shotMsg = "Par!";
} else if ((par - numStrokes) == -1) {
shotMsg = "Bogey";
} else if ((par - numStrokes) == -2) {
shotMsg = "Double Bogey.";
} else if ((par - numStrokes) < -2) {
meanMsg = random(3);
if (meanMsg == 0) {
shotMsg = "Finally, the ball is in.";
} else if (meanMsg == 1) {
shotMsg = "Don't quit your day job.";
} else if (meanMsg == 2) {
shotMsg = "You could use some practice.";
}
}
}
_parent.shotMessage.message = shotMsg;
_parent.shotMessage.gotoAndPlay(2);
}
function manualShoot(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
if (arg9 != _root.username) {
moveEnded = "no";
_parent.screenSync._visible = 1;
xPos[0] = arg3;
yPos[0] = arg4;
zPos[0] = arg5;
xPos[1] = arg6;
yPos[1] = arg7;
zPos[1] = arg8;
shoot(arg1, arg2, "manual");
}
}
function traceArgs() {
argText = "";
var i = -1;
while ((++i) < args.length) {
argText = argText + (((("arg" + i) + "=") + args[i]) + ",");
}
_parent.argText = argText;
}
function sendShot(rot, factor) {
args = new Array();
args[0] = "shot";
args[1] = rot;
args[2] = factor;
args[3] = xPos[0];
args[4] = yPos[0];
args[5] = zPos[0];
args[6] = xPos[1];
args[7] = yPos[1];
args[8] = zPos[1];
args[9] = _root.userName;
_parent.history = _parent.history + ((((("sendShot" + newLine) + "rot=") + rot) + ",factor=") + factor);
_root.sendMove(args);
}
function changeTurns() {
if (ballNumber == myBallNumber) {
args = new Array();
args[0] = "endmove";
args[1] = _root.userName;
_root.sendMove(args);
}
if (_parent.strokes[ballNumber] >= _parent.maxStrokes) {
death[ballNumber] = true;
gamePath[currentBallname]._visible = 0;
gamePath["shadow" + ballNumber]._visible = 0;
_parent.tooMany.gotoAndStop(2);
showMessage("shotlimit");
}
var i = -1;
changeTheTurn = false;
while ((++i) < numPlayers) {
if (death[i] == false) {
changeTheTurn = true;
}
}
if (changeTheTurn != true) {
playSound("endOfHole");
ballInPlay = false;
}
if ((multiPlayer == true) && (changeTheTurn == true)) {
turnLoop = true;
while (turnLoop) {
ballNumber++;
turnLoop = false;
if ((numPlayers - 1) < ballNumber) {
ballNumber = 0;
}
if (death[ballNumber] == true) {
turnLoop = true;
}
}
if (changeTheTurn == true) {
currentBallName = "ball" + ballNumber;
gamePath["ball" + ballNumber]._visible = 1;
gamePath["shadow" + ballNumber]._visible = 1;
}
}
gamePath.line._x = gamePath[currentBallName]._x;
gamePath.line._y = gamePath[currentBallName]._y;
characterOnBench();
_parent.changePlayer(ballNumber);
}
function characterOnBench() {
tempName = currentBallName;
if (ballNumber == 0) {
tempNum = 1;
} else {
tempNum = 0;
}
gamePath.bench1.kids.gotoAndStop(1);
gamePath.bench2.kids.gotoAndStop(1);
if (1 < numPlayers) {
if (currentBallName == "ball0") {
currentBallName = "ball1";
} else {
currentBallName = "ball0";
}
var benchx = gamePath.bench1._x;
var benchy = gamePath.bench1._y;
var ballX = gamePath[currentBallName]._x;
var ballY = gamePath[currentBallName]._y;
bDis1 = math.sqrt(((ballX - benchx) * (ballX - benchx)) + ((ballY - benchY) * (bally - benchy)));
var benchx = gamePath.bench2._x;
var benchy = gamePath.bench2._y;
bDis2 = math.sqrt(((ballX - benchx) * (ballX - benchx)) + ((ballY - benchY) * (bally - benchy)));
if (ballNumber == 0) {
charNum = 1;
} else {
charNum = 0;
}
if (bDis2 >= bDis1) {
this["currentBench" + charNum] = "bench1";
} else if (bDis2 < bDis1) {
this["currentBench" + charNum] = "bench2";
}
gamePath[this["currentBench" + charNum]].kids.gotoAndStop(_parent[("player" + (charNum + 1)) + "char"] + 1);
currentBallName = tempName;
}
}
function shoot(rot, factor, shotType) {
if (((shotType == "manual") && (ballNumber != myBallNumber)) || (shotType != "manual")) {
stopped = false;
_parent.setStrokeText(ballNumber);
maxSpeed = 14;
if ((key.isDown(38) && (key.isDown(39))) && (_parent.version != "mplayer")) {
maxSpeed = 20;
}
var speed = (factor * maxSpeed);
xMov[ballNumber] = speed * math.cos(rot);
zMov[ballNumber] = speed * math.sin(rot);
volume = 100 * factor;
_parent.sounds.smack = new Sound(_parent.sounds);
_parent.sounds.smack.attachSound("hit");
_parent.sounds.smack.setVolume(volume);
_parent.sounds.smack.start();
_parent.history = _parent.history + ((((((("shootfunction" + newLine) + "rot=") + rot) + ",factor=") + factor) + ",shottype=") + shottype);
_parent.history = _parent.history + ((("ballnumber=" + ballnumber) + ",myballnumber=") + myballnumber);
if (shotType != "manual") {
sendShot(rot, factor);
}
}
}
function readyToShoot() {
gamePath.line._visible = 1;
gamePath.line.changeCharacter(ballNumber + 1);
gamePath.line._x = gamePath[currentBallName]._x;
gamePath.line._y = gamePath[currentBallName]._y;
if ((ballInPlay && (_parent.version != "mplayer")) || (ballInPlay && (ballNumber == myBallNumber))) {
gamePath.line.followMouse = true;
}
}
function addScore(target) {
name = target;
var fx = eval (name).rm;
var fy = eval (name).tm;
var zp = (((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY))));
var xp = ((1 / cosY) * (fx - (zp * sinY)));
var itsScore = ((zp * zp) + xp);
var i = -1;
var len = score.length;
while (len >= (++i)) {
if (itsScore < score[i][1]) {
tempScoreA = new Array();
tempScoreB = new Array();
tempScoreA = score.slice(0, i);
tempScoreA.push(new array(name, itsScore));
tempScoreB = score.slice(i);
score = new Array();
score = tempScoreA.concat(tempScoreB);
var i = 10000;
} else if (i == len) {
score.push(new array(name, itsScore));
}
}
orderDepths();
}
function setWalls() {
var showWalls = false;
if (showWalls == false) {
gamePath.leftWall._visible = 0;
gamePath.rightWall._visible = 0;
gamePath.topWall._visible = 0;
gamePath.bottomWall._visible = 0;
}
var fx = gamePath.leftWall._x;
var fy = gamePath.leftWall._y;
var zp = (((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY))));
var xp = ((1 / cosY) * (fx - (zp * sinY)));
leftWall = xp;
var fx = gamePath.topWall._x;
var fy = gamePath.topWall._y;
var zp = (((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY))));
var xp = ((1 / cosY) * (fx - (zp * sinY)));
topWall = zp;
var fx = gamePath.rightWall._x;
var fy = gamePath.rightWall._y;
var zp = (((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY))));
var xp = ((1 / cosY) * (fx - (zp * sinY)));
rightWall = xp;
var fx = gamePath.bottomWall._x;
var fy = gamePath.bottomWall._y;
var zp = (((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY))));
var xp = ((1 / cosY) * (fx - (zp * sinY)));
bottomWall = zp;
}
function orderDepths() {
objectStartDepth = 100;
objectStep = 5;
var i = -1;
while ((++i) < score.length) {
eval (score[i][0]).swapDepths(objectStartDepth + (i * objectStep));
eval (score[i][0]).depth = objectStartDepth + (i * objectStep);
}
}
function orderBall() {
var ballScore = ((zPos[ballNumber] * zPos[ballNumber]) + xPos[ballNumber]);
var i = -1;
while ((++i) < score.length) {
var top = eval (score[i][0]).top;
var bottom = eval (score[i][0]).bottom;
var right = eval (score[i][0]).right;
var left = eval (score[i][0]).left;
var oSlope = ((top - bottom) / (left - right));
var ballSlope = ((top - zPos[ballNumber]) / (left - xPos[ballNumber]));
nname = eval (score[i][ballNumber]);
if ((((ballSlope < oSlope) && (left < xPos[ballNumber])) && ((zPos[ballNumber] - (rad * 2)) < bottom)) && (top < (zPos[ballNumber] + (rad * 2)))) {
ballDepth = (objectStartDepth + (i * objectStep)) + 2;
gamePath[currentBallName].swapDepths(ballDepth);
var i = 100000;
} else if (i == (score.length - 1)) {
ballDepth = 50;
gamePath[currentBallName].swapDepths(ballDepth);
var i = 100000;
}
}
}
function setBallPos() {
death = new Array();
death[ballNumber] = false;
if (multiplayer == true) {
death = new Array();
oldBallNumber = ballNumber;
var i = -1;
while ((++i) < numPlayers) {
ballNumber = i;
duplicateMovieClip (gamePath.ball, "ball" + ballNumber, (i * 5) + 1);
gamePath["ball" + ballNumber]._x = gamePath.pad._x;
gamePath["ball" + ballNumber]._y = gamePath.pad._y;
gamePath.line._x = gamePath.pad._x;
gamePath.line._y = gamePath.pad._y;
gamePath["ball" + ballNumber].gotoAndStop(ballNumber + 1);
gamePath["ball" + ballNumber]._visible = 0;
duplicateMovieClip (gamePath.shadow, "shadow" + i, i * 5);
gamePath["shadow" + ballNumber]._visible = 0;
death[i] = false;
currentBallName = "ball" + ballNumber;
var fx = gamePath[currentBallName]._x;
var fy = gamePath[currentBallName]._y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
xp = (1 / cosY) * (fx - (zp * sinY));
xPos[ballNumber] = xp;
zPos[ballNumber] = zp;
yPos[ballNumber] = startFloor;
var x = xPos[ballNumber];
var y = yPos[ballNumber];
var z = zPos[ballNumber];
gamePath[currentBallName]._x = (z * sinY) + (x * cosY);
gamePath[currentBallName]._y = (y * cosX) - (((z * cosY) - (x * sinY)) * sinX);
gamePath["shadow" + ballNumber]._x = (z * sinY) + (x * cosY);
gamePath["shadow" + ballNumber]._y = (floor * cosX) - (((z * cosY) - (x * sinY)) * sinX);
initX[ballNumber] = xPos[ballNumber];
initZ[ballNumber] = zPos[ballNumber];
}
ballNumber = oldBallNumber;
currentBallName = "ball" + ballNumber;
gamePath["ball" + ballNumber]._visible = 1;
gamePath["shadow" + ballNumber]._visible = 1;
} else {
duplicateMovieClip (gamePath.ball, "ball" + ballNumber, 10);
gamePath["ball" + ballNumber]._x = gamePath.pad._x;
gamePath["ball" + ballNumber]._y = gamePath.pad._y;
gamePath.line._x = gamePath.pad._x;
gamePath.line._y = gamePath.pad._y;
duplicateMovieClip (gamePath.shadow, "shadow" + ballNumber, 9);
var fx = gamePath[currentBallName]._x;
var fy = gamePath[currentBallName]._y;
zp = ((fx / cosY) - (fy / (sinY * sinX))) * (1 / ((cosY / sinY) + (sinY / cosY)));
xp = (1 / cosY) * (fx - (zp * sinY));
xPos[ballNumber] = xp;
zPos[ballNumber] = zp;
yPos[ballNumber] = startFloor;
initX[ballNumber] = xPos[ballNumber];
initZ[ballNumber] = zPos[ballNumber];
}
}
function update() {
var name = currentBallName;
if (terrainOn) {
xMov[ballNumber] = xMov[ballNumber] * terrain;
zMov[ballNumber] = zMov[ballNumber] * terrain;
}
altitude();
var x = (xPos[ballNumber] + xMov[ballNumber]);
var y = (yPos[ballNumber] + yMov[ballNumber]);
var z = (zPos[ballNumber] + zMov[ballNumber]);
xPos[ballNumber] = x;
yPos[ballNumber] = y;
zPos[ballNumber] = z;
gamePath[name]._x = (z * sinY) + (x * cosY);
gamePath[name]._y = (y * cosX) - (((z * cosY) - (x * sinY)) * sinX);
gamePath["shadow" + ballNumber]._x = (z * sinY) + (x * cosY);
gamePath["shadow" + ballNumber]._y = (floor * cosX) - (((z * cosY) - (x * sinY)) * sinX);
if (((((((((math.sqrt((xMov[ballNumber] * xMov[ballNumber]) + (zMov[ballNumber] * zMov[ballNumber])) < minSpeed) && (math.abs(floor - yPos[ballNumber]) < 2)) && (onRamp != true)) && (onBelt != true)) && (onRamp1 != true)) && (onRamp2 != true)) && (onRamp3 != true)) && (onRamp4 != true)) && (onRamp5 != true)) {
if (stopped == false) {
xMov[ballNumber] = 0;
zMov[ballNumber] = 0;
changeTurns();
readyToShoot();
stopped = true;
}
} else {
stopped = false;
}
}
function wallDetection() {
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
if (bottomWall < tempZ) {
tempZ = bottomWall;
zMov[ballNumber] = zMov[ballNumber] * -1;
playSound("wall");
}
if (tempZ < topWall) {
tempZ = topWall;
zMov[ballNumber] = zMov[ballNumber] * -1;
playSound("wall");
}
if (tempX < leftWall) {
tempX = leftWall;
xMov[ballNumber] = xMov[ballNumber] * -1;
playSound("wall");
}
if (rightWall < tempX) {
tempX = rightWall;
xMov[ballNumber] = xMov[ballNumber] * -1;
playSound("wall");
}
xPos[ballNumber] = tempX;
zPos[ballNumber] = tempZ;
}
function ball2ballcollisionDetection() {
var i = 0;
while (numBumpers >= (++i)) {
var name1 = ballNumber;
var bumperName = ("bumper" + i);
var tempX1 = (xPos[name1] + xMov[name1]);
var tempX2 = gamePath[bumperName].centerX;
var tempZ1 = (zPos[name1] + zMov[name1]);
var tempZ2 = gamePath[bumperName].centerZ;
var tempRad2 = gamePath[bumperName].radius;
if (math.sqrt(((tempX1 - tempX2) * (tempX1 - tempX2)) + ((tempZ1 - tempZ2) * (tempZ1 - tempZ2))) < (rad + tempRad2)) {
ball2BallHappened = true;
ball2BallReaction(i, j, tempX1, tempX2, tempZ1, tempZ2);
playSound("wall");
}
}
}
function ball2BallReaction(n, m, tempX1, tempX2, tempZ1, tempZ2) {
n = ballNumber;
m = 1;
mass = new Array(1, 100000);
var vx1 = xMov[ballNumber];
var vx2 = 0;
var vy1 = zMov[ballNumber];
var vy2 = 0;
var initialMomentum = math.sqrt((vx1 * vx1) + (vy1 * vy1));
var x = (-(tempX1 - tempX2));
var y = (-(tempZ1 - tempZ2));
var ang = Math.atan2(y, x);
var cosTheta = math.cos(ang);
var sinTheta = math.sin(ang);
var vx1p = ((vx1 * cosTheta) + (vy1 * sinTheta));
var vx2p = ((vx2 * cosTheta) + (vy2 * sinTheta));
var vy1p = ((vy1 * cosTheta) - (vx1 * sinTheta));
var vy2p = ((vy2 * cosTheta) - (vx2 * sinTheta));
P = (mass[0] * vx1p) + (mass[m] * vx2p);
V = vx1p - vx2p;
var v1f = ((P - (mass[m] * V)) / (mass[0] + mass[m]));
var v2f = (V + v1f);
var vx1p = v1f;
var vx2p = v2f;
var vx1 = ((vx1p * cosTheta) - (vy1p * sinTheta));
var vx2 = ((vx2p * cosTheta) - (vy2p * sinTheta));
var vy1 = ((vy1p * cosTheta) + (vx1p * sinTheta));
var vy2 = ((vy2p * cosTheta) + (vx2p * sinTheta));
xMov[n] = vx1;
zMov[n] = vy1;
}
function ball2BankDetection() {
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
var i = 0;
while (numBanks >= (++i)) {
var bankName = ("bank" + i);
var left = gamePath[bankName].left;
var top = gamePath[bankName].top;
var right = gamePath[bankName].right;
var bottom = gamePath[bankName].bottom;
if (((((left < (tempX + rad)) && ((tempX - rad) < right)) && (top < (tempZ + rad))) && ((tempZ - rad) < bottom)) && (ballCollided == false)) {
angle = gamePath[bankName].angle;
if (triangleSlopeDetect(angle, left, right, top, bottom, tempX, tempZ)) {
xPos[ballNumber] = tempX;
zPos[ballNumber] = tempZ;
ballCollided = true;
ball2BankReactions(angle);
playSound("wall");
go = true;
}
}
}
}
function triangleSlopeDetect(angle, left, right, top, bottom, tempX, tempZ) {
returnVal = false;
if (angle == 225) {
var bankSlope = ((top - bottom) / (left - right));
var ballBankSlope = ((top - tempZ) / (left - tempX));
if ((ballBankSlope < bankSlope) && (0 < ballBankSlope)) {
returnVal = true;
}
} else if (angle == 315) {
var bankSlope = ((top - bottom) / (right - left));
var ballBankSlope = ((top - tempZ) / (right - tempX));
if ((bankSlope < ballBankSlope) && (ballBankSlope < 0)) {
returnVal = true;
}
} else if (angle == 135) {
var bankSlope = ((top - bottom) / (right - left));
var ballBankSlope = ((top - tempZ) / (right - tempX));
if ((ballBankSlope < bankSlope) && (ballBankSlope < 0)) {
returnVal = true;
}
} else if (angle == 45) {
var bankSlope = ((top - bottom) / (left - right));
var ballBankSlope = ((top - tempZ) / (left - tempX));
if ((bankSlope < ballBankSlope) && (0 < ballBankSlope)) {
returnVal = true;
}
}
return(returnVal);
}
function ball2BankReactions(angle) {
alpha = angle;
var cosAlpha = math.cos((alpha * math.pi) / 180);
var sinAlpha = math.sin((alpha * math.pi) / 180);
var vyi = zMov[ballNumber];
var vxi = xMov[ballNumber];
var vyip = ((vyi * cosAlpha) - (vxi * sinAlpha));
var vxip = ((vxi * cosAlpha) + (vyi * sinAlpha));
var vyfp = (-vyip);
var vxfp = vxip;
var vyf = ((vyfp * cosAlpha) + (vxfp * sinAlpha));
var vxf = ((vxfp * cosAlpha) - (vyfp * sinAlpha));
xMov[ballNumber] = vxf;
zMov[ballNumber] = vyf;
}
function ball2BeltDetection() {
tempX = xPos[ballNumber] + xMov[ballNumber];
tempZ = zPos[ballNumber] + zMov[ballNumber];
onBelt = false;
var i = 0;
while (numBelts >= (++i)) {
var boxName = ("belt" add i);
left = gamePath[boxName].left;
top = gamePath[boxName].top;
right = gamePath[boxName].right;
bottom = gamePath[boxName].bottom;
beltType = gamePath[boxName].type;
if ((((left < (tempX + rad)) && ((tempX - rad) < right)) && (top < (tempZ + rad))) && ((tempZ - rad) < bottom)) {
onBelt = true;
beltSpeed1 = 0.8;
if (beltType == "x1") {
xMov[ballNumber] = xMov[ballNumber] + 0.5;
} else if (beltType == "x11") {
xMov[ballNumber] = xMov[ballNumber] + beltSpeed1;
} else if (beltType == "x2") {
xMov[ballNumber] = xMov[ballNumber] - 0.5;
} else if (beltType == "x21") {
xMov[ballNumber] = xMov[ballNumber] - beltSpeed1;
} else if (beltType == "x3") {
xMov[ballNumber] = xMov[ballNumber] + 1.5;
} else if (beltType == "z1") {
zMov[ballNumber] = zMov[ballNumber] - 0.5;
} else if (beltType == "z11") {
zMov[ballNumber] = zMov[ballNumber] - beltSpeed1;
} else if (beltType == "z2") {
zMov[ballNumber] = zMov[ballNumber] + 0.5;
} else if (beltType == "z21") {
zMov[ballNumber] = zMov[ballNumber] + beltSpeed1;
}
}
}
}
function ball2BoxDetection() {
tempX = xPos[ballNumber] + xMov[ballNumber];
tempZ = zPos[ballNumber] + zMov[ballNumber];
var i = 0;
while (numBoxes >= (++i)) {
var boxName = ("box" add i);
left = gamePath[boxName].left;
top = gamePath[boxName].top;
right = gamePath[boxName].right;
bottom = gamePath[boxName].bottom;
disregard = gamePath[boxName].disregard;
collision = "no";
if ((((((left < (tempX + rad)) && ((tempX - rad) < right)) && (top < (tempZ + rad))) && ((tempZ - rad) < bottom)) && (disregard != "yes")) && (ballCollided == false)) {
ballCollided = true;
side = determineSideOfCollision(tempX, tempZ, left, right, top, bottom);
ball2BoxReaction(side, left, right, top, bottom);
playSound("wall");
}
}
}
function ball2BoxReaction(side, left, right, top, bottom) {
var xVel = xMov[ballNumber];
var zVel = zMov[ballNumber];
if (side == "left") {
xVel = xVel * -1;
xPos[ballNumber] = left - rad;
} else if (side == "right") {
xVel = xVel * -1;
xPos[ballNumber] = right + rad;
} else if (side == "top") {
zVel = zVel * -1;
zPos[ballNumber] = top - rad;
} else if (side == "bottom") {
zVel = zVel * -1;
zPos[ballNumber] = bottom + rad;
}
xMov[ballNumber] = xVel;
zMov[ballNumber] = zVel;
}
function determineSideOfCollision(tempX, tempZ, left, right, top, bottom) {
ballSlope = zMov[ballNumber] / xMov[ballNumber];
z = zPos[ballNumber];
x = xPos[ballNumber];
if (((z - rad) >= top) && ((x - rad) >= left)) {
var region = 1;
} else if (((z - rad) >= top) && (right >= (x + rad))) {
var region = 2;
} else if ((bottom >= (z + rad)) && (right >= (x + rad))) {
var region = 3;
} else if ((bottom >= (z + rad)) && ((x - rad) >= left)) {
var region = 4;
}
if (region == 1) {
var regionY1 = top;
var regionX1 = left;
var regionY2 = bottom;
var regionX2 = right;
var regionSlope = ((regionY2 - regionY1) / (regionX2 - regionX1));
var ballRegionSlope = ((z - regionY1) / (x - regionX1));
if (ballRegionSlope >= regionSlope) {
var side = "bottom";
} else {
var side = "right";
}
} else if (region == 2) {
var regionY1 = top;
var regionX1 = right;
var regionY2 = bottom;
var regionX2 = left;
var regionSlope = ((regionY2 - regionY1) / (regionX2 - regionX1));
var ballRegionSlope = ((z - regionY1) / (x - regionX1));
if (regionSlope >= ballRegionSlope) {
var side = "bottom";
} else {
var side = "left";
}
} else if (region == 3) {
var regionY1 = bottom;
var regionX1 = right;
var regionY2 = top;
var regionX2 = left;
var regionSlope = ((regionY2 - regionY1) / (regionX2 - regionX1));
var ballRegionSlope = ((z - regionY1) / (x - regionX1));
if (ballRegionSlope >= regionSlope) {
var side = "top";
} else {
var side = "left";
}
} else if (region == 4) {
var regionY1 = bottom;
var regionX1 = left;
var regionY2 = top;
var regionX2 = right;
var regionSlope = ((regionY2 - regionY1) / (regionX2 - regionX1));
var ballRegionSlope = ((z - regionY1) / (x - regionX1));
if (regionSlope >= ballRegionSlope) {
var side = "top";
} else {
var side = "right";
}
}
return(side);
}
function moundDetection() {
moundName = "mound";
maxMoundY = -30;
var moundRad = gamePath[moundName].rad;
var moundCenterX = gamePath[moundName].centerX;
var moundCenterZ = gamePath[moundName].centerZ;
var dis = math.sqrt((((xPos[ballNumber] + xMov[ballNumber]) - moundCenterX) * ((xPos[ballNumber] + xMov[ballNumber]) - moundCenterX)) + (((zPos[ballNumber] + zMov[ballNumber]) - moundCenterZ) * ((zPos[ballNumber] + zMov[ballNumber]) - moundCenterZ)));
if (moundRad >= dis) {
floor = (1 - (dis / moundRad)) * maxMoundY;
} else {
floor = 0;
}
}
function holeDetection() {
var holeIncreasePercent = 15;
var holeRad = ((gamePath.hole.rad * (100 + holeIncreasePercent)) / 100);
var holeX = gamePath.hole.centerX;
var holeZ = gamePath.hole.centerZ;
var dis = math.sqrt((((xPos[ballNumber] + xMov[ballNumber]) - holeX) * ((xPos[ballNumber] + xMov[ballNumber]) - holeX)) + (((zPos[ballNumber] + zMov[ballNumber]) - holeZ) * ((zPos[ballNumber] + zMov[ballNumber]) - holeZ)));
if ((holeRad >= dis) && (death[ballNumber] != true)) {
holeSpeed = math.sqrt((xMov[ballNumber] * xMov[ballNumber]) + (zMov[ballNumber] * zMov[ballNumber]));
if ((maxHoleCollectSpeed >= holeSpeed) && (math.abs(yPos[ballNumber] - floor) < 2)) {
xPos[ballNumber] = holeX;
zPos[ballNumber] = holeZ;
xMov[ballNumber] = 0;
zMov[ballNumber] = 0;
yMov[ballNumber] = 0;
playSound("hole");
gamePath.hole.play();
gamePath[currentBallName]._visible = 0;
gamePath["shadow" + ballNumber]._visible = 0;
death[ballNumber] = true;
shotMessage("ballin", _parent.strokes[ballNumber]);
} else {
yMov[ballNumber] = yMov[ballNumber] - holeTooFastHop;
}
} else if (death[ballNumber] == true) {
xMov[ballNumber] = 0;
zMov[ballNumber] = 0;
yMov[ballNumber] = 0;
}
}
function dummyHoles() {
if (hole == "hole15") {
newY = topFloor;
newXmov = 0;
newZmov = -4;
secondaryHoleDetection();
} else if (hole == "hole16") {
newY = topFloor;
newXmov = 7;
newZmov = 0;
secondaryHoleDetection();
} else if (hole == "hole11") {
newY = topFloor;
newXmov = 2;
newZmov = 0;
secondaryHoleDetection();
newXmov = 0;
newZmov = -4;
secondaryHoleDetection2();
} else if (hole == "hole19") {
newY = topFloor;
newXmov = 7;
newZmov = 0;
secondaryHoleDetection();
newXmov = 0.8;
newZmov = 0;
secondaryHoleDetection2();
} else if (hole == "hole20") {
newY = topFloor;
newXmov = 2;
newZmov = 0;
secondaryHoleDetection();
} else if (hole == "hole18") {
newY = topFloor;
newXmov = 2;
newZmov = 0;
secondaryHoleDetection();
newY = topFloor;
newXmov = 2;
newZmov = 0;
secondaryHoleDetection2();
newY = topFloor;
newXmov = 0;
newZmov = -1;
secondaryHoleDetection3();
newY = topFloor;
newXmov = 2;
newZmov = 0;
secondaryHoleDetection4();
} else if (hole == "hole21") {
newY = topFloor;
newXmov = 2;
newZmov = 0;
secondaryHoleDetection();
newY = topFloor;
newXmov = 2;
newZmov = 0;
secondaryHoleDetection2();
newY = topFloor;
newXmov = 2;
newZmov = 0;
secondaryHoleDetection3();
newY = topFloor;
newXmov = 2;
newZmov = 0;
secondaryHoleDetection4();
}
}
function secondaryHoleDetection4() {
var holeIncreasePercent = 10;
var holeRad = ((gamePath.hole3.rad * (100 + holeIncreasePercent)) / 100);
var holeX = gamePath.hole5.centerX;
var holeZ = gamePath.hole5.centerZ;
var newX = gamePath.dummy5.centerX;
var newZ = gamePath.dummy5.centerZ;
var dis = math.sqrt((((xPos[ballNumber] + xMov[ballNumber]) - holeX) * ((xPos[ballNumber] + xMov[ballNumber]) - holeX)) + (((zPos[ballNumber] + zMov[ballNumber]) - holeZ) * ((zPos[ballNumber] + zMov[ballNumber]) - holeZ)));
if ((holeRad >= dis) && (death[ballNumber] != true)) {
holeSpeed = math.sqrt((xMov[ballNumber] * xMov[ballNumber]) + (zMov[ballNumber] * zMov[ballNumber]));
if (maxHoleCollectSpeed >= holeSpeed) {
xPos[ballNumber] = newX;
zPos[ballNumber] = newZ;
yPos[ballNumber] = newY;
xMov[ballNumber] = newXmov;
zMov[ballNumber] = newZmov;
yMov[ballNumber] = 0;
playSound("dummyHole");
gamePath.hole5.play();
} else {
yMov[ballNumber] = yMov[ballNumber] - holeTooFastHop;
}
}
}
function secondaryHoleDetection3() {
var holeIncreasePercent = 10;
var holeRad = ((gamePath.hole4.rad * (100 + holeIncreasePercent)) / 100);
var holeX = gamePath.hole4.centerX;
var holeZ = gamePath.hole4.centerZ;
var newX = gamePath.dummy4.centerX;
var newZ = gamePath.dummy4.centerZ;
var dis = math.sqrt((((xPos[ballNumber] + xMov[ballNumber]) - holeX) * ((xPos[ballNumber] + xMov[ballNumber]) - holeX)) + (((zPos[ballNumber] + zMov[ballNumber]) - holeZ) * ((zPos[ballNumber] + zMov[ballNumber]) - holeZ)));
if ((holeRad >= dis) && (death[ballNumber] != true)) {
holeSpeed = math.sqrt((xMov[ballNumber] * xMov[ballNumber]) + (zMov[ballNumber] * zMov[ballNumber]));
if (maxHoleCollectSpeed >= holeSpeed) {
xPos[ballNumber] = newX;
zPos[ballNumber] = newZ;
yPos[ballNumber] = newY;
xMov[ballNumber] = newXmov;
zMov[ballNumber] = newZmov;
yMov[ballNumber] = 0;
playSound("dummyHole");
gamePath.hole4.play();
} else {
yMov[ballNumber] = yMov[ballNumber] - holeTooFastHop;
}
}
}
function secondaryHoleDetection2() {
var holeIncreasePercent = 10;
var holeRad = ((gamePath.hole3.rad * (100 + holeIncreasePercent)) / 100);
var holeX = gamePath.hole3.centerX;
var holeZ = gamePath.hole3.centerZ;
var newX = gamePath.dummy3.centerX;
var newZ = gamePath.dummy3.centerZ;
var dis = math.sqrt((((xPos[ballNumber] + xMov[ballNumber]) - holeX) * ((xPos[ballNumber] + xMov[ballNumber]) - holeX)) + (((zPos[ballNumber] + zMov[ballNumber]) - holeZ) * ((zPos[ballNumber] + zMov[ballNumber]) - holeZ)));
if ((holeRad >= dis) && (death[ballNumber] != true)) {
holeSpeed = math.sqrt((xMov[ballNumber] * xMov[ballNumber]) + (zMov[ballNumber] * zMov[ballNumber]));
if (maxHoleCollectSpeed >= holeSpeed) {
xPos[ballNumber] = newX;
zPos[ballNumber] = newZ;
yPos[ballNumber] = newY;
xMov[ballNumber] = newXmov;
zMov[ballNumber] = newZmov;
yMov[ballNumber] = 0;
playSound("dummyHole");
gamePath.hole3.play();
} else {
yMov[ballNumber] = yMov[ballNumber] - holeTooFastHop;
}
}
}
function secondaryHoleDetection() {
var holeIncreasePercent = 10;
var holeRad = ((gamePath.hole2.rad * (100 + holeIncreasePercent)) / 100);
var holeX = gamePath.hole2.centerX;
var holeZ = gamePath.hole2.centerZ;
var newX = gamePath.dummy2.centerX;
var newZ = gamePath.dummy2.centerZ;
var dis = math.sqrt((((xPos[ballNumber] + xMov[ballNumber]) - holeX) * ((xPos[ballNumber] + xMov[ballNumber]) - holeX)) + (((zPos[ballNumber] + zMov[ballNumber]) - holeZ) * ((zPos[ballNumber] + zMov[ballNumber]) - holeZ)));
if ((holeRad >= dis) && (death[ballNumber] != true)) {
holeSpeed = math.sqrt((xMov[ballNumber] * xMov[ballNumber]) + (zMov[ballNumber] * zMov[ballNumber]));
if (maxHoleCollectSpeed >= holeSpeed) {
xPos[ballNumber] = newX;
zPos[ballNumber] = newZ;
yPos[ballNumber] = newY;
xMov[ballNumber] = newXmov;
zMov[ballNumber] = newZmov;
yMov[ballNumber] = 0;
floor = newY;
playSound("dummyHole");
gamePath.hole2.play();
} else {
yMov[ballNumber] = yMov[ballNumber] - holeTooFastHop;
}
}
}
function playSound(soundName) {
if (_root.soundToggle) {
if (soundName == "wall") {
theSpeed = math.sqrt((xMov[ballNumber] * xMov[ballNumber]) + (zMov[ballNumber] * zMov[ballNumber]));
volume = ((theSpeed / maxSpeed) * 100) - 10;
if (volume < 10) {
volume = 10;
}
if ((floor - wallHeight) < (yPos[ballNumber] + yMov[ballNumber])) {
_parent.sounds.bounce = new Sound(_parent.sounds);
_parent.sounds.bounce.attachSound("softBounce");
_parent.sounds.bounce.setVolume(volume);
_parent.sounds.bounce.start();
} else {
gamePath.force1.gotoAndPlay(2);
soundName = "electric";
_parent.soundFX.gotoAndPlay(soundName);
}
} else {
_parent.soundFX.gotoAndPlay(soundName);
}
}
}
function rampDetection() {
if (hole == "hole2") {
rl = leftWall;
rr = rightWall;
rt = -270;
rb = -100;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp == false) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.sin(theta);
cosTheta = math.cos(theta);
tanTheta = sinTheta / cosTheta;
yMov[ballNumber] = yMov[ballNumber] * ((-zMov[ballNumber]) * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
}
floor = bottomFloor - ((tempZ - rt) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] + (((-gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + (((-gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
}
}
if (hole == "hole3") {
rl = leftWall;
rr = rightWall;
rt = -370;
rb = -260;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp == false) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
}
floor = topFloor + (math.abs(tempZ - rt) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
}
}
if (hole == "hole19") {
rl = leftWall;
rr = rightWall;
rt = -230;
rb = -134;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp1 == false) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp1 = true;
}
floor = topFloor + (math.abs(tempZ - rt) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp1 = false;
}
}
if (hole == "hole19") {
rl = 580;
rr = 614;
rt = topWall;
rb = bottomWall;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if (((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) && (380 < tempX)) {
if (onRamp2 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rr - rl);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (xMov[ballNumber] * sinTheta);
xMov[ballNumber] = xMov[ballNumber] * cosTheta;
onRamp2 = true;
onRamp = true;
}
floor = math.abs(tempX - rl) * tanTheta;
xMov[ballNumber] = xMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp2 = false;
}
}
if (hole == "hole20") {
rl = -282;
rr = -113;
rt = topWall;
rb = bottomWall;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if (((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) && (tempZ < -220)) {
if (onRamp1 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rr - rl);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (xMov[ballNumber] * sinTheta);
xMov[ballNumber] = xMov[ballNumber] * cosTheta;
onRamp1 = true;
onRamp = true;
}
floor = math.abs(tempX - rl) * tanTheta;
xMov[ballNumber] = xMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp1 = false;
}
}
if (hole == "hole6") {
rl = leftWall;
rr = rightWall;
rt = 270;
rb = 380;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp == false) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
}
floor = topFloor + (math.abs(tempZ - rt) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
}
}
if (hole == "hole5") {
rl = leftWall;
rr = 220;
rt = -190;
rb = -100;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp1 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
onRamp1 = true;
}
floor = topFloor + (math.abs(tempZ - rb) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] - ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp1 = false;
}
}
if (hole == "hole5") {
rl = 270;
rr = 380;
rt = -40;
rb = bottomWall;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp2 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rr - rl);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (xMov[ballNumber] * sinTheta);
xMov[ballNumber] = xMov[ballNumber] * cosTheta;
onRamp = true;
onRamp2 = true;
}
floor = topFloor + (math.abs(tempX - rl) * tanTheta);
xMov[ballNumber] = xMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp2 = false;
}
}
if (hole == "hole17") {
rl = leftWall;
rr = rightWall;
rt = -220;
rb = -150;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp1 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
onRamp1 = true;
}
floor = topFloor + (math.abs(tempZ - rb) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] - ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp1 = false;
}
}
if (hole == "hole17") {
rl = leftWall;
rr = rightWall;
rt = -110;
rb = -35;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if (((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) && (100 < tempX)) {
if (onRamp2 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * ((-zMov[ballNumber]) * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
onRamp2 = true;
}
floor = topFloor + (math.abs(tempZ - rt) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp2 = false;
}
}
if (hole == "hole7") {
rl = leftWall;
rr = rightWall;
rt = -335;
rb = -300;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp1 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
onRamp1 = true;
}
floor = topFloor - (math.abs(tempZ - rt) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] - ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp1 = false;
}
}
if (hole == "hole7") {
rl = leftWall;
rr = rightWall;
rt = -290;
rb = -255;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp2 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
onRamp2 = true;
}
floor = (-bottomFloor) + (math.abs(tempZ - rt) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp2 = false;
}
}
if (hole == "hole7") {
rl = leftWall;
rr = rightWall;
rt = -210;
rb = -185;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp3 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
onRamp3 = true;
}
floor = topFloor - (math.abs(tempZ - rt) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] - ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp3 = false;
}
}
if (hole == "hole7") {
rl = leftWall;
rr = rightWall;
rt = -165;
rb = -130;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp4 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
onRamp4 = true;
}
floor = (-bottomFloor) + (math.abs(tempZ - rt) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp4 = false;
}
}
if (hole == "hole9") {
rl = leftWall;
rr = rightWall;
rt = -280;
rb = -237;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
zMov[ballNumber] = zMov[ballNumber] * 0.9;
onRamp = true;
}
floor = topFloor - (math.abs(tempZ - rt) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] - ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
}
}
if (hole == "hole10") {
rl = -17;
rr = 32;
rt = topWall;
rb = bottomWall;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp2 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rr - rl);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (xMov[ballNumber] * sinTheta);
xMov[ballNumber] = xMov[ballNumber] * cosTheta;
onRamp = true;
onRamp2 = true;
}
floor = (-math.abs(tempX - rr)) * tanTheta;
xMov[ballNumber] = xMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp2 = false;
}
}
if (hole == "hole11") {
rl = leftWall;
rr = 290;
rt = -407;
rb = -342;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp1 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
onRamp1 = true;
}
floor = topFloor - (math.abs(tempZ - rt) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] - ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp1 = false;
}
}
if (hole == "hole11") {
rl = leftWall;
rr = 290;
rt = -307;
rb = -238;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp2 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
onRamp2 = true;
}
floor = (-math.abs(tempZ - rb)) * tanTheta;
zMov[ballNumber] = zMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
if (zMov[ballNumber] < 0) {
yMov[ballNumber] = 0;
yPos[ballNumber] = floor;
}
} else {
onRamp = false;
onRamp2 = false;
}
}
if (hole == "hole11") {
rl = leftWall;
rr = 290;
rt = -207;
rb = -141;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp3 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
onRamp3 = true;
}
floor = topFloor - (math.abs(tempZ - rt) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] - ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp3 = false;
}
}
if (hole == "hole11") {
rl = leftWall;
rr = 290;
rt = -111;
rb = -38;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp4 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
onRamp4 = true;
}
floor = (-math.abs(tempZ - rb)) * tanTheta;
zMov[ballNumber] = zMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
if (zMov[ballNumber] < 0) {
yMov[ballNumber] = 0;
yPos[ballNumber] = floor;
}
} else {
onRamp = false;
onRamp4 = false;
}
}
if (hole == "hole11") {
rl = leftWall;
rr = 290;
rt = -7;
rb = 106;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp5 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
onRamp5 = true;
}
floor = topFloor - (math.abs(tempZ - rt) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] - ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp5 = false;
}
}
if (hole == "hole12") {
rl = 487;
rr = 580;
rt = topWall;
rb = bottomWall;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp1 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rr - rl);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (xMov[ballNumber] * sinTheta);
xMov[ballNumber] = xMov[ballNumber] * cosTheta;
onRamp = true;
onRamp1 = true;
}
floor = math.abs(tempX - rl) * tanTheta;
xMov[ballNumber] = xMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp1 = false;
}
}
if (hole == "hole12") {
rl = 615;
rr = 716;
rt = topWall;
rb = bottomWall;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp2 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rr - rl);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (xMov[ballNumber] * sinTheta);
xMov[ballNumber] = xMov[ballNumber] * cosTheta;
onRamp = true;
onRamp2 = true;
}
floor = math.abs(tempX - rr) * tanTheta;
xMov[ballNumber] = xMov[ballNumber] - ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp2 = false;
}
}
if (hole == "hole13") {
rl = 657;
rr = 705;
rt = topWall;
rb = bottomWall;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rr - rl);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
onRamp = true;
}
floor = math.abs(tempX - rl) * tanTheta;
xMov[ballNumber] = xMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
}
}
if (hole == "hole14") {
rl = 106;
rr = 221;
rt = topWall;
rb = bottomWall;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) {
if (onRamp != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rr - rl);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (xMov[ballNumber] * sinTheta);
xMov[ballNumber] = xMov[ballNumber] * cosTheta;
onRamp = true;
}
floor = (-math.abs(tempX - rr)) * tanTheta;
xMov[ballNumber] = xMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
}
}
if (hole == "hole15") {
rl = leftWall;
rr = rightWall;
rt = -280;
rb = -228;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if (((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) && (tempX < 370)) {
if (onRamp1 == false) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
onRamp1 = true;
}
floor = topFloor + (math.abs(tempZ - rb) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] - ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp1 = false;
}
}
if (hole == "hole15") {
rl = 520;
rr = 564;
rt = topWall;
rb = bottomWall;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if (((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) && (380 < tempX)) {
if (onRamp2 != true) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rr - rl);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (xMov[ballNumber] * sinTheta);
xMov[ballNumber] = xMov[ballNumber] * cosTheta;
onRamp2 = true;
onRamp = true;
}
floor = math.abs(tempX - rl) * tanTheta;
xMov[ballNumber] = xMov[ballNumber] + ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp2 = false;
}
}
if (hole == "hole16") {
rl = leftWall;
rr = rightWall;
rb = -186;
rt = -283;
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if (((((rl < (tempX + rad)) && ((tempX - rad) < rr)) && (rt < (tempZ + rad))) && ((tempZ - rad) < rb)) && (tempX < 316)) {
if (onRamp1 == false) {
var h = math.abs(topFloor - bottomFloor);
var l = math.abs(rt - rb);
theta = math.atan2(h, l);
sinTheta = math.abs(math.sin(theta));
cosTheta = math.abs(math.cos(theta));
tanTheta = math.abs(sinTheta / cosTheta);
yMov[ballNumber] = yMov[ballNumber] * (zMov[ballNumber] * sinTheta);
zMov[ballNumber] = zMov[ballNumber] * cosTheta;
onRamp = true;
onRamp1 = true;
}
floor = topFloor + (math.abs(tempZ - rb) * tanTheta);
zMov[ballNumber] = zMov[ballNumber] - ((math.abs(gravity) * sinTheta) * cosTheta);
yMov[ballNumber] = yMov[ballNumber] + ((math.abs(gravity) * sinTheta) * sinTheta);
} else {
onRamp = false;
onRamp1 = false;
}
}
holeSpecific();
}
function holeSpecific() {
if (hole == "hole2") {
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((tempZ + rad) < rt) {
floor = bottomFloor;
} else if (rb < (tempZ - rad)) {
floor = topFloor;
}
}
if (hole == "hole15") {
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if (((tempZ - rad) < -280) && (tempX < 370)) {
floor = bottomFloor;
} else if ((-228 < (tempZ + rad)) && (tempX < 370)) {
floor = topFloor;
} else if (((tempX - rad) < 520) && (380 < tempX)) {
floor = topFloor;
} else if ((564 < (tempX + rad)) && (380 < tempX)) {
floor = bottomFloor;
}
}
if (hole == "hole16") {
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if (((tempZ - rad) < -283) && (tempX < 500)) {
floor = bottomFloor;
} else if ((-186 < (tempZ - rad)) && (tempX < 340)) {
floor = topFloor;
} else if (500 < tempX) {
floor = topFloor;
}
}
if (hole == "hole3") {
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((tempZ + rad) < rt) {
floor = topFloor;
} else if (rb < (tempZ - rad)) {
floor = bottomFloor;
}
}
if (hole == "hole5") {
if (((onRamp == false) && (onRamp1 != true)) && (onRamp2 != true)) {
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
if ((-100 < tempZ) && (tempX < 270)) {
floor = topFloor;
} else {
floor = bottomFloor;
}
}
}
if (hole == "hole6") {
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((tempZ - rad) < 270) {
floor = topFloor;
} else if (380 < (tempZ + rad)) {
floor = bottomFloor;
}
}
if (hole == "hole20") {
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
if (tempZ < -220) {
if ((tempX - rad) < -282) {
floor = topFloor;
} else if (-113 < (tempX + rad)) {
floor = bottomFloor;
}
} else {
floor = topFloor;
}
}
if (hole == "hole19") {
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
if (tempX < 300) {
if ((tempZ - rad) < -230) {
floor = topFloor;
} else if (-134 < (tempZ + rad)) {
floor = bottomFloor;
}
} else if (tempX < 580) {
floor = topFloor;
} else if (614 < tempX) {
floor = bottomFloor;
}
}
if (hole == "hole7") {
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((tempZ + rad) < -335) {
floor = topFloor;
} else if (-130 < (tempZ - rad)) {
floor = topFloor;
}
}
if (hole == "hole9") {
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((tempZ + rad) < rt) {
floor = topFloor;
} else if (rb < (tempZ - rad)) {
floor = -bottomFloor;
}
}
if (hole == "hole10") {
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
if (rr < (tempX + rad)) {
floor = topFloor;
} else if ((tempX - rad) < rl) {
floor = -bottomFloor;
}
}
if (((((((hole == "hole11") && (onRamp != true)) && (onRamp1 != true)) && (onRamp2 != true)) && (onRamp3 != true)) && (onRamp4 != true)) && (onRamp5 != true)) {
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
if ((tempZ - rad) < -407) {
floor = topFloor;
} else if ((-342 < (tempZ + rad)) && ((tempZ - rad) < -307)) {
floor = -bottomFloor;
} else if ((-238 < (tempZ + rad)) && ((tempZ - rad) < -207)) {
floor = topFloor;
} else if ((-141 < (tempZ + rad)) && ((tempZ - rad) < -111)) {
floor = -bottomFloor;
} else if ((-38 < (tempZ + rad)) && ((tempZ - rad) < -7)) {
floor = topFloor;
} else if (106 < (tempZ + rad)) {
floor = -bottomFloor;
}
if (rr < tempX) {
floor = topFloor;
}
}
if ((((hole == "hole12") && (onRamp != true)) && (onRamp1 != true)) && (onRamp2 != true)) {
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
if (((tempX - rad) < 487) || (716 < (tempX + rad))) {
floor = topFloor;
} else if ((594 < (tempX - rad)) && ((tempX + rad) < 630)) {
floor = bottomFloor;
}
}
if (hole == "hole13") {
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
if (rr < (tempX + rad)) {
floor = bottomFloor;
gamepath["moveMe" + ballNumber] = "yes";
} else if ((tempX - rad) < (rr - 10)) {
floor = topfloor;
}
}
if (hole == "hole14") {
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
if (rr < (tempX + rad)) {
floor = topFloor;
} else if ((tempX - rad) < rl) {
floor = -bottomFloor;
}
}
if (hole == "hole17") {
if (((onRamp == false) && (onRamp1 != true)) && (onRamp2 != true)) {
var tempZ = (zPos[ballNumber] + zMov[ballNumber]);
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
if ((tempZ + rad) < -220) {
floor = bottomFloor;
} else if ((-150 < (tempZ - rad)) && ((tempZ + rad) < -110)) {
floor = topFloor;
} else if (-35 < (tempZ - rad)) {
floor = bottomFloor;
}
if (tempX < 95) {
floor = topFloor;
}
}
}
}
function altitude() {
yMovMin = 0.8;
yMov[ballNumber] = yMov[ballNumber] + gravity;
if ((math.abs(yMov[ballNumber]) < yMovMin) && (math.abs(yPos[ballNumber] - floor) < 1)) {
yMov[ballNumber] = 0;
}
if (floor < (yPos[ballNumber] + yMov[ballNumber])) {
yPos[ballNumber] = floor;
yMov[ballNumber] = yMov[ballNumber] * floorBounciness;
}
}
function sandTrap() {
if (onSand == true) {
terrain = sandyTerrain;
}
}
function hitPuddle() {
if (onPuddle == true) {
terrain = puddleTerrain;
}
}
function hitPool(x, z) {
xMov[ballNumber] = 0;
zMov[ballNumber] = 0;
xPos[ballNumber] = x;
zPos[ballNumber] = z;
}
function speedFilter() {
if (hole == "hole16") {
var tempX = (xPos[ballNumber] + xMov[ballNumber]);
if ((360 < tempX) && (tempX < 450)) {
sMax = 7;
if (sMax < xMov[ballNumber]) {
xMov[ballNumber] = sMax;
} else if (xMov[ballNumber] < (-sMax)) {
xMov[ballNumber] = -sMax;
}
if (sMax < zov[ballNumber]) {
zMov[ballNumber] = sMax;
} else if (zMov[ballNumber] < (-sMax)) {
zMov[ballNumber] = -sMax;
}
}
}
}
function ball2FanDetection() {
var i = 0;
while (numFans >= (++i)) {
var name1 = ballNumber;
var bumperName = ("fan" + i);
var tempX1 = (xPos[name1] + xMov[name1]);
var tempX2 = gamePath[bumperName].centerX;
var tempZ1 = (zPos[name1] + zMov[name1]);
var tempZ2 = gamePath[bumperName].centerZ;
var tempRad2 = gamePath[bumperName].radius;
if (math.sqrt(((tempX1 - tempX2) * (tempX1 - tempX2)) + ((tempZ1 - tempZ2) * (tempZ1 - tempZ2))) < (rad + tempRad2)) {
yMov[ballNumber] = yMov[ballNumber] - 2;
zMov[ballNumber] = zMov[ballNumber] + 0.5;
}
}
}
_visible = false;
if ((_root.userName == null) || (_root.userName == "")) {
moveEnded = "yes";
}
_parent.screenSync._visible = 0;
ballNumber = 0;
currentBallName = "ball0";
testMode = true;
if (testMode) {
_root.soundToggle = true;
}
if (_parent.myColor == "b") {
args = new Array();
args[0] = "proceed";
args[1] = _root.userName;
_root.sendMove(args);
}
initX = new Array();
initZ = new Array();
if (_parent.version == "mplayer") {
myColor = _parent.myColor;
if (myColor == "w") {
moveEnded = "yes";
myBallNumber = 0;
hisBallNumber = 1;
} else if (myColor == "b") {
myBallNumber = 1;
hisBallNumber = 0;
}
}
hole = _parent.hole;
_parent.course.gotoAndStop(hole);
gamePath = _parent.course.course;
numPlayers = _parent.numPlayers;
if (1 < numPlayers) {
multiPlayer = true;
} else {
multiPlayer = false;
}
i = numPlayers - 1;
while (5 >= (++i)) {
gamePath["ball" + i]._visible = 0;
gamePath["shadow" + i]._visible = 0;
}
wallHeight = 10;
go = true;
ballInPlay = true;
onRamp = false;
terrainOn = true;
xMov = new Array();
yMov = new Array();
zMov = new Array();
score = new Array();
xMov[ballNumber] = 0;
zMov[ballNumber] = 0;
yMov[ballNumber] = 0;
readytoshoot();
rad = gamePath.ball._width / 2;
floorBounciness = -0.25;
minSpeed = 0.3;
maxHoleCollectSpeed = 6;
holeTooFastHop = 2;
numBanks = 0;
numBelts = 0;
numBoxes = 0;
numBumpers = 0;
numFans = 0;
topFloor = 0;
par = _parent.par[_parent.holeNumber - 1];
floor = topFloor;
startFloor = topFloor;
if (_parent.holeNumber == 2) {
bottomFLoor = 35;
startFloor = bottomFloor;
} else if (_parent.holeNumber == 3) {
bottomFLoor = 58;
startFloor = bottomFloor;
} else if (_parent.holeNumber == 5) {
bottomFLoor = 65;
startFloor = bottomFloor;
} else if (_parent.holeNumber == 6) {
bottomFLoor = 40;
} else if (_parent.holeNumber == 7) {
bottomFLoor = 15;
} else if (_parent.holeNumber == 9) {
bottomFLoor = 170;
} else if (_parent.holeNumber == 10) {
bottomFLoor = 45;
startFloor = bottomFloor;
} else if (_parent.holeNumber == 11) {
bottomFLoor = 45;
} else if (_parent.holeNumber == 12) {
bottomFLoor = 30;
} else if (_parent.holeNumber == 13) {
bottomFLoor = 90;
} else if (_parent.holeNumber == 14) {
bottomFLoor = 190;
startFloor = -bottomFloor;
} else if (_parent.holeNumber == 15) {
bottomFLoor = 55;
} else if (_parent.holeNumber == 16) {
bottomFLoor = 40;
} else if (_parent.holeNumber == 17) {
bottomFLoor = 40;
startFloor = bottomFloor;
} else if (_parent.holeNumber == 19) {
bottomFLoor = 50;
} else if (_parent.holeNumber == 20) {
bottomFLoor = 115;
}
floor = topFloor;
xPos = new Array();
zPos = new Array();
yPos = new Array();
yPos[ballNumber] = floor;
mainTerrain = 0.97;
sandyTerrain = 0.8;
puddleTerrain = 0.9;
terrain = mainTerrain;
gravity = 0.7;
yAng = 45;
xAng = 30;
sinY = (cosY = math.sin((yAng * math.pi) / 180));
cosX = math.cos((xAng * math.pi) / 180);
sinX = math.sin((xAng * math.pi) / 180);
setWalls();
setBallPos();
characterOnBench();
}
onClipEvent (enterFrame) {
lTime = getTimer();
terrain = mainTerrain;
if (ballInPlay) {
ballCollided = false;
terrain = mainTerrain;
speedFilter();
ball2FanDetection();
ball2BankDetection();
ball2BoxDetection();
ball2BallHappened = false;
ball2ballcollisionDetection();
if (ball2BallHappened) {
ball2ballcollisionDetection();
}
rampDetection();
wallDetection();
ball2BeltDetection();
sandTrap();
hitPuddle();
holeDetection();
dummyHoles();
update();
orderBall();
} else {
gamePath.line._visible = 0;
refreshDelay++;
if (48 < refreshDelay) {
_parent.gotoAndStop("refresh");
}
}
_parent.x = xPos[ballNumber];
_parent.z = zPos[ballNumber];
_parent.floor = floor;
trace(getTimer() - lTime);
}