Frame 1
System.security.allowDomain("puzzlepool.com");
System.security.allowDomain("*");
this._lockroot = true;
MochiAd.showPreGameAd({id:"a847c7f77d64c67b", res:"550x550", ad_timeout:4500});
Frame 2
btnlogo.onPress = function () {
getURL ("http://www.puzzlepool.com/", "_blank");
};
Frame 3
_root.lholder = new LHolder();
_root.lholder.init(this.gamemc, this.controls);
Frame 5
this.lholder.run();
Frame 6
gotoAndPlay ("gameloop");
Frame 16
gameoverscreen._tfHeadline.text = "\nGame Over";
_root.stop();
Frame 17
_root.gotoAndStop("gameover");
Frame 21
gameoverscreen._tfHeadline.text = "Game Finished\nWell Done!";
_root.stop();
Frame 22
_root.gotoAndStop("gamefinished");
Symbol 5 MovieClip [LevelText] Frame 1
this._parent.enabled = false;
if (!this._orgTextClr) {
this._orgTextClr = this._tf.textColor;
}
this._tf.textColor = this._orgTextClr;
Symbol 5 MovieClip [LevelText] Frame 7
_tf.textColor = 16776960 /* 0xFFFF00 */;
Symbol 5 MovieClip [LevelText] Frame 13
this._tf.textColor = this._orgTextClr;
Symbol 5 MovieClip [LevelText] Frame 19
_tf.textColor = 16776960 /* 0xFFFF00 */;
Symbol 5 MovieClip [LevelText] Frame 25
this._parent.enabled = true;
this.removeMovieClip();
Symbol 55 MovieClip [__Packages.MochiAd] Frame 0
class MochiAd
{
function MochiAd () {
}
static function getVersion() {
return("2.1");
}
static function showPreGameAd(options) {
var _local27 = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = _parseOptions(options, _local27);
var clip = options.clip;
var _local23 = 11000;
var _local26 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local14 = _getRes(options);
var _local4 = _local14[0];
var _local13 = _local14[1];
mc._x = _local4 * 0.5;
mc._y = _local13 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = _local4 * -0.5;
chk._y = _local13 * -0.5;
var _local7 = chk.createEmptyMovieClip("_mochiad_bar", 4);
_local7._x = 10;
_local7._y = _local13 - 20;
var _local22 = options.color;
delete options.color;
var _local19 = options.background;
delete options.background;
var _local24 = options.outline;
delete options.outline;
var _local5 = _local7.createEmptyMovieClip("_outline", 1);
_local5.beginFill(_local19);
_local5.moveTo(0, 0);
_local5.lineTo(_local4 - 20, 0);
_local5.lineTo(_local4 - 20, 10);
_local5.lineTo(0, 10);
_local5.lineTo(0, 0);
_local5.endFill();
var _local3 = _local7.createEmptyMovieClip("_inside", 2);
_local3.beginFill(_local22);
_local3.moveTo(0, 0);
_local3.lineTo(_local4 - 20, 0);
_local3.lineTo(_local4 - 20, 10);
_local3.lineTo(0, 10);
_local3.lineTo(0, 0);
_local3.endFill();
_local3._xscale = 0;
var _local6 = _local7.createEmptyMovieClip("_outline", 3);
_local6.lineStyle(0, _local24, 100);
_local6.moveTo(0, 0);
_local6.lineTo(_local4 - 20, 0);
_local6.lineTo(_local4 - 20, 10);
_local6.lineTo(0, 10);
_local6.lineTo(0, 0);
chk.ad_msec = _local23;
chk.ad_timeout = _local26;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local12 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local10 = (100 * _local8) / _local4;
var _local11 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local2 = Math.min(100, Math.min(_local10 || 0, _local11));
_local2 = Math.max(this.last_pcnt, _local2);
this.last_pcnt = _local2;
_local9._xscale = _local2;
if (!chk.showing) {
var _local7 = _local12.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local5 > chk.ad_timeout) {
_local3 = true;
}
}
if (_local5 > chk.ad_msec) {
_local3 = true;
}
if (((_local4 > 0) && (_local8 >= _local4)) && (_local3)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}
static function showInterLevelAd(options) {
var _local13 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = _parseOptions(options, _local13);
var clip = options.clip;
var _local10 = 11000;
var _local12 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local5 = _getRes(options);
var _local14 = _local5[0];
var _local11 = _local5[1];
mc._x = _local14 * 0.5;
mc._y = _local11 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_msec = _local10;
chk.ad_timeout = _local12;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec - 250;
};
chk.onEnterFrame = function () {
var _local5 = this._parent._mochiad_ctr;
var _local4 = getTimer() - this.started;
var _local2 = false;
if (!chk.showing) {
var _local3 = _local5.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
_local2 = true;
}
}
if (_local4 > chk.ad_msec) {
_local2 = true;
}
if (_local2) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
}
}
};
}
static function showTimedAd(options) {
showInterLevelAd(options);
}
static function showPreloaderAd(options) {
showPreGameAd(options);
}
static function _allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function _loadCommunicator(options) {
var _local26 = {clip:_root, com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = _parseOptions(options, _local26);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local18 = options.clip;
var _local20 = "_mochiad_com_" + options.id;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local18[_local20]) {
return(_local18[_local20].lc);
}
var _local21 = options.com_server + options.id;
_allowDomains(_local21);
delete options.id;
delete options.com_server;
var _local25 = options.depth;
delete options.depth;
var _local17 = _local18.createEmptyMovieClip(_local20, _local25);
var _local11 = _local17.createEmptyMovieClip("_mochiad_com", 1);
for (var _local15 in options) {
_local11[_local15] = options[_local15];
}
var _local6 = new LocalConnection();
var _local16 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local6.mc = _local17;
_local6.name = _local16;
_local6.allowDomain = function (d) {
return(true);
};
_local6.allowInsecureDomain = _local6.allowDomain;
_local6.connect(_local16);
_local17.lc = _local6;
_local11.lc = _local16;
_local6._id = 0;
_local6._queue = [];
_local6.rpcResult = function (cb_arg) {
var _local8 = parseInt(cb_arg);
var _local4 = this._callbacks[_local8];
if (!_local4) {
return(undefined);
}
delete this._callbacks[_local8];
var _local5 = [];
var _local3 = 2;
while (_local3 < _local4.length) {
_local5.push(_local4[_local3]);
_local3++;
}
_local3 = 1;
while (_local3 < arguments.length) {
_local5.push(arguments[_local3]);
_local3++;
}
var _local6 = _local4[1];
var _local7 = _local4[0];
if (_local7 && (typeof(_local6) == "string")) {
_local6 = _local7[_local6];
}
if (_local6) {
_local6.apply(_local7, _local5);
}
};
_local6._didConnect = function (endpoint) {
this._endpoint = endpoint;
var _local4 = this._queue;
delete this._queue;
var _local5 = this.doSend;
var _local2 = 0;
while (_local2 < _local4.length) {
var _local3 = _local4[_local2];
_local5.apply(this, _local3);
_local2++;
}
};
_local6.doSend = function (args, cbobj, cbfn) {
if (this._endpoint == null) {
var _local4 = [];
var _local3 = 0;
while (_local3 < arguments.length) {
_local4.push(arguments[_local3]);
_local3++;
}
this._queue.push(_local4);
return(undefined);
}
this._id = this._id + 1;
var _local5 = this._id;
if ((cbfn === undefined) || (cbfn === null)) {
cbfn = cbobj;
}
this._callbacks[_local5] = [cbobj, cbfn];
var _local7 = new LocalConnection();
var _local9 = _local7.send(this._endpoint, "rpc", _local5, args);
};
_local6._callbacks = {};
_local6._callbacks[0] = [_local6, "_didConnect"];
_local11.st = getTimer();
_local11.loadMovie(_local21 + ".swf", "POST");
return(_local6);
}
static function fetchHighScores(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["fetchHighScores", options];
_local1.doSend(["fetchHighScores", options], callbackObj, callbackMethod);
return(true);
}
static function sendHighScore(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["sendHighScore", options];
_local1.doSend(["sendHighScore", options], callbackObj, callbackMethod);
return(true);
}
static function load(options) {
var _local13 = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _parseOptions(options, _local13);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local9 = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local9._mochiad_loaded) {
return(null);
}
var _local12 = options.depth;
delete options.depth;
var _local6 = _local9.createEmptyMovieClip("_mochiad", _local12);
var _local11 = _getRes(options);
options.res = (_local11[0] + "x") + _local11[1];
options.server = options.server + options.id;
delete options.id;
_local9._mochiad_loaded = true;
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local7 in options) {
_local4[_local7] = options[_local7];
}
var _local10 = _local4.server;
delete _local4.server;
var _local14 = _allowDomains(_local10);
_local6.onEnterFrame = function () {
if (this._mochiad_ctr._url != this._url) {
this.onEnterFrame = function () {
if (!this._mochiad_ctr) {
delete this.onEnterFrame;
MochiAd.unload(this._parent);
}
};
}
};
var _local5 = new LocalConnection();
var _local8 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local8;
_local5.hostname = _local14;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local8);
_local6.lc = _local5;
_local4.lc = _local8;
_local4.st = getTimer();
_local4.loadMovie(_local10 + ".swf", "POST");
return(_local6);
}
static function unload(clip) {
if (typeof(clip) == "undefined") {
clip = _root;
}
if (clip.clip && (clip.clip._mochiad)) {
clip = clip.clip;
}
if (!clip._mochiad) {
return(false);
}
clip._mochiad.removeMovieClip();
delete clip._mochiad_loaded;
delete clip._mochiad;
return(true);
}
static function _isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function _getRes(options) {
var _local3 = options.clip.getBounds();
var _local2 = 0;
var _local1 = 0;
if (typeof(options.res) != "undefined") {
var _local4 = options.res.split("x");
_local2 = parseFloat(_local4[0]);
_local1 = parseFloat(_local4[1]);
} else {
_local2 = _local3.xMax - _local3.xMin;
_local1 = _local3.yMax - _local3.yMin;
}
if ((_local2 == 0) || (_local1 == 0)) {
_local2 = Stage.width;
_local1 = Stage.height;
}
return([_local2, _local1]);
}
static function _parseOptions(options, defaults) {
var _local4 = {};
for (var _local8 in defaults) {
_local4[_local8] = defaults[_local8];
}
if (options) {
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
}
if (_root.mochiad_options) {
var _local5 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local5.length) {
var _local3 = _local5[_local2].split("=");
_local4[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
return(_local4);
}
}
Symbol 56 MovieClip [__Packages.Highscore] Frame 0
class Highscore
{
function Highscore (url, target) {
_url = url;
_targetTF = target;
_entries = new Array();
_instance = this;
if (_targetTF) {
_targetTF.text = "\nLoading...";
}
}
function load() {
var _local2 = _url;
_loadvars = new LoadVars();
_loadvars.onLoad = onLoad;
_loadvars.m = "r";
_loadvars.load(_url + "?m=r");
}
function submit(name, score) {
var _local4 = 0;
var _local2 = 0;
while (_local2 < name.length) {
_local4 = _local4 + (name.charCodeAt(_local2) % 11);
_local2++;
}
_local4 = _local4 + (score % 512);
_loadvars = new LoadVars();
_loadvars.m = "w";
_loadvars.name = name;
_loadvars.score = score;
_loadvars.delta = _local4;
_loadvars.send(_url, "_blank", "POST");
return(true);
}
static function onLoad(success) {
var _local4 = _instance;
_local4._entries = new Array();
if (!_local4._loadvars) {
return(undefined);
}
if (!success) {
return(undefined);
}
var _local2 = _local4._loadvars;
var _local1 = 0;
while (_local1 < 10) {
if (_local2["name" + _local1] && (_local2["score" + _local1])) {
_local4._entries.push({name:_local2["name" + _local1], score:_local2["score" + _local1]});
}
_local1++;
}
_local4.display(null);
}
function display(tf) {
if (!tf) {
tf = _targetTF;
}
var _local6 = "";
var _local3 = 0;
while (_local3 < _entries.length) {
var _local5 = _entries[_local3].score.toString();
var _local4 = "";
var _local2 = 10 - _local5.length;
while (_local2 > 0) {
_local4 = _local4 + " ";
_local2--;
}
_local6 = _local6 + (((_local5 + _local4) + _entries[_local3].name) + newline);
_local3++;
}
tf.autoSize = false;
tf.htmlText = _local6;
}
function displayFull() {
getURL (_url + "?m=d", "_blank");
}
var _entries = null;
var _url = "";
var _loadvars = null;
static var _instance = null;
static var _targetTF = null;
}
Symbol 57 MovieClip [__Packages.LHolder] Frame 0
class LHolder extends MovieClip
{
function LHolder () {
super();
_balls = null;
_panels = null;
_lives = 0;
_score = 0;
_timeLeft = 0;
_currentLevel = 0;
_dropShadowFilter = new flash.filters.DropShadowFilter(3, 135, 3355443, 25, 2, 2, 2);
}
function run() {
if (_mover) {
if (!_mover.move()) {
_mover = null;
}
} else {
if ((_balls == null) || (_balls.length == 0)) {
return(undefined);
}
if (level_failed()) {
if (_interval && (_timeLeft <= 0)) {
var _local3 = _root.attachMovie("LevelText", "timeout", _root.getNextHighestDepth());
_local3._tf.text = "Timeout!";
_local3._width = _local3._width * 1.5;
_local3._x = _mc._x;
_local3._y = _mc._y - (_local3._height * 1.5);
}
if (_lives > 1) {
_lives--;
start_level(_currentLevel);
} else {
cleanup();
_root.gotoAndPlay("gameover");
}
} else if (level_finished()) {
_score = _score + ((_timeLeft * (7 + (3 * (_balls.length - 1)))) + Math.floor(_currentLevel * 2.5));
if ((_currentLevel + 1) < Level._data.length) {
start_level(_currentLevel + 1);
} else {
cleanup();
_root.gotoAndPlay("gamefinished");
}
} else if (_mc.enabled) {
onKeyDown();
}
}
}
function onKeyDown() {
if (_mover) {
return(undefined);
}
if (!_mc.enabled) {
return(undefined);
}
if (Key.isDown(37) && (!Key.isDown(39))) {
_mover = new Mover(this, -_panelWidth, 0);
} else if (Key.isDown(39) && (!Key.isDown(37))) {
_mover = new Mover(this, _panelWidth, 0);
} else if (Key.isDown(38) && (!Key.isDown(40))) {
_mover = new Mover(this, 0, -_panelHeight);
} else if (Key.isDown(40) && (!Key.isDown(38))) {
_mover = new Mover(this, 0, _panelHeight);
}
}
function init(gamemc, controls) {
_mc = gamemc;
_controls = controls;
start_game();
}
function start_game() {
_lives = 5;
_score = 0;
start_level(1);
}
function start_level(lvl) {
cleanup();
if ((lvl - 1) >= Level._data.length) {
return(false);
}
_leveldata = Level._data[lvl - 1];
_currentLevel = lvl;
_controls._tfLives.text = "x " + _lives.toString();
_controls._tfScore.text = "Score : " + _score.toString();
var _local4 = _mc;
_panels = new Array(MAX_ROWS * MAX_COLS);
_balls = new Array();
_XBASE = _mc._width * -0.35;
_YBASE = _mc._height * -0.35;
var _local6 = 0;
var _local9 = 0;
while (_local9 < MAX_ROWS) {
var _local5 = MAX_COLS - 1;
while (_local5 >= 0) {
var _local8 = _leveldata[(_local9 * xMax) + _local5];
_panels[(_local9 * xMax) + _local5] = null;
if (_local8 == 0) {
} else {
_local6++;
var _local3 = _mc.attachMovie("panel", "p" + _local6, _mc.getNextHighestDepth());
_panelWidth = _local3._width;
_panelHeight = _local3._height;
_local3._x = _XBASE + (_local5 * _panelWidth);
_local3._y = _YBASE + (_local9 * _panelHeight);
var _local11 = _local3.filters;
_local11.push(_dropShadowFilter);
_local3.filters = _local11;
_panels[(_local9 * xMax) + _local5] = _local3;
if ((_local8 & Level.END) != 0) {
_local6++;
_local3.attachMovie("Goal", "b" + _local6, _local3.getNextHighestDepth());
}
}
_local5--;
}
_local9++;
}
_XBASE = Math.floor(((_panelWidth * MAX_COLS) * -0.5) + (_panelWidth * 0.5));
_YBASE = Math.floor(((_panelHeight * MAX_ROWS) * -0.5) + (_panelHeight * 0.5));
var _local12 = 0;
while (_local12 < MAX_ROWS) {
var _local7 = MAX_COLS - 1;
while (_local7 >= 0) {
_panels[(_local12 * MAX_COLS) + _local7]._x = _XBASE + (_local7 * _panelWidth);
_panels[(_local12 * MAX_COLS) + _local7]._y = _YBASE + (_local12 * _panelHeight);
_local7--;
}
_local12++;
}
_local12 = 0;
while (_local12 < MAX_ROWS) {
var _local7 = MAX_COLS - 1;
while (_local7 >= 0) {
var _local8 = _leveldata[(_local12 * MAX_COLS) + _local7];
var _local3 = _panels[(_local12 * MAX_COLS) + _local7];
var _local2 = null;
if ((_local8 & Level.BT) != 0) {
_local6++;
_local2 = _local4.attachMovie("Border", "b" + _local6, _local4.getNextHighestDepth());
_local2._x = _local3._x;
_local2._y = _local3._y + (_local3._height * -0.5);
var _local11 = _local2.filters;
_local11.push(_dropShadowFilter);
_local2.filters = _local11;
}
if ((_local8 & Level.BB) != 0) {
_local6++;
_local2 = _local4.attachMovie("Border", "b" + _local6, _local4.getNextHighestDepth());
_local2._x = _local3._x;
_local2._y = _local3._y + (_local3._height * 0.5);
var _local11 = _local2.filters;
_local11.push(_dropShadowFilter);
_local2.filters = _local11;
}
if ((_local8 & Level.BL) != 0) {
_local6++;
_local2 = _local4.attachMovie("Border", "b" + _local6, _local4.getNextHighestDepth());
_local2._x = _local3._x + (_local3._width * -0.5);
_local2._y = _local3._y;
_local2._rotation = 90;
var _local11 = _local2.filters;
_local11.push(_dropShadowFilter);
_local2.filters = _local11;
}
if ((_local8 & Level.BR) != 0) {
_local6++;
_local2 = _local4.attachMovie("Border", "b" + _local6, _local4.getNextHighestDepth());
_local2._x = _local3._x + (_local3._width * 0.5);
_local2._y = _local3._y;
_local2._rotation = 90;
var _local11 = _local2.filters;
_local11.push(_dropShadowFilter);
_local2.filters = _local11;
}
_local7--;
}
_local12++;
}
_local12 = 0;
while (_local12 < MAX_ROWS) {
var _local7 = 0;
while (_local7 < MAX_COLS) {
if (_leveldata[(_local12 * MAX_COLS) + _local7] & Level.ST) {
_local6++;
var _local10 = _local4.attachMovie("ball", "b" + _local6, _local4.getNextHighestDepth());
_local10._x = _XBASE + (_local7 * _panelWidth);
_local10._y = _YBASE + (_local12 * _panelHeight);
_balls.push(_local10);
}
_local7++;
}
_local12++;
}
_local6++;
var _local13 = _mc.attachMovie("LevelText", "foo" + _local6, _mc.getNextHighestDepth());
_local13._tf.text = "Level " + _currentLevel;
_local13._width = _local13._width * 1.5;
_timeLeft = LEVEL_TIMEOUT;
_controls._tfTime.text = _timeLeft.toString();
_controls._tfTime.textColor = 0;
_interval = setInterval(this, "onTimer", 1000, 0);
return(true);
}
function onTimer() {
if (!_mc.enabled) {
return(undefined);
}
_timeLeft = Math.max(_timeLeft - 1, 0);
_controls._tfTime.text = _timeLeft.toString();
_controls._tfTime.textColor = ((_timeLeft > 30) ? 0 : 16711680);
}
function cleanup() {
_mover = null;
if (_interval) {
clearInterval(_interval);
_interval = 0;
}
for (var _local2 in _mc) {
_mc[_local2].removeMovieClip();
}
_panels = null;
_balls = null;
}
function panel_info(x, y) {
var _local3 = Math.round((y - _YBASE) / _panelHeight);
var _local2 = Math.round((x - _XBASE) / _panelWidth);
if ((_local3 < 0) || (_local3 >= MAX_ROWS)) {
return(0);
}
if ((_local2 < 0) || (_local2 >= MAX_COLS)) {
return(0);
}
var _local4 = (_local3 * MAX_COLS) + _local2;
if (_local4 >= _leveldata.length) {
return(0);
}
return(_leveldata[_local4]);
}
function level_finished() {
for (var _local2 in _balls) {
if ((panel_info(_balls[_local2]._x, _balls[_local2]._y) & Level.END) == 0) {
return(false);
}
}
return(true);
}
function level_failed() {
if (_timeLeft <= 0) {
return(true);
}
for (var _local2 in _balls) {
if (panel_info(_balls[_local2]._x, _balls[_local2]._y) == 0) {
return(true);
}
}
return(false);
}
static var LEVEL_TIMEOUT = 120;
static var xMax = 8;
static var yMax = 4;
static var MAX_ROWS = 8;
static var MAX_COLS = 8;
var _mover = null;
var _panelWidth = 0;
var _panelHeight = 0;
var _balls = null;
var _panels = null;
var _leveldata = null;
var _dropShadowFilter = null;
var _XBASE = 0;
var _YBASE = 0;
var _currentLevel = 0;
var _lives = 0;
var _score = 1000;
var _mc = null;
var _controls = null;
var _timeLeft = null;
var _interval = 0;
}
Symbol 58 MovieClip [__Packages.Mover] Frame 0
class Mover
{
function Mover (parent, xIncMax, yIncMax) {
_xIncMax = xIncMax;
_yIncMax = yIncMax;
_parent = parent;
_balls = new Array();
_xInc = ((xIncMax < 0) ? (-_INCREMENT) : (((xIncMax > 0) ? (_INCREMENT) : 0)));
_yInc = ((yIncMax < 0) ? (-_INCREMENT) : (((yIncMax > 0) ? (_INCREMENT) : 0)));
_rotate = 360 / (((xIncMax != 0) ? (xIncMax) : (yIncMax)) / Math.max(Math.abs(_xInc), Math.abs(_yInc)));
_xMax = Math.abs(xIncMax);
_yMax = Math.abs(yIncMax);
for (var _local6 in _parent._balls) {
var _local2 = _parent.panel_info(_parent._balls[_local6]._x, _parent._balls[_local6]._y);
var _local3 = _parent.panel_info(_parent._balls[_local6]._x + xIncMax, _parent._balls[_local6]._y + yIncMax);
if (((_xInc < 0) && ((_local2 & Level.BL) == 0)) && ((_local3 & Level.BR) == 0)) {
_balls.push(_parent._balls[_local6]);
} else if (((_xInc > 0) && ((_local2 & Level.BR) == 0)) && ((_local3 & Level.BL) == 0)) {
_balls.push(_parent._balls[_local6]);
}
if (((_yInc < 0) && ((_local2 & Level.BT) == 0)) && ((_local3 & Level.BB) == 0)) {
_balls.push(_parent._balls[_local6]);
} else if (((_yInc > 0) && ((_local2 & Level.BB) == 0)) && ((_local3 & Level.BT) == 0)) {
_balls.push(_parent._balls[_local6]);
}
}
}
function move() {
for (var _local4 in _balls) {
if (_xMax > 0) {
_balls[_local4]._x = _balls[_local4]._x + _xInc;
}
if (_yMax > 0) {
_balls[_local4]._y = _balls[_local4]._y + _yInc;
}
_balls[_local4]._rotation = _balls[_local4]._rotation + _rotate;
if (_parent.panel_info(_balls[_local4]._x, _balls[_local4]._y) == 0) {
_balls[_local4]._xscale = _balls[_local4]._xscale * 0.9;
_balls[_local4]._yscale = _balls[_local4]._yscale * 0.9;
}
}
if (_xMax > 0) {
_xMax = _xMax - Math.abs(_xInc);
}
if (_yMax > 0) {
_yMax = _yMax - Math.abs(_yInc);
}
var _local4 = 0;
while (_local4 < (_parent._balls.length - 1)) {
var _local2 = _local4 + 1;
while (_local2 < _parent._balls.length) {
if (((_xInc != 0) && (_parent._balls[_local4]._y == _parent._balls[_local2]._y)) && (Math.abs(_xIncMax) > (Math.max(_parent._balls[_local4]._x, _parent._balls[_local2]._x) - Math.min(_parent._balls[_local4]._x, _parent._balls[_local2]._x)))) {
var _local3 = (((_xInc < 0) ? (_parent._balls[_local4]._x > _parent._balls[_local2]._x) : (_parent._balls[_local4]._x < _parent._balls[_local2]._x)) ? (_local4) : (_local2));
_parent._balls[_local3]._x = _parent._balls[_local3]._x - _xInc;
_parent._balls[_local3]._rotation = _parent._balls[_local3]._rotation - _rotate;
}
if (((_yInc != 0) && (_parent._balls[_local4]._x == _parent._balls[_local2]._x)) && (Math.abs(_yIncMax) > (Math.max(_parent._balls[_local4]._y, _parent._balls[_local2]._y) - Math.min(_parent._balls[_local4]._y, _parent._balls[_local2]._y)))) {
var _local3 = (((_yInc < 0) ? (_parent._balls[_local4]._y > _parent._balls[_local2]._y) : (_parent._balls[_local4]._y < _parent._balls[_local2]._y)) ? (_local4) : (_local2));
_parent._balls[_local3]._y = _parent._balls[_local3]._y - _yInc;
_parent._balls[_local3]._rotation = _parent._balls[_local3]._rotation - _rotate;
}
_local2++;
}
_local4++;
}
if ((_xMax > 0) || (_yMax > 0)) {
return(true);
}
for (_local4 in _balls) {
}
return(false);
}
var _parent = null;
var _xInc = 0;
var _yInc = 0;
var _xMax = 0;
var _yMax = 0;
var _balls = null;
var _rotate = 0;
var _xIncMax = 0;
var _yIncMax = 0;
var _INCREMENT = 4;
}
Symbol 59 MovieClip [__Packages.Level] Frame 0
class Level
{
function Level () {
}
static var ST = 65536;
static var END = 131072;
static var BN = 1;
static var BL = 16;
static var BR = 32;
static var BT = 64;
static var BB = 128;
static var _data = new Array(new Array(0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, END, 0, 0, 0, 0, 0, 0, BT, 1, END, 0, 1, 0, 1, 0, 1, BT, 1, 1, BT, 1, 1, 0, BL, 1, 1, 1, 1, 1, 1, 1, 1, 1, BR, 1, 1, 0, 0, 1, ST, 0, 1, 1, 0, 0, BL, 1, 0, 0, 1, ST, 1), new Array(0, 0, 0, 0, 0, 0, ((END | BR) | BL) | BT, 0, 0, 1, END, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, BL, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, BB, 0, 0, BT, 1, 1, 1, 1, 0, 0, 0, BL, 1, 0, 0, BL, 1, 1, ST, 1, 1, BL, 1, 1, 0, ST | BR), new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, ST, 1, 0, 1, 1, BL, 0, 1, 1, 1, END, 1, 1, 0, 0, 0, ST, 1, BL, 1, 1, 1, 0, 0, 0, 1, 1, 1, END, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0), new Array(1, 1, 1, 1, 1, 0, 0, BT, BT, 1, END, 0, 0, 0, END, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, BL, 1, BL, 1, 1, 1, BR, ST, 0, 1, 1, 1, 0, 1, BB, 0, 0, 0, 0, 1, 0, ST, 0), new Array(1, 0, 0, 0, ST, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, BL, 1, 1, BT, BT, 1, 1, BT, 1, ST, 1, 1, 1, 0, 1, 1, BL, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, BR, 1, 1, 0, END, 1, 0, 0, 1, 1, 0, 0, BL, END, 0, 0, 0, 0, 1), new Array(1, 0, 0, 0, ST, 0, 0, 0, 1, 1, 1, 1, ST, 0, 0, 0, 1, 0, BL, BT, 1, BL, 1, 1, 1, BT, 1, 1, 1, 1, 1, BT, 1, 1, 0, BL, 0, 1, 1, 1, 0, 1, 1, 1, 1, BR, 1, 1, 0, END, 1, 0, 0, 1, 1, 0, 0, BL, 1, 0, END, 1, 0, 1), new Array(1, 1, 0, 1, END, 0, 0, 0, 1, 0, 1, 1, 1, 0, END, BR, 1, 1, 1, BL, 1, 1, 1, 1, 1, BT, 1, 1, 1, 1, 1, BT, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, ST, 1, 1, ST, BT, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0), new Array(1, END, 0, 0, END, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, BT, 1, BL, 1, 1, 1, BT, 1, 1, BB, 1, BL, BT, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, BT, 1, 0, BL, 1, 0, 1, 0, 1, 1, 0, 0, BL, 0, ST, 0, 0, ST), new Array(0, ST, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, ST, 1, 1, 1, 1, 0, 1, 1, 1, BT, 1, BL, BT, 1, 1, BL, 1, 1, 1, 1, 1, 0, 0, 1, END, BL, END, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0), new Array(1, 0, 1, 1, 1, 0, 0, 0, 0, 1, BL, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, BL, 0, BL, 0, END, 0, 1, 1, 1, ST | BT, 1, 0, END, 1, 1, BL, 1, 1, BT, 1, 1, 1, 0, ST, 1, 1, 1, 1, BL, 0, 0, 0, 0, 0, 1, 0, 1, 0), new Array(0, 1, 0, 0, 0, 0, 0, 0, ST, BR, 0, 0, 0, ST, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, BT, 1, 1, 1, 1, BL, 1, 1, 1, 1, BT, 1, 1, 0, 0, BR, 0, 0, 1, 0, BL, 0, 1, 1, 1, 1, 1, 1, END, 0, 0, 1, 0, 0, END, 1, BL), new Array(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, BB, 0, 1, 0, 1, BT, ST, 1, 0, 0, 1, 0, BT, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, BR, 0, 1, 0, END, 1, 1, 1, 1, 1, ST, 0, 0, END, 0, 0, 0, BL, 0), new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, ST, 1, 0, 1, 0, BL, 1, ST, BL, 1, 1, 1, 0, 0, 0, 1, 1, BT, 1, 1, 1, 1, BR, 0, 0, 1, 0, BR, 0, END, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, BT, 0, END, BL), new Array(0, 0, 0, 1, 0, 0, 0, 0, 0, ST, 0, 1, 0, 0, 0, 0, 0, 1, 0, BL, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, ST, 0, 0, 1, 0, BL, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, BT, 1, 0, BL, 1, 0, 0, 1, 0, 1, 0, 1, END, 0, 0, 1, END, 1), new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 1, BL, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, BT, 1, 1, ST, 1, 0, 0, BR, 0, 1, 1, BT, 1, 1, 1, 1, END, 1, 1, ST, 1, BL, 1, 1, BL, 1, 0, 0, 1, 1, 1, END, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), new Array(0, BT, 0, 0, 0, 1, 0, 0, 0, 1, ST, 0, 1, 1, BT, 1, 1, 1, 1, 1, BL, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, BL, 1, 0, 1, 1, END | BT, 1, ST, 1, 0, 1, BL, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, END, 1), new Array(1, ST, 1, 1, 1, 0, ST, BL, BT, 1, BL, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, BT, 0, 1, 1, END, 1, 1, END, 1, 0, 1, 1, 1, BT, 1, BL, 1, 1, 1, BR, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0), new Array(0, 0, 0, 0, 1, 1, BR, 0, 0, ST, 0, 0, ST, 0, 1, 0, BL, 1, 0, 0, BT, 0, 1, 0, 0, 1, BT, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, BT, 1, 0, BL, 0, 0, 1, 1, 1, 1, END, 0, 0, 0, 1, END, BT, 0, 1, 0), new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, BL, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, BL, 1, BT, ST, 0, END, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, BT, 1, BR, 0, END, 1, 1, BL, 1, 1, 0, 0, 0, BT, 0, 0, 0, 1, ST), new Array(0, ST, 0, 0, 0, 0, ST, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, BL, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, BT, 1, BL, BT, 1, 1, BR, 0, 1, 0, 0, 1, 0, BL, 0, END | BB, 1, 1, 1, 1, 1, END, 0, 0, 1, 0, 0, 0, 1, BL), new Array(END, 0, END, 0, 0, 0, 0, 0, 1, 0, BL, 1, ST, BT, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, BR, 0, 1, 1, BT, 1, 1, 1, ST, 0, 1, 1, 0, BL, 0, 1, 1, BL, 1, 0, 0, 1, 0, 0, BL, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, ST, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, ST, BB, 1, 1, 1, 0, BL, 1, 1, 0, END | BL, 0, 0, 1, 1, 1, 1, 1, BT, 1, BR, 0, END, 1, 1, BL, 1, 1, 0, 0, 0, BT, 0, 0, 0, 0, 0), new Array(0, 0, 0, 0, 0, 1, 0, 0, 0, ST, 0, 0, 0, ST, 0, 0, 1, 1, 0, 1, 1, BB, 0, 1, BL, 0, BT, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, END | BR, 0, 0, 1, 1, BT, 1, 0, 1, 0, 1, 1, 1, 1, BB, 1, 1, 0, 0, 1, BL, END, 0, 1, 0));
}
Symbol 28 Button
on (press) {
_root.play();
}
Symbol 34 MovieClip Frame 1
function autostart() {
clearInterval(_root.autostartInterval);
_root.play();
}
_root.stop();
if (!this.hsText) {
this.hsText = true;
_root.highscore = new Highscore("http://www.puzzlepool.com/twinballs/highscore.asp", _tfHighscore);
_root.highscore.load();
_root.autostartInterval = 0;
}
btnviewhighscore.onPress = function () {
_root.highscore.displayFull();
};
Symbol 50 Button
on (press) {
_root.gotoAndPlay("newgame");
}
Symbol 54 MovieClip Frame 1
_tfFinalScore.text = "Your Final Score: " + _root.lholder._score;
_btnSubmit.onPress = function () {
if (this._parent._tfName.text && (_root.lholder._score != 0)) {
_root.highscore.submit(this._parent._tfName.text, _root.lholder._score);
this.enabled = false;
}
};
this.stop();