Frame 1
com.neodelight.std.Blueprint.addBlueprint("score", {scoreTypes:[{totalAdd:true, id:"level"}, {totalAdd:false, id:"totalScore"}]});
com.neodelight.std.Blueprint.addBlueprint("game", {gameTitle:"Alex Trax", gameName:"alextrax", gameFlashVersion:7, gameLicenses:"neodelight,freeware", gameHighscores:true, gameHighscoresKey0:"S8fE7NMb", gameHighscoresKey1:"HBo8N0sb"});
com.neodelight.std.Blueprint.addBlueprint("neodelight", {blueprint:"game", version:"neodelight", configNeedDomain:"neodelight.com", fullVersion:true, gameCredits:"You are free to redistribute, download and host the game as long as you don't make any changes to the game files and don't restrict the access to the game to paying users.\n\nVisit www.neodelight.com/webmaster for details and more free website content.", gameCopyright:"(c)neodelight 2007", gameCopyrightLink:"http://www.neodelight.com/?ref=alextrax", gameIntro:"introNd", urlHighscoresView:"http://www.neodelight.com/highscores/alextrax?ref=alextrax", urlHighscoresViewTarget:"_top", urlMoreGames:"http://www.neodelight.com/?ref=alextrax", urlMoreGamesTarget:"_top", gameScoreSubmit:function (score) {
trace("submit score: " + score);
_global.highscores.submit(score);
}});
com.neodelight.std.Blueprint.addBlueprint("freeware", {blueprint:"neodelight", version:"free", configNeedDomain:"local,*", urlMoreGamesTarget:"_new", urlHighscoresViewTarget:"_new"});
_global.config = com.neodelight.std.AutoConfig.getConfig({configs:com.neodelight.std.Blueprint.getBlueprint("game").gameLicenses});
if (_global.config.version == "free") {
MochiAd.showPreloaderAd({id:"f3abb85aeebe1070", res:"550x400"});
} else {
MochiAd.showPreloaderAd({id:"c327f293084bb243", res:"550x400"});
}
Frame 3
if (_global.config.gameIntro) {
trace("intro: " + _global.config.gameIntro);
intro.gotoAndStop(_global.config.gameIntro);
stop();
} else {
play();
}
Frame 4
stop();
Frame 8
function format(time, fuckTheHun) {
if (time >= 0) {
var _local1 = int((time / 1000) / 60);
var _local2 = int((time - (_local1 * 60000)) / 1000);
var _local3 = int(((time - (_local1 * 60000)) - (_local2 * 1000)) / 10);
tHou = 0;
while (_local1 > 60) {
_local1 = _local1 - 60;
tHou++;
}
if (tHou < 10) {
tHou = "0" + tHou;
}
if (_local1 < 10) {
_local1 = "0" + _local1;
}
if (_local2 < 10) {
_local2 = "0" + _local2;
}
if (_local3 < 10) {
_local3 = "0" + _local3;
}
if (fuckTheHun) {
if (int(tHou > 0)) {
return((((tHou + ":") + _local1) + ":") + _local2);
}
return((_local1 + ":") + _local2);
}
if (int(tHou > 0)) {
return((((((tHou + ":") + _local1) + ":") + _local2) + ":") + _local3);
}
return((((_local1 + ":") + _local2) + ":") + _local3);
}
return("--:--:--");
}
function resetRecords(firstTime) {
shared.data.maps = [[-1, -1, -1]];
shared.data.totalTime = 0;
shared.data.bikeProperties = [1, 1, 1, 1, 1];
shared.data.unlocked_1 = [true, false, false, false];
shared.data.unlocked_2 = [true, false, false, false];
shared.data.unlocked_3 = [true, false, false, false];
shared.data.unlocked_4 = [true, false, false, false, false];
shared.data.unlocked_5 = [true, false, false, false];
shared.data.maxLevel = 0;
mapId = 0;
if (firstTime) {
shared.data.music = true;
shared.data.sound = true;
}
shared.flush();
}
function sortTimes(a, b) {
if ((a == -1) && (b == -1)) {
return(0);
}
if ((a == -1) && (b >= 0)) {
return(1);
}
if ((a >= 0) && (b == -1)) {
return(-1);
}
if (a < b) {
return(-1);
}
if (a > b) {
return(1);
}
return(0);
}
_root._focusrect = false;
gameInitied = true;
_quality = "medium";
com.neodelight.flanix.Kernel.init();
new com.neodelight.flanix.Console();
com.neodelight.std.Blueprint.addBlueprint("score", {scoreTypes:[{totalAdd:true, id:"level"}, {totalAdd:false, id:"totalScore"}]});
com.neodelight.std.Blueprint.addBlueprint("game", {gameTitle:"Alex Trax", gameName:"alextrax", gameFlashVersion:7, gameLicenses:"neodelight,freeware", gameHighscores:true, gameHighscoresKey0:"S8fE7NMb", gameHighscoresKey1:"HBo8N0sb"});
com.neodelight.std.Blueprint.addBlueprint("neodelight", {blueprint:"game", version:"neodelight", configNeedDomain:"neodelight.com", fullVersion:true, gameCredits:"You are free to redistribute, download and host the game as long as you don't make any changes to the game files and don't restrict the access to the game to paying users.\n\nVisit www.neodelight.com/webmaster for details and more free website content.", gameCopyright:"(c)neodelight 2007", gameCopyrightLink:"http://www.neodelight.com/?ref=alextrax", gameIntro:"introNd", urlHighscoresView:"http://www.neodelight.com/highscores/alextrax?ref=alextrax", urlHighscoresViewTarget:"_top", urlMoreGames:"http://www.neodelight.com/?ref=alextrax", urlMoreGamesTarget:"_top", gameScoreSubmit:function (score) {
trace("submit score: " + score);
_global.highscores.submit(score);
}});
com.neodelight.std.Blueprint.addBlueprint("freeware", {blueprint:"neodelight", version:"free", configNeedDomain:"local,*", urlMoreGamesTarget:"_new", urlHighscoresViewTarget:"_new"});
new com.neodelight.game.Game();
shared = SharedObject.getLocal(_global.game.name);
if (shared.data.maps == undefined) {
resetRecords(true);
}
trace("shared max level: " + shared.data.maxLevel);
_global.game.maxLevel = (shared.data.maxLevel = com.neodelight.std.XMath.toNumber(shared.data.maxLevel));
if (!_global.lib.lvls) {
_global.lib.lvls = new Array();
}
_global.lib.lvls.push(new com.neodelight.r2d.R2dLevel({title:"Backyard", colLine:10929199, colFill:12047930, skin:0, groundY:1300, startX:500, startY:980, map:[[[180, 620, 220, 380, 520, 680], [220, 380], [220, 680], [520, 680], [520, 380]], [[500, 620, 200, 380, 500, 390], [200, 380], [500, 380], [500, 390], [200, 390]], [[580, 680, 420, 150, 920, 620], [420, 320], [520, 270], [620, 220], [720, 180], [820, 160], [920, 150], [920, 620], [420, 620]], [[140, 520, 320, 240, 360, 280], [320, 240], [320, 280], [360, 260]], [[140, 520, 360, 240, 400, 280], [360, 240], [360, 280], [400, 260]], [[140, 520, 400, 240, 440, 280], [400, 240], [400, 280], [440, 260]], [[1200, 420, 300, 410, 600, 420], [300, 410], [600, 410], [600, 420], [300, 420]], [[1480, 320, 320, 190, 920, 680], [320, 510], [430, 500], [500, 480], [580, 430], [660, 340], [710, 280], [760, 230], [810, 200], [860, 190], [920, 190], [920, 680], [320, 680]], [[1480, 680, 320, 320, 920, 620], [320, 320], [320, 620], [920, 620], [920, 320]], [[1920, 20, 300, 150, 700, 340], [300, 340], [350, 310], [410, 290], [480, 290], [580, 290], [630, 300], [680, 330], [700, 280], [630, 220], [560, 180], [440, 150], [390, 170], [320, 230], [300, 320]], [[2200, 300, 200, 210, 980, 700], [200, 210], [240, 210], [300, 220], [330, 240], [380, 290], [440, 360], [520, 450], [580, 490], [690, 520], [820, 530], [980, 530], [980, 700], [200, 700]], [[2260, 680, 140, 320, 920, 620], [140, 620], [920, 320], [140, 320]], [[3160, 340, 20, 240, 940, 660], [20, 660], [440, 660], [940, 660], [940, 360], [870, 390], [630, 380], [520, 330], [450, 290], [410, 250], [400, 240], [390, 560], [20, 560]], [[2960, 320, 220, 260, 600, 580], [220, 510], [320, 500], [430, 470], [500, 420], [560, 340], [600, 260], [590, 580], [220, 580]], [[3880, 420, 220, 130, 520, 580], [220, 280], [260, 250], [310, 190], [360, 160], [430, 140], [520, 130], [520, 580], [220, 580]], [[4200, 20, 200, 300, 1000, 690], [200, 530], [300, 530], [400, 550], [480, 560], [600, 560], [700, 550], [760, 530], [810, 480], [840, 430], [880, 370], [910, 330], [950, 310], [1000, 300], [1000, 690], [200, 690]], [[4280, 400, 120, 310, 920, 600], [120, 600], [920, 600], [920, 310], [120, 310]], [[5020, 0, 180, 100, 780, 330], [180, 320], [780, 100], [780, 110], [180, 330]], [[5220, 80, 520, 20, 880, 700], [580, 20], [580, 30], [520, 700], [880, 700], [880, 100], [780, 60], [660, 20]], [[5980, 120, 120, 60, 1000, 680], [120, 60], [240, 160], [380, 260], [470, 290], [620, 300], [820, 310], [880, 300], [950, 260], [1000, 220], [1000, 680], [120, 660]], [[6560, 0, 420, 260, 870, 700], [420, 340], [440, 300], [450, 260], [460, 300], [480, 340], [530, 410], [600, 470], [680, 510], [770, 530], [870, 530], [420, 700]], [[6980, 0, 450, 0, 900, 600], [450, 530], [530, 530], [620, 510], [690, 470], [730, 420], [770, 340], [790, 220], [790, 130], [770, 50], [750, 0], [820, 0], [880, 200], [900, 370], [860, 490], [770, 600]], [[6900, 120, 80, 410, 850, 580], [80, 580], [850, 480], [530, 410]], [[0, 680, 50, 20, 400, 620], [400, 320], [200, 320], [130, 110], [140, 20], [50, 320], [80, 520], [400, 620]]], xtras:[[290, 960, 3], [850, 901, 4], [1650, 731, 5], [3089, 733, 6], [5863, 20, 7], [6610, 324, 8], [7328, 434, 9], [7690, 140, 2], [6880, 10, 1]]}));
_global.lib.lvls.push(new com.neodelight.r2d.R2dLevel({title:"Molehills & Mountains", colLine:10929199, colFill:12047930, skin:0, groundY:1200, startX:120, startY:200, map:[[[0, 1540, 100, 360, 950, 460], [100, 360], [340, 360], [490, 360], [950, 360], [950, 460], [100, 460]], [[860, 40, 360, 360, 540, 520], [360, 360], [540, 360], [540, 520], [360, 520]], [[1140, 120, 260, 280, 590, 680], [260, 280], [310, 280], [360, 300], [400, 330], [440, 380], [480, 450], [520, 560], [580, 670], [590, 680], [260, 680]], [[1400, 420, 330, 140, 960, 480], [330, 380], [360, 400], [430, 430], [530, 450], [670, 450], [780, 420], [830, 380], [900, 280], [960, 140], [960, 480], [330, 480]], [[2080, 200, 280, 200, 820, 700], [280, 360], [450, 360], [520, 300], [620, 300], [720, 200], [820, 200], [820, 700], [280, 700]], [[2660, 40, 240, 360, 540, 400], [240, 360], [540, 360], [540, 400], [240, 400]], [[680, 100, 330, 300, 540, 600], [330, 330], [390, 340], [470, 340], [510, 330], [530, 310], [540, 300], [540, 600], [330, 600]], [[2980, 160, 220, 240, 920, 560], [220, 240], [260, 390], [340, 490], [520, 540], [620, 540], [800, 490], [880, 390], [920, 240], [920, 540], [620, 540], [620, 560], [520, 560], [520, 540], [220, 540]], [[3440, 40, 460, 260, 860, 400], [460, 360], [860, 260], [860, 300], [460, 400]], [[3860, 0, 440, 300, 840, 440], [440, 300], [840, 400], [840, 440], [440, 340]], [[4320, 160, 380, 240, 420, 690], [380, 240], [380, 690], [420, 690], [420, 240]], [[4480, 160, 260, 240, 820, 380], [260, 240], [820, 340], [820, 380], [260, 280]], [[4760, 320, 540, 180, 580, 680], [540, 180], [540, 680], [580, 680], [580, 180]], [[4620, 80, 130, 280, 280, 350], [130, 320], [180, 320], [280, 280], [280, 350]], [[4720, 0, 480, 440, 620, 500], [480, 480], [620, 440], [620, 500], [580, 500]], [[0, 160, 0, 80, 200, 540], [0, 80], [200, 80], [200, 540], [0, 540]], [[140, 140, 60, 100, 870, 560], [60, 100], [100, 110], [150, 150], [210, 250], [270, 360], [320, 440], [360, 480], [410, 510], [450, 520], [510, 520], [570, 510], [640, 490], [700, 460], [740, 420], [780, 360], [800, 310], [820, 260], [840, 230], [860, 220], [870, 290], [870, 560], [60, 560]], [[2620, 140, 180, 240, 260, 260], [180, 260], [220, 240], [260, 260]], [[2620, 140, 280, 240, 320, 260], [280, 260], [300, 240], [320, 260]], [[2620, 140, 320, 240, 400, 260], [320, 260], [360, 240], [400, 260]], [[2620, 140, 540, 240, 580, 260], [580, 260], [560, 240], [540, 260]], [[2620, 140, 460, 240, 540, 260], [540, 260], [500, 240], [460, 260]], [[2620, 140, 400, 240, 460, 260], [400, 260], [430, 240], [460, 260]], [[5140, 340, 520, 160, 560, 660], [520, 160], [520, 660], [550, 660], [560, 660], [560, 160]], [[5560, 160, 140, 240, 510, 340], [140, 340], [230, 330], [310, 310], [410, 280], [490, 250], [510, 240], [510, 340]], [[5920, 100, 310, 150, 680, 400], [310, 300], [310, 400], [680, 400], [680, 160], [640, 150], [600, 160], [560, 180], [530, 210], [500, 240], [470, 290], [450, 310], [410, 330], [380, 330], [360, 330], [340, 320], [320, 310]], [[5300, 300, 400, 200, 500, 300], [400, 300], [500, 200], [400, 200]], [[5460, 320, 570, 180, 610, 680], [610, 180], [610, 680], [570, 680], [570, 180]], [[5460, 320, 470, 180, 570, 280], [570, 280], [470, 180], [570, 180]], [[5780, 320, 450, 180, 490, 680], [450, 180], [450, 680], [490, 680], [490, 180]], [[6000, 220, 270, 280, 370, 380], [270, 380], [370, 280], [270, 280]], [[6360, 120, 240, 140, 630, 690], [240, 140], [310, 170], [360, 240], [440, 380], [580, 630], [630, 690], [240, 690]], [[4960, 120, 580, 380, 700, 480], [690, 380], [580, 480], [700, 480], [700, 380]], [[1160, 560, 240, 240, 570, 340], [240, 240], [240, 340], [570, 340], [570, 240]], [[2840, 320, 360, 380, 660, 580], [360, 380], [360, 400], [360, 580], [660, 580], [660, 380]], [[3240, 320, 260, 380, 660, 580], [260, 400], [260, 580], [660, 580], [660, 380], [360, 380], [360, 400]], [[3900, 0, 320, 260, 480, 320], [400, 300], [320, 320], [400, 260], [480, 320]], [[6740, 560, 60, 70, 920, 440], [250, 250], [290, 290], [360, 340], [450, 360], [540, 360], [650, 320], [720, 250], [750, 170], [780, 100], [840, 70], [920, 70], [920, 440], [60, 440], [60, 250]], [[6440, 560, 160, 250, 360, 440], [160, 250], [160, 440], [360, 440], [360, 250]], [[7300, 360, 360, 260, 520, 300], [360, 270], [400, 260], [400, 270], [440, 260], [440, 270], [480, 260], [480, 270], [520, 260], [520, 270], [520, 300], [360, 300]], [[7540, 360, 280, 270, 760, 640], [280, 270], [280, 640], [760, 640], [760, 270]], [[7540, 360, 280, 0, 760, 270], [280, 270], [410, 220], [670, 220], [760, 0], [760, 270]], [[0, 0, 0, 0, 300, 240], [0, 240], [20, 0], [300, 20], [60, 30], [40, 240]], [[0, 480, 0, 220, 960, 520], [0, 220], [500, 520], [960, 520], [960, 220]], [[820, 540, 140, 20, 980, 660], [140, 460], [890, 660], [980, 360], [580, 360], [580, 20], [400, 20], [400, 160], [140, 160]], [[1620, 620, 90, 280, 980, 580], [90, 580], [980, 380], [980, 280], [180, 280]], [[2480, 580, 120, 220, 520, 480], [120, 420], [430, 480], [520, 420], [420, 220], [420, 320], [120, 320]], [[2720, 520, 460, 280, 980, 620], [480, 280], [460, 480], [620, 620], [980, 580], [940, 380], [480, 380]], [[3620, 460, 40, 40, 480, 640], [80, 640], [330, 610], [480, 410], [280, 40], [280, 440], [40, 440]], [[4280, 640, 420, 210, 460, 660], [420, 210], [420, 660], [460, 660], [460, 210]], [[5000, 880, 300, 120, 360, 620], [300, 120], [300, 620], [360, 620], [340, 120]], [[5100, 880, 540, 120, 620, 620], [560, 120], [540, 620], [600, 620], [620, 620], [600, 120]], [[5560, 880, 450, 120, 530, 620], [470, 120], [450, 620], [510, 620], [530, 620], [510, 120]], [[5680, 880, 530, 120, 610, 620], [550, 120], [530, 620], [610, 620], [590, 120]], [[5980, 840, 570, 160, 1000, 660], [620, 160], [570, 660], [820, 660], [1000, 520], [860, 160]], [[6780, 700, 60, 300, 880, 660], [200, 660], [880, 300], [60, 300]]], xtras:[[5535, 542, 1], [2811, 202, 1], [281, 145, 10], [764, 558, 11], [8100, 550, 3]]}));
_global.lib.lvls.push(new com.neodelight.r2d.R2dLevel({title:"Wanderlust", colLine:10929199, colFill:12047930, skin:0, groundY:8000, startX:300, startY:660, map:[[[140, 420, 60, 280, 660, 380], [160, 280], [60, 380], [660, 380], [560, 280], [160, 280]], [[420, 240, 280, 460, 580, 560], [280, 460], [580, 500], [580, 560], [380, 560]], [[500, 80, 360, 610, 500, 660], [360, 640], [400, 610], [500, 660]], [[740, 220, 260, 300, 980, 580], [260, 520], [320, 500], [360, 460], [380, 430], [490, 480], [510, 460], [550, 480], [620, 420], [670, 430], [710, 430], [740, 410], [770, 380], [790, 350], [820, 320], [870, 310], [940, 300], [980, 310], [980, 580], [260, 580]], [[1440, 200, 280, 330, 660, 600], [280, 330], [300, 340], [330, 370], [360, 430], [390, 490], [420, 520], [470, 540], [530, 550], [660, 550], [660, 600], [280, 600]], [[1800, 260, 200, 440, 300, 490], [300, 490], [300, 440], [200, 490]], [[1920, 260, 180, 460, 340, 540], [180, 490], [200, 460], [210, 490], [220, 470], [230, 490], [250, 460], [260, 490], [270, 470], [280, 490], [300, 460], [300, 490], [320, 480], [330, 490], [340, 470], [340, 490], [340, 540], [180, 540]], [[2640, 140, 250, 260, 930, 690], [250, 260], [310, 270], [400, 280], [530, 290], [680, 320], [530, 330], [360, 350], [340, 470], [350, 550], [370, 600], [440, 640], [510, 660], [640, 680], [730, 680], [780, 680], [860, 670], [930, 680], [930, 690], [260, 690]], [[3120, 200, 380, 50, 980, 490], [530, 50], [460, 140], [430, 180], [410, 230], [380, 360], [430, 380], [570, 390], [600, 400], [660, 410], [730, 460], [780, 490], [850, 480], [910, 450], [960, 380], [980, 290], [980, 230], [960, 110], [900, 70]], [[300, 360, 260, 330, 330, 340], [260, 340], [330, 330], [330, 340]], [[300, 360, 330, 290, 400, 340], [330, 330], [400, 290], [400, 340], [330, 340]], [[3480, 320, 400, 360, 420, 420], [400, 360], [410, 420], [420, 370]], [[3480, 320, 420, 370, 440, 460], [420, 370], [430, 460], [440, 370]], [[3480, 320, 500, 340, 530, 430], [500, 360], [520, 430], [530, 340]], [[3480, 320, 490, 330, 530, 410], [490, 340], [500, 410], [530, 330]], [[3820, 100, 660, 420, 740, 490], [660, 460], [660, 420], [740, 490]], [[3820, 100, 260, 210, 530, 420], [530, 420], [280, 320], [260, 210]], [[4260, 420, 220, 140, 610, 370], [220, 140], [220, 180], [610, 370], [610, 330], [300, 170]], [[3400, 480, 170, 340, 770, 640], [170, 340], [220, 350], [260, 360], [330, 410], [380, 440], [440, 490], [520, 540], [620, 600], [710, 620], [770, 620], [770, 640], [170, 640]], [[3340, 460, 170, 340, 260, 370], [170, 350], [260, 340], [260, 370]], [[3760, 580, 350, 500, 480, 520], [350, 520], [480, 500], [480, 520]], [[4200, 740, 460, 350, 980, 600], [460, 360], [610, 360], [700, 350], [750, 390], [830, 460], [930, 570], [980, 600], [460, 600]], [[5140, 1040, 40, 300, 970, 560], [40, 300], [160, 360], [490, 450], [970, 480], [970, 560], [40, 560]], [[4620, 440, 250, 310, 380, 380], [250, 310], [360, 340], [380, 380], [250, 350]], [[2840, 600, 60, 230, 730, 520], [60, 230], [730, 520], [730, 230]], [[3460, 780, 110, 340, 710, 480], [110, 340], [710, 480], [710, 340]], [[4580, 1000, 80, 340, 600, 600], [80, 340], [600, 600], [600, 340]], [[5920, 920, 190, 600, 480, 680], [190, 600], [480, 600], [480, 680], [190, 680]], [[6140, 900, 260, 0, 560, 700], [260, 620], [360, 610], [460, 560], [520, 470], [540, 360], [530, 230], [490, 120], [430, 60], [370, 20], [290, 0], [560, 0], [560, 700], [260, 700]], [[1980, 120, 280, 280, 920, 690], [280, 610], [280, 680], [920, 690], [910, 280], [840, 280], [820, 310], [810, 360], [770, 420], [710, 480], [630, 520], [540, 550], [450, 570], [380, 580], [320, 580], [290, 580]], [[2160, 340, 100, 460, 740, 490], [100, 460], [740, 490], [740, 470]], [[0, 200, 10, 220, 800, 670], [300, 500], [200, 480], [160, 440], [140, 410], [130, 340], [140, 280], [180, 220], [100, 270], [30, 360], [10, 450], [40, 560], [170, 670], [800, 600], [200, 600]], [[4060, 740, 110, 360, 600, 600], [600, 360], [570, 410], [510, 470], [400, 510], [240, 510], [150, 490], [120, 450], [130, 390], [180, 360], [110, 360], [110, 520], [270, 560], [600, 600]], [[5880, 680, 550, 60, 950, 350], [550, 220], [680, 160], [820, 70], [920, 60], [950, 210], [940, 350], [820, 220]], [[5980, 860, 720, 30, 980, 690], [780, 110], [780, 560], [720, 640], [720, 680], [820, 690], [920, 640], [980, 340], [850, 30], [840, 170], [720, 40]], [[6020, 840, 680, 60, 740, 660], [680, 60], [700, 130], [690, 460], [680, 660], [740, 580], [720, 490], [730, 370], [740, 130]], [[5500, 600, 480, 460, 720, 620], [720, 600], [650, 580], [560, 530], [480, 460], [480, 500], [550, 560], [650, 610], [720, 620]], [[5400, 480, 60, 200, 540, 600], [540, 560], [540, 600], [430, 540], [320, 450], [260, 370], [210, 310], [160, 260], [130, 240], [60, 220], [60, 200], [130, 220], [170, 250], [230, 310], [330, 430], [440, 520]], [[4760, 240, 400, 350, 700, 470], [700, 440], [540, 420], [420, 370], [400, 350], [400, 470], [540, 460], [700, 460]], [[4580, 460, 560, 130, 580, 260], [580, 130], [560, 260], [580, 250]], [[5900, 820, 320, 380, 600, 430], [320, 380], [320, 400], [600, 430], [590, 410]], [[6020, 820, 470, 410, 510, 430], [470, 410], [510, 410], [510, 430], [480, 430]]], xtras:[[6329, 1427, 12], [3800, 230, 3], [4780, 820, 1]]}));
_global.lib.lvls.push(new com.neodelight.r2d.R2dLevel({title:"Sk8 Glacier", colLine:10929199, colFill:12047930, skin:1, groundY:8000, startX:2240, startY:1860, map:[[[1920, 1640, 80, 260, 590, 360], [180, 260], [80, 360], [590, 360], [480, 260]], [[1480, 1560, 120, 140, 520, 540], [510, 440], [520, 440], [520, 540], [120, 540], [120, 140], [150, 200], [270, 350], [340, 400], [420, 430], [450, 440]], [[2380, 1740, 120, 200, 580, 460], [130, 260], [200, 320], [280, 360], [360, 370], [430, 360], [480, 330], [540, 270], [580, 200], [580, 260], [580, 460], [120, 460]], [[2380, 1740, 120, 260, 130, 460], [120, 460], [120, 260], [130, 260]], [[2760, 1560, 420, 240, 940, 640], [420, 380], [420, 640], [940, 640], [940, 240], [880, 260], [830, 290], [790, 340], [730, 400], [670, 440], [600, 450], [540, 430], [490, 410], [450, 370], [420, 330]], [[2540, 1580, 560, 310, 640, 620], [640, 310], [560, 320], [560, 620], [640, 620]], [[3580, 1400, 120, 400, 420, 500], [120, 400], [420, 500], [370, 500], [120, 480]], [[3640, 1620, 420, 180, 560, 480], [560, 180], [420, 480], [460, 460], [560, 280]], [[3520, 1760, 180, 120, 500, 580], [180, 300], [420, 540], [500, 580], [460, 520], [270, 310], [250, 200], [380, 140], [180, 120]], [[3520, 1760, 180, 120, 480, 140], [380, 140], [480, 140], [180, 120]], [[3580, 1840, 450, 330, 980, 500], [480, 450], [450, 500], [500, 470], [740, 370], [950, 380], [980, 340], [740, 330]], [[4040, 1800, 540, 190, 900, 420], [540, 380], [570, 420], [750, 370], [900, 230], [890, 190], [860, 220], [840, 260], [780, 280], [690, 340], [630, 380]], [[4580, 1660, 350, 300, 820, 540], [350, 330], [360, 300], [410, 380], [490, 490], [560, 510], [660, 480], [710, 420], [700, 480], [780, 480], [760, 420], [820, 480], [820, 540], [360, 540], [360, 370]], [[4860, 1760, 430, 310, 490, 380], [430, 380], [440, 320], [460, 310], [470, 320], [490, 380]], [[5160, 1600, 140, 440, 170, 480], [140, 480], [160, 440], [170, 480], [160, 470]], [[5020, 1600, 380, 400, 980, 600], [380, 540], [410, 550], [480, 560], [730, 550], [910, 470], [980, 400], [980, 600], [380, 600]], [[5820, 1500, 180, 500, 350, 680], [180, 500], [300, 640], [350, 680], [180, 680]], [[6020, 1820, 80, 0, 980, 680], [150, 360], [240, 420], [420, 490], [650, 530], [790, 520], [860, 470], [900, 390], [910, 300], [900, 210], [850, 150], [780, 120], [650, 90], [540, 110], [540, 0], [980, 0], [980, 680], [80, 680], [80, 360]], [[6240, 1440, 320, 240, 760, 380], [320, 260], [340, 240], [760, 350], [760, 380], [320, 380]], [[6340, 1280, 240, 350, 460, 460], [240, 400], [260, 350], [460, 460]], [[5800, 1500, 400, 200, 760, 430], [760, 200], [400, 370], [430, 400], [760, 430]], [[5100, 980, 10, 190, 600, 540], [600, 520], [290, 400], [10, 190], [10, 280], [290, 430], [600, 540]], [[3980, 600, 20, 300, 500, 700], [500, 660], [420, 630], [290, 560], [200, 470], [140, 370], [100, 320], [50, 300], [20, 300], [20, 700], [500, 700]], [[5640, 1220, 60, 280, 460, 380], [60, 280], [460, 360], [460, 380], [60, 300]], [[3480, 620, 120, 80, 520, 320], [520, 280], [120, 80], [120, 120], [520, 320]], [[4460, 880, 20, 240, 650, 420], [650, 290], [580, 250], [490, 240], [400, 260], [320, 320], [250, 360], [140, 380], [20, 380], [20, 420], [540, 420], [590, 400], [650, 380]], [[3060, 200, 200, 140, 540, 540], [540, 500], [200, 140], [200, 180], [540, 540]], [[2820, 0, 20, 220, 440, 380], [440, 340], [370, 280], [290, 270], [260, 220], [210, 220], [180, 270], [90, 290], [30, 250], [20, 340], [20, 360], [60, 370], [180, 380], [440, 380]], [[2180, 0, 220, 240, 670, 500], [670, 250], [610, 240], [570, 280], [500, 390], [430, 450], [350, 460], [260, 400], [220, 460], [220, 500], [620, 500], [660, 360], [660, 340]], [[1080, 580, 350, 140, 920, 620], [780, 250], [760, 290], [700, 360], [620, 420], [530, 450], [440, 450], [380, 440], [350, 420], [350, 610], [620, 620], [820, 620], [820, 320], [920, 140]], [[620, 680, 280, 190, 810, 570], [810, 320], [770, 280], [720, 230], [680, 190], [720, 290], [680, 320], [580, 280], [630, 190], [550, 230], [480, 270], [370, 270], [280, 220], [280, 570], [380, 540], [540, 490], [650, 500], [810, 510]], [[80, 660, 380, 220, 820, 600], [820, 240], [770, 220], [710, 220], [660, 250], [620, 310], [580, 360], [520, 400], [470, 420], [440, 430], [410, 440], [380, 450], [400, 460], [540, 500], [700, 580], [790, 600], [820, 590]], [[1780, 320, 370, 140, 630, 310], [620, 140], [620, 180], [630, 240], [560, 290], [370, 310], [370, 240], [420, 230], [450, 190], [440, 150], [500, 160], [540, 160], [580, 140]], [[1780, 320, 120, 240, 370, 680], [370, 240], [330, 260], [270, 310], [230, 380], [220, 400], [120, 580], [120, 680], [220, 580], [320, 480], [370, 310]], [[0, 620, 100, 10, 300, 700], [300, 20], [230, 90], [180, 200], [160, 290], [160, 390], [170, 510], [190, 590], [250, 680], [270, 700], [100, 700], [110, 370], [150, 90], [250, 10]], [[140, 980, 0, 340, 470, 560], [130, 340], [240, 430], [300, 440], [350, 440], [370, 420], [390, 390], [470, 550], [0, 560], [0, 340]], [[440, 500, 350, 360, 460, 400], [350, 380], [410, 360], [440, 370], [460, 400], [410, 380]], [[240, 1300, 60, 130, 660, 560], [60, 140], [230, 130], [270, 170], [370, 230], [490, 250], [540, 230], [550, 210], [590, 210], [660, 270], [630, 290], [530, 330], [520, 380], [600, 420], [640, 400], [640, 560], [60, 560]], [[940, 1420, 290, 230, 660, 580], [290, 330], [360, 320], [410, 330], [490, 350], [530, 340], [550, 300], [590, 230], [660, 280], [660, 580], [290, 580]], [[940, 1420, 100, 320, 290, 480], [110, 350], [140, 330], [150, 340], [170, 340], [190, 330], [220, 330], [240, 320], [260, 330], [290, 330], [290, 480], [100, 480]], [[800, 1420, 80, 230, 250, 480], [80, 280], [120, 260], [140, 230], [150, 270], [250, 350], [240, 480], [80, 480]], [[1860, 1700, 140, 300, 640, 500], [140, 300], [140, 400], [240, 440], [640, 500], [640, 300]], [[2340, 1860, 160, 80, 660, 440], [160, 340], [260, 360], [550, 400], [660, 440], [620, 80], [620, 340]], [[2580, 1820, 510, 80, 620, 520], [520, 80], [510, 480], [530, 520], [550, 480], [560, 420], [620, 380], [520, 380]], [[3400, 1900, 240, 200, 450, 390], [340, 200], [300, 300], [240, 300], [270, 390], [280, 340], [290, 380], [450, 310]], [[3920, 1740, 260, 60, 300, 230], [280, 60], [300, 230], [260, 200], [280, 160]], [[4500, 1900, 290, 130, 850, 470], [290, 270], [310, 310], [390, 390], [410, 470], [480, 360], [500, 310], [850, 300], [440, 300], [440, 130]], [[5380, 2020, 320, 160, 850, 610], [320, 180], [500, 200], [580, 260], [600, 340], [690, 540], [700, 610], [730, 510], [850, 480], [720, 480], [720, 160], [620, 160], [620, 180]], [[6120, 2180, 110, 20, 910, 470], [110, 320], [830, 340], [850, 470], [870, 340], [880, 420], [910, 290], [900, 60], [880, 20], [880, 320]], [[6660, 1600, 340, 10, 920, 600], [340, 600], [360, 490], [480, 320], [660, 300], [800, 230], [890, 110], [900, 40], [880, 10], [920, 30], [900, 150], [830, 280], [710, 330], [460, 460]], [[6660, 1540, 340, 10, 900, 650], [340, 650], [340, 250], [560, 260], [740, 260], [840, 200], [880, 130], [870, 80], [810, 10], [880, 70], [900, 100], [890, 170], [800, 290], [660, 360], [480, 380], [360, 550]], [[3620, 720, 320, 190, 380, 580], [320, 190], [380, 580], [380, 220]], [[2760, 340, 40, 20, 990, 620], [40, 160], [200, 390], [790, 620], [990, 480], [840, 400], [500, 40], [240, 40], [120, 30], [80, 20]], [[3260, 660, 290, 160, 740, 640], [490, 160], [680, 250], [740, 640], [290, 300]], [[1960, 480, 40, 20, 1000, 530], [140, 320], [40, 530], [1000, 250], [840, 20], [440, 20], [450, 80], [380, 130], [190, 150]], [[1380, 800, 50, 110, 970, 520], [620, 210], [520, 400], [320, 400], [50, 390], [320, 500], [920, 520], [970, 110]], [[3380, 1780, 610, 500, 670, 580], [610, 500], [670, 510], [650, 580]]], xtras:[[3060, 140, 2], [1400, 1740, 3], [6780, 2040, 1], [4320, 1769, 1], [1530, 1607, 1]]}));
_global.lib.lvls.push(new com.neodelight.r2d.R2dLevel({title:"Matterhorn", colLine:10929199, colFill:12047930, skin:1, groundY:2300, startX:340, startY:1960, map:[[[0, 1300, 10, 10, 340, 600], [310, 40], [250, 50], [210, 90], [170, 170], [140, 240], [110, 340], [100, 400], [80, 490], [80, 600], [10, 600], [40, 480], [90, 240], [170, 80], [260, 10], [330, 10], [340, 40]], [[0, 1500, 10, 400, 580, 580], [80, 400], [90, 430], [140, 460], [210, 480], [320, 490], [580, 490], [580, 580], [10, 580], [10, 400]], [[140, 1420, 360, 400, 950, 660], [360, 570], [410, 560], [470, 530], [520, 490], [560, 450], [600, 410], [640, 400], [680, 410], [720, 450], [740, 480], [780, 520], [830, 560], [870, 580], [950, 580], [950, 660], [440, 660], [440, 570]], [[800, 1500, 290, 260, 980, 580], [290, 500], [380, 500], [440, 480], [510, 440], [560, 400], [660, 300], [700, 260], [730, 270], [760, 290], [790, 370], [820, 430], [880, 500], [940, 530], [980, 560], [980, 580], [290, 580]], [[1440, 1540, 340, 0, 1000, 680], [340, 520], [400, 550], [510, 600], [630, 620], [760, 610], [870, 540], [950, 450], [990, 320], [990, 220], [960, 80], [910, 0], [960, 20], [1000, 210], [980, 600], [730, 680], [340, 540]], [[1500, 1420, 410, 270, 770, 460], [580, 340], [770, 430], [760, 460], [410, 300], [430, 270]], [[1700, 1520, 560, 300, 570, 330], [570, 330], [570, 310], [570, 300], [560, 330]], [[780, 740, 380, 340, 470, 370], [390, 350], [470, 340], [460, 360], [380, 370]], [[900, 620, 340, 370, 990, 560], [350, 460], [470, 500], [550, 520], [670, 530], [750, 530], [860, 490], [950, 410], [990, 370], [990, 400], [860, 520], [750, 560], [670, 560], [550, 550], [340, 480]], [[840, 540, 410, 520, 460, 560], [410, 540], [460, 520], [460, 560]], [[1760, 560, 130, 280, 600, 460], [130, 430], [300, 410], [390, 390], [520, 340], [600, 280], [600, 320], [520, 380], [340, 430], [130, 460]], [[1080, 1260, 690, 240, 850, 460], [850, 430], [690, 240], [690, 280], [830, 460]], [[560, 840, 270, 250, 610, 410], [610, 250], [600, 270], [270, 410], [280, 390]], [[1080, 580, 340, 440, 570, 560], [340, 550], [380, 480], [570, 440], [560, 460], [390, 500], [390, 560], [370, 560]], [[1160, 520, 440, 520, 470, 630], [440, 530], [440, 630], [460, 630], [470, 630], [470, 520]], [[2080, 600, 270, 230, 850, 560], [280, 240], [420, 230], [320, 270], [320, 310], [340, 380], [390, 430], [450, 480], [530, 520], [600, 530], [690, 500], [760, 450], [810, 380], [830, 320], [850, 380], [850, 560], [520, 560], [410, 520], [350, 480], [290, 400], [270, 330], [280, 280]], [[520, 900, 220, 330, 320, 350], [320, 330], [230, 330], [220, 340], [310, 350]], [[1180, 1220, 570, 280, 590, 350], [590, 280], [570, 330], [570, 350], [590, 320], [590, 320]], [[2680, 760, 250, 220, 880, 450], [250, 220], [280, 270], [340, 330], [440, 390], [500, 410], [610, 420], [660, 420], [720, 410], [810, 380], [870, 330], [880, 320], [880, 440], [510, 450], [250, 400]], [[3500, 740, 540, 340, 980, 460], [540, 460], [540, 340], [610, 400], [650, 420], [730, 440], [980, 440], [980, 460]], [[4200, 660, 280, 340, 610, 540], [280, 520], [330, 510], [400, 470], [440, 420], [490, 370], [530, 350], [580, 340], [610, 340], [610, 380], [580, 380], [500, 540], [280, 540]], [[5020, 740, 360, 260, 580, 280], [360, 260], [380, 280], [580, 280], [580, 260]], [[5720, 720, 0, 110, 620, 700], [240, 110], [260, 120], [280, 180], [320, 320], [390, 490], [430, 550], [470, 600], [510, 640], [550, 670], [590, 690], [620, 700], [240, 700], [180, 480], [40, 340], [0, 300], [240, 300]], [[6080, 980, 20, 440, 820, 520], [260, 440], [330, 460], [420, 470], [520, 470], [820, 470], [820, 520], [120, 520], [20, 440]], [[6640, 860, 260, 590, 660, 640], [260, 590], [660, 590], [610, 640], [260, 640]], [[6880, 840, 370, 0, 810, 660], [420, 610], [530, 600], [650, 550], [710, 460], [740, 360], [740, 270], [730, 170], [690, 100], [640, 30], [590, 10], [580, 0], [720, 20], [800, 160], [810, 280], [800, 440], [740, 560], [670, 650], [370, 660]], [[5340, 540, 260, 270, 620, 480], [260, 460], [280, 450], [330, 420], [370, 380], [390, 340], [420, 300], [450, 280], [510, 270], [570, 270], [620, 290], [620, 480], [260, 480]], [[6780, 800, 160, 280, 710, 340], [620, 320], [710, 320], [700, 310], [680, 290], [660, 280], [630, 280], [580, 290], [510, 310], [420, 320], [160, 320], [160, 340], [520, 340]], [[6320, 640, 480, 480, 620, 500], [620, 480], [480, 480], [480, 500], [620, 500]], [[6240, 580, 180, 10, 560, 560], [560, 540], [450, 520], [380, 480], [310, 430], [240, 360], [210, 270], [200, 170], [210, 70], [230, 10], [200, 10], [180, 180], [190, 340], [240, 450], [460, 550], [560, 560]], [[6300, 360, 300, 410, 740, 450], [320, 430], [300, 450], [500, 450], [700, 440], [740, 410], [700, 410], [680, 420]], [[6620, 200, 380, 370, 650, 570], [380, 570], [440, 530], [540, 490], [590, 450], [650, 370], [650, 440], [620, 520], [420, 570]], [[6980, 200, 290, 370, 920, 540], [290, 370], [920, 500], [920, 540], [290, 440]], [[7060, 420, 180, 220, 840, 440], [400, 420], [380, 360], [330, 330], [180, 300], [210, 220], [840, 320], [770, 340], [630, 400], [540, 440]], [[4660, 840, 150, 160, 380, 180], [150, 160], [380, 160], [360, 180], [150, 180]], [[7440, 440, 460, 260, 800, 300], [460, 260], [800, 260], [460, 300]], [[5460, 220, 180, 240, 890, 300], [860, 260], [290, 260], [180, 240], [210, 270], [290, 280], [890, 300], [870, 260]], [[6140, 260, 200, 220, 810, 330], [330, 330], [350, 300], [370, 280], [400, 260], [440, 250], [500, 240], [540, 240], [590, 240], [640, 250], [700, 280], [740, 300], [780, 290], [810, 280], [770, 260], [610, 220], [500, 220], [200, 220], [210, 260], [270, 290], [300, 330]], [[4820, 0, 120, 270, 850, 500], [820, 460], [730, 420], [640, 350], [580, 270], [530, 350], [500, 400], [440, 440], [350, 460], [190, 480], [160, 480], [120, 500], [260, 490], [380, 470], [580, 420], [690, 460], [780, 490], [850, 490]], [[4140, 220, 140, 260, 840, 520], [840, 260], [740, 270], [650, 310], [560, 350], [440, 410], [350, 460], [260, 490], [160, 500], [140, 520], [260, 500], [380, 470], [490, 430], [650, 380], [740, 350], [780, 310], [800, 280]], [[5860, 260, 470, 220, 490, 260], [470, 220], [480, 220], [490, 260]], [[700, 520, 230, 190, 560, 360], [560, 190], [230, 340], [260, 360], [530, 220]], [[220, 620, 420, 240, 740, 310], [460, 310], [540, 290], [740, 260], [710, 240], [420, 300], [420, 310]], [[2420, 320, 350, 90, 640, 250], [490, 250], [460, 180], [400, 140], [350, 120], [350, 90], [640, 90], [630, 130], [520, 180]], [[1880, 200, 130, 200, 890, 350], [890, 240], [750, 220], [610, 220], [460, 250], [270, 300], [130, 350], [190, 300], [610, 200], [890, 210]], [[1660, 140, 820, 240, 900, 260], [820, 260], [840, 240], [900, 260]], [[0, 600, 470, 320, 640, 410], [560, 410], [470, 330], [470, 320], [640, 320], [640, 330], [620, 330]], [[1160, 240, 70, 260, 910, 500], [100, 470], [430, 330], [590, 290], [910, 260], [850, 310], [620, 320], [450, 350], [70, 500]], [[0, 280, 30, 0, 470, 690], [470, 640], [340, 640], [240, 620], [170, 570], [110, 500], [80, 410], [70, 320], [70, 250], [90, 160], [120, 90], [170, 30], [210, 0], [130, 10], [80, 80], [30, 220], [30, 410], [50, 510], [150, 630], [230, 680], [300, 690], [470, 650]], [[0, 580, 300, 350, 560, 570], [300, 390], [540, 570], [560, 430], [470, 350]], [[0, 280, 230, 300, 440, 320], [230, 300], [420, 300], [440, 320], [240, 320]], [[0, 140, 130, 60, 700, 160], [130, 150], [290, 130], [570, 160], [700, 160], [700, 130], [510, 60], [200, 60]], [[160, 120, 260, 460, 460, 490], [260, 460], [440, 470], [460, 490], [280, 480]], [[340, 0, 360, 270, 680, 580], [560, 560], [600, 510], [600, 410], [470, 340], [360, 300], [360, 270], [590, 310], [660, 380], [680, 500], [640, 540], [560, 580]], [[420, 260, 180, 300, 360, 350], [180, 330], [360, 300], [360, 340], [200, 350]], [[420, 260, 360, 300, 540, 340], [360, 340], [540, 340], [540, 300], [360, 300]], [[0, 940, 330, 160, 610, 510], [330, 370], [470, 160], [540, 210], [540, 360], [610, 510], [340, 400]], [[3520, 340, 40, 220, 880, 400], [780, 380], [880, 370], [750, 370], [660, 350], [540, 300], [470, 260], [380, 230], [290, 220], [180, 220], [120, 250], [80, 300], [40, 360], [120, 310], [240, 270], [430, 300], [760, 400]], [[2920, 260, 130, 150, 640, 440], [140, 150], [310, 170], [420, 190], [520, 240], [590, 300], [620, 340], [640, 440], [560, 350], [420, 270], [310, 240], [130, 190]], [[3020, 160, 320, 290, 880, 540], [320, 290], [880, 410], [800, 400], [680, 400], [620, 430], [580, 480], [540, 540], [520, 440], [490, 400], [420, 340]], [[360, 900, 180, 30, 710, 680], [710, 670], [680, 650], [510, 640], [340, 600], [270, 540], [200, 400], [200, 250], [240, 140], [320, 30], [260, 30], [200, 110], [180, 400], [260, 590], [620, 680]], [[780, 1240, 260, 310, 970, 330], [260, 310], [970, 310], [970, 330], [290, 330]], [[4660, 680, 460, 320, 660, 340], [460, 320], [480, 340], [640, 340], [660, 320]], [[1400, 1300, 350, 240, 400, 350], [350, 270], [370, 350], [400, 280], [370, 240]], [[3120, 940, 70, 260, 440, 500], [70, 270], [180, 290], [380, 310], [400, 430], [410, 500], [430, 290], [440, 260]], [[3120, 940, 410, 260, 440, 350], [440, 260], [410, 260], [430, 350]], [[3460, 1100, 490, 100, 900, 570], [580, 100], [530, 430], [490, 500], [530, 570], [540, 470], [550, 520], [610, 450], [670, 290], [770, 230], [900, 100]], [[4220, 840, 100, 180, 800, 420], [100, 400], [480, 420], [580, 300], [720, 230], [800, 180], [590, 180], [590, 200], [560, 200], [480, 360], [140, 360]], [[4800, 840, 340, 180, 500, 310], [340, 180], [370, 310], [430, 260], [480, 270], [500, 180]], [[5080, 720, 320, 300, 820, 480], [320, 300], [430, 390], [550, 370], [820, 480], [640, 300]], [[3120, 1240, 30, 330, 870, 480], [830, 360], [640, 390], [160, 360], [30, 330], [50, 370], [280, 460], [670, 480], [660, 430], [690, 480], [870, 430]], [[1860, 1040, 400, 360, 660, 520], [490, 500], [460, 450], [400, 380], [660, 360], [540, 520]], [[2300, 1060, 100, 340, 870, 550], [220, 340], [390, 350], [510, 370], [650, 410], [850, 510], [870, 550], [670, 510], [540, 510], [330, 490], [100, 500]], [[1720, 860, 40, 20, 880, 340], [410, 340], [40, 280], [170, 160], [380, 130], [560, 80], [640, 20], [630, 70], [650, 140], [710, 220], [770, 260], [880, 300], [730, 300]], [[2060, 1420, 340, 130, 780, 550], [340, 140], [570, 130], [780, 150], [670, 170], [480, 280], [370, 550], [380, 330]], [[1220, 640, 450, 460, 480, 510], [450, 510], [450, 460], [480, 500]]], xtras:[[800, 535, 3], [2329, 1367, 1], [2400, 1360, 1]]}));
_global.lib.lvls.push(new com.neodelight.r2d.R2dLevel({title:"Draculex Castle", colLine:10929199, colFill:12047930, skin:2, groundY:8000, startX:3780, startY:800, map:[[[3300, 720, 600, 80, 700, 350], [700, 80], [600, 350], [650, 290], [700, 280]], [[3500, 1020, 400, 180, 500, 290], [500, 180], [400, 260], [450, 270], [500, 290]], [[3300, 1420, 300, 80, 560, 620], [300, 80], [310, 250], [340, 400], [410, 470], [500, 500], [540, 490], [560, 460], [550, 520], [500, 570], [390, 580], [300, 620]], [[3480, 740, 120, 200, 260, 470], [120, 200], [120, 470], [170, 420], [240, 410], [260, 420]], [[3400, 1700, 200, 310, 600, 540], [600, 310], [500, 400], [430, 460], [320, 490], [200, 500], [250, 520], [380, 540], [600, 450]], [[3740, 1540, 260, 430, 560, 620], [260, 470], [310, 460], [420, 440], [560, 430], [560, 620], [260, 610]], [[3360, 460, 240, 160, 360, 470], [240, 470], [250, 370], [300, 280], [340, 240], [360, 210], [290, 190], [240, 160]], [[3340, 1120, 260, 240, 430, 380], [260, 240], [260, 380], [320, 330], [420, 310], [430, 290]], [[4080, 1480, 220, 160, 780, 690], [220, 490], [310, 460], [400, 390], [540, 240], [530, 280], [490, 420], [520, 520], [620, 420], [710, 330], [640, 240], [630, 220], [670, 210], [730, 160], [780, 550], [760, 690], [220, 680]], [[4540, 1360, 270, 120, 620, 660], [270, 280], [340, 230], [500, 120], [460, 180], [510, 290], [580, 290], [620, 380], [400, 650], [320, 660]], [[4820, 1080, 300, 210, 990, 660], [300, 570], [360, 530], [360, 410], [320, 370], [300, 360], [350, 340], [410, 320], [470, 280], [540, 210], [590, 250], [650, 290], [720, 330], [800, 350], [900, 360], [990, 360], [950, 430], [850, 480], [650, 600], [340, 660]], [[5340, 920, 430, 470, 870, 600], [470, 520], [590, 520], [720, 520], [810, 510], [850, 490], [870, 470], [850, 510], [720, 600], [430, 590]], [[5360, 980, 370, 530, 700, 550], [410, 530], [370, 550], [700, 540]], [[4440, 800, 10, 440, 470, 580], [360, 520], [470, 470], [450, 450], [440, 440], [420, 450], [320, 480], [10, 500], [90, 580]], [[3920, 1040, 220, 260, 880, 610], [530, 260], [320, 260], [220, 560], [280, 610], [500, 510], [680, 420], [880, 280], [610, 340]], [[3640, 1380, 360, 40, 560, 390], [360, 390], [460, 380], [560, 270], [500, 220], [560, 40], [360, 120]], [[3740, 640, 260, 60, 500, 660], [500, 660], [440, 650], [360, 610], [300, 540], [280, 470], [270, 360], [280, 260], [300, 200], [340, 130], [400, 100], [460, 90], [460, 60], [260, 160], [260, 640]], [[3700, 960, 300, 320, 540, 540], [300, 320], [300, 540], [500, 460], [540, 340]], [[3960, 720, 220, 260, 720, 310], [240, 280], [220, 280], [240, 290], [540, 310], [720, 260]], [[4220, 620, 280, 80, 830, 410], [280, 410], [450, 390], [560, 340], [700, 240], [770, 150], [830, 80], [460, 360]], [[4120, 540, 60, 160, 930, 460], [60, 460], [320, 450], [450, 440], [550, 420], [650, 360], [930, 160], [560, 440]], [[4800, 560, 120, 140, 860, 300], [120, 300], [220, 250], [330, 220], [470, 230], [640, 260], [760, 270], [820, 250], [850, 220], [860, 190], [840, 210], [770, 220], [710, 220], [610, 220], [250, 140]], [[4760, 280, 290, 380, 880, 500], [290, 420], [330, 380], [880, 490], [810, 500], [650, 500]], [[4080, 320, 70, 340, 530, 410], [120, 410], [320, 400], [460, 380], [520, 350], [530, 340], [490, 350], [370, 360], [250, 360], [70, 340], [120, 380]], [[3640, 320, 330, 320, 560, 480], [360, 470], [360, 380], [350, 340], [330, 320], [510, 340], [560, 380], [360, 480]], [[3540, 1320, 290, 80, 460, 450], [420, 280], [460, 80], [460, 450], [450, 410], [440, 360], [420, 330], [390, 300], [340, 280], [290, 260]], [[3460, 1140, 360, 430, 500, 460], [500, 460], [370, 440], [360, 430], [500, 450]], [[2860, 260, 230, 300, 740, 650], [740, 360], [690, 330], [650, 300], [630, 330], [580, 390], [520, 430], [430, 460], [340, 470], [250, 470], [230, 500], [310, 540], [740, 650]], [[2460, 440, 230, 240, 710, 360], [650, 290], [510, 290], [390, 280], [290, 260], [230, 240], [260, 270], [360, 320], [710, 360], [630, 320]], [[1960, 200, 240, 20, 810, 680], [640, 70], [580, 100], [480, 190], [400, 290], [350, 390], [330, 510], [330, 610], [340, 680], [240, 650], [260, 400], [350, 210], [480, 50], [600, 20], [710, 30], [810, 130], [810, 150], [780, 120], [690, 80]], [[2120, 680, 80, 170, 630, 570], [180, 200], [190, 250], [250, 360], [310, 440], [380, 480], [480, 500], [580, 500], [630, 490], [630, 560], [400, 570], [300, 550], [150, 470], [80, 340], [80, 170]], [[2740, 740, 420, 60, 860, 580], [420, 60], [800, 210], [680, 230], [790, 260], [690, 290], [790, 320], [690, 340], [780, 350], [720, 360], [780, 390], [710, 410], [770, 430], [720, 450], [760, 460], [730, 470], [760, 490], [860, 580], [860, 170]], [[2700, 760, 710, 340, 900, 390], [900, 340], [710, 360], [900, 390]], [[2920, 960, 110, 230, 680, 640], [120, 240], [110, 340], [280, 340], [470, 440], [680, 640], [680, 360], [580, 270], [550, 250], [320, 230]], [[2420, 1160, 0, 70, 510, 550], [330, 80], [370, 350], [430, 440], [510, 510], [480, 540], [370, 550], [100, 440], [0, 70], [100, 90]], [[2640, 1320, 150, 350, 420, 520], [290, 350], [420, 410], [390, 520], [150, 390], [260, 380]], [[2720, 1380, 310, 390, 670, 540], [310, 460], [320, 430], [350, 390], [350, 430], [370, 390], [360, 460], [400, 400], [390, 460], [430, 400], [420, 470], [450, 430], [450, 490], [470, 410], [520, 430], [560, 440], [590, 440], [630, 430], [650, 410], [670, 500], [650, 540], [460, 530]], [[2920, 1260, 280, 40, 680, 700], [280, 40], [430, 140], [560, 260], [630, 360], [670, 480], [670, 580], [660, 690], [680, 700], [680, 340], [470, 140]], [[2920, 1700, 260, 250, 680, 450], [660, 250], [640, 290], [580, 370], [520, 400], [420, 410], [260, 400], [270, 420], [380, 440], [490, 450], [590, 420], [680, 340], [680, 260]], [[2620, 1140, 400, 160, 760, 290], [410, 160], [400, 190], [430, 200], [500, 230], [590, 260], [660, 270], [700, 270], [720, 270], [760, 290], [730, 260], [580, 160]], [[2440, 1640, 100, 410, 860, 560], [740, 460], [100, 410], [120, 470], [230, 530], [350, 550], [590, 560], [860, 500], [750, 480]], [[1720, 1520, 140, 320, 950, 670], [820, 530], [680, 520], [600, 510], [550, 490], [510, 460], [460, 410], [440, 370], [430, 330], [430, 320], [420, 320], [420, 330], [410, 370], [400, 410], [380, 460], [350, 520], [310, 540], [200, 550], [140, 550], [160, 590], [540, 670], [950, 650], [840, 590]], [[1580, 1180, 270, 0, 940, 420], [940, 420], [910, 360], [850, 260], [800, 220], [740, 170], [680, 130], [560, 110], [430, 110], [360, 190], [310, 260], [270, 190], [490, 0], [780, 20], [840, 50]], [[1280, 1500, 10, 170, 980, 690], [580, 570], [500, 550], [410, 510], [360, 480], [300, 420], [280, 370], [260, 290], [230, 260], [200, 220], [160, 190], [120, 180], [90, 180], [10, 170], [70, 190], [100, 230], [120, 270], [120, 330], [90, 400], [40, 430], [70, 560], [420, 670], [980, 690], [600, 610]], [[560, 1180, 190, 290, 710, 690], [540, 550], [710, 460], [660, 650], [540, 690], [330, 670], [190, 350], [190, 290], [230, 290], [300, 310], [380, 340], [630, 470]], [[560, 1420, 40, 50, 790, 640], [660, 410], [690, 300], [700, 370], [760, 510], [790, 640], [240, 640], [40, 580], [40, 50], [190, 50], [190, 110], [330, 430], [540, 450]], [[0, 960, 120, 490, 600, 690], [600, 510], [550, 490], [120, 490], [150, 500], [240, 520], [330, 540], [490, 630], [600, 690]], [[0, 1160, 330, 340, 400, 490], [330, 340], [400, 380], [390, 440], [390, 380], [380, 490], [370, 370], [350, 490], [340, 360]], [[40, 1200, 360, 340, 560, 540], [560, 450], [360, 340], [370, 450], [370, 360], [390, 490], [390, 370], [410, 470], [420, 380], [440, 470], [450, 400], [460, 450], [470, 420], [480, 540], [490, 430], [500, 470], [510, 430], [520, 530], [530, 450]], [[1520, 840, 550, 190, 750, 350], [680, 190], [550, 340], [680, 350], [670, 310], [710, 240], [750, 310]], [[1520, 840, 680, 180, 750, 310], [680, 190], [680, 180], [750, 310]]], xtras:[[6250, 1340, 2], [350, 1410, 3]]}));
createEmptyMovieClip("mask", 17);
mask.beginFill(16711680);
mask.lineTo(550, 0);
mask.lineTo(550, 400);
mask.lineTo(0, 400);
mask.lineTo(0, 0);
mask.endFill();
setMask(mask);
_global.bin.debug = function () {
with (_root) {
if (!fpsCounter) {
new com.neodelight.std.FpsCounter();
}
if (!a) {
a = new com.neodelight.std.Analyzer(0.9, 1);
a0 = new com.neodelight.std.Analyzer(0.96, 1);
a1 = new com.neodelight.std.Analyzer(0.96, 1);
}
}
_root.engine.debug();
};
_global.bin.godMode = function () {
_global.godMode = true;
};
_global.godMode = false;
gotoAndStop ("menu");
Frame 12
stop();
scores = new Array(0, 0, 0, 0, 0, 0);
score = 0;
_global.snd.playLoop("sndMusic", 1, undefined, "music");
Frame 14
prevFrame();
Frame 20
gotoAndStop(_currentframe - 1);
Frame 23
function mapRedraw() {
_root.displayTitle = _global.lib.lvls[_root.mapId].title;
_root.displayScoreLevel = ((_root.scores[_root.mapId] > 0) ? (com.neodelight.std.XString.numberFormat(_root.scores[_root.mapId])) : "---");
var _local3 = 0;
while (_local3 < 6) {
_root.map["lvl" + _local3].gotoAndStop(((_root.mapId == _local3) ? 3 : (((_global.game.maxLevel < _local3) ? 1 : 2))));
_local3++;
}
}
function startLevel(id) {
_global.dir = "";
_global.game.actLevel = (_root.mapId = id);
_global.snd.playEvent("sndClick", 1);
_global.snd.channelsById.music.stop();
_global.snd.playLoop("sndAthmo" + _global.lib.lvls[id].skin, 0, undefined, "athmo");
_global.snd.fadeChannel("athmo", 0.3, 60);
_global.snd.playLoop("sndDrive", 0, undefined, "drive");
_root.gotoAndPlay("game");
}
map.level0pop._visible = freshGame;
freshGame = false;
displayScore = com.neodelight.std.XString.numberFormat(score);
mapId = com.neodelight.std.XMath.toNumber(_global.game.actLevel);
if (!shared.data.maps[mapId]) {
shared.data.maps[mapId] = [];
shared.data.maps[mapId][0] = (shared.data.maps[mapId][1] = (shared.data.maps[mapId][2] = 0));
}
mapRedraw();
stop();
Frame 25
gotoAndStop(_currentframe - 1);
Frame 29
new com.neodelight.r2d.R2d();
stop();
Frame 31
prevFrame();
Frame 35
_global.snd.fadeChannel("athmo", -1, 10);
_global.snd.playLoop("sndMusic", 1, undefined, "music");
var level = (int(_root.mapId) + 1);
var scoreBase = (level * 2000);
var scoreTime = (_root.resultTime * 50);
var scoreLevel = (scoreBase + scoreTime);
var newHighscore = (scoreLevel > scores[_root.mapId]);
display = (((((((((("Level " + level) + " Completion Score: ") + com.neodelight.std.XString.numberFormat(scoreBase)) + "\nTime Bonus: ") + com.neodelight.std.XString.numberFormat(_root.resultTime)) + " X 50 = ") + com.neodelight.std.XString.numberFormat(scoreTime)) + "\n--------------------------------------") + "\nYou scored ") + com.neodelight.std.XString.numberFormat(scoreLevel)) + " points!";
if (scores[_root.mapId] > 0) {
display = display + ("\nPrevious score in this level: " + com.neodelight.std.XString.numberFormat(scores[_root.mapId]));
if (scores[_root.mapId] < scoreLevel) {
display = display + "\nCongratulations, new highscore achieved!";
} else {
display = display + "\nNo new highscore. Try again..";
}
}
if (resultUnlock) {
display = display + "\nNext level unlocked!";
}
display = display + "\n--------------------------------------";
scoresAmountOld = 0;
i = scores.length;
while (i--) {
if (scores[i] > 0) {
scoresAmountOld++;
}
}
scores[mapId] = Math.max(scores[mapId], scoreLevel);
scoresAmountNew = 0;
i = scores.length;
while (i--) {
if (scores[i] > 0) {
scoresAmountNew++;
}
}
score = 0;
i = scores.length;
while (i--) {
score = score + scores[i];
}
display = display + ("\n\nTotal Score: " + com.neodelight.std.XString.numberFormat(score));
trace((("scoresAmount: " + scoresAmountOld) + " -> ") + scoresAmountNew);
if ((scoresAmountOld == 5) && (scoresAmountNew == 6)) {
display = display + "\n\nYOU FINISHED ALL LEVELS!\nSubmit now or continue\nto increase your score.";
}
Frame 37
gotoAndStop(_currentframe - 1);
Symbol 471 MovieClip [__Packages.com.neodelight.std.Blueprint] Frame 0
class com.neodelight.std.Blueprint
{
function Blueprint () {
}
static function addBlueprint(id, o) {
lib[id] = o;
}
static function readConfigFile(path) {
cfgLoader.onData = function (src) {
var _local4 = src.split(newline);
var _local3 = 0;
while (_local3 < _local4.length) {
var _local2 = _local4[_local3];
if (_local2.charAt(0) == "#") {
} else if (com.neodelight.std.XString.trim(_local2) == "") {
} else if (_local2.indexOf("=") == -1) {
} else {
var _local1 = _local2.split("=");
_local1[0] = com.neodelight.std.XString.trim(_local1[0]);
_local1[1] = com.neodelight.std.XString.trim(_local1[1]);
com.neodelight.std.Blueprint.addBlueprint(_local1[0], _local1[1]);
}
_local3++;
}
com.neodelight.std.Blueprint.onReadConfigFile(src != undefined);
};
cfgLoader.load(path);
}
static function onReadConfigFile(success) {
}
static function isBlueprint(id) {
return(lib[id] != undefined);
}
static function getBlueprint(id) {
if (typeof(id) == "object") {
return(id);
}
var _local1 = lib[id];
if (_local1.blueprint) {
apply(_local1, _local1.blueprint);
}
return(_local1);
}
static function getBlueprints(filter) {
if (!filter) {
return(undefined);
}
var _local1 = new Array();
for (var _local3 in lib) {
if (filter.test(_local3)) {
_local1.push(getBlueprint(_local3));
}
}
return(_local1);
}
static function apply(target, id) {
if (!id) {
id = String(target.blueprint);
}
var _local3 = lib[id];
if (!_local3) {
trace("!!!blueprint not found:" + id);
}
var _local6 = 0;
for (var _local1 in _local3) {
if (_local1 == "blueprint") {
continue;
}
if (target[_local1] == undefined) {
target[_local1] = _local3[_local1];
}
}
if (_local3.blueprint) {
var _local4 = _local3.blueprint.split(",");
var _local1 = 0;
while (_local1 < _local4.length) {
apply(target, _local4[_local1]);
_local1++;
}
}
return(target);
}
static var lib = new Array();
static var cfgLoader = new LoadVars();
}
Symbol 472 MovieClip [__Packages.com.neodelight.std.XString] Frame 0
class com.neodelight.std.XString
{
function XString () {
}
static function dump(o, params) {
var _local1;
params.depth = com.neodelight.std.XMath.toNumber(params.depth);
switch (typeof(o)) {
case "string" :
_local1 = ("\"" + o) + "\"";
break;
case "undefined" :
_local1 = "[undefined]";
break;
case "array" :
_local1 = "[Array]";
break;
case "number" :
_local1 = String(o);
break;
default :
_local1 = "{";
var _local5 = true;
for (var _local7 in o) {
if (!_local5) {
_local1 = _local1 + ", ";
}
_local5 = false;
if (params.br) {
_local1 = _local1 + newline;
}
var _local2 = 0;
while (_local2 < int(params.indent)) {
_local1 = _local1 + " ";
_local2++;
}
_local1 = _local1 + (_local7 + ":");
if (typeof(o[_local7]) == "object") {
if (params.depth > 0) {
_local1 = _local1 + dump(o[_local7], {depth:params.depth - 1});
} else {
_local1 = _local1 + "[Object]";
}
} else {
_local1 = _local1 + dump(o[_local7], {depth:params.depth - 1});
}
}
if (params.br) {
_local1 = _local1 + newline;
}
_local1 = _local1 + "}";
}
return(_local1);
}
static function numberFormat(num, digits) {
var _local2 = String(int(num));
var _local1 = _local2.length - 4;
while (_local1 >= 0) {
_local2 = (_local2.substring(0, _local1 + 1) + ",") + _local2.substr(_local1 + 1);
_local1 = _local1 - 3;
}
if (int(digits) > 0) {
_local2 = _local2 + ".";
var _local3 = String(int((num - int(num)) * Math.pow(10, digits)));
while (_local3.length < digits) {
_local3 = "0" + _local3;
}
_local2 = _local2 + _local3;
}
return(_local2);
}
static function timeFormat(millis, format) {
var _local5 = "";
var _local8 = new Object();
var _local6;
var _local2 = 0;
while (_local2 < format.length) {
_local6 = format.charAt(_local2);
if (_local6 == "%") {
_local2++;
var _local3 = format.charAt(_local2);
if (_local8[_local3] == undefined) {
var _local1;
switch (_local3) {
case "H" :
_local1 = String(Math.floor(millis / 3600000));
while (_local1.length < 2) {
_local1 = "0" + _local1;
}
break;
case "i" :
_local1 = String(Math.floor(millis / 60000) % 60);
while (_local1.length < 2) {
_local1 = "0" + _local1;
}
break;
case "s" :
_local1 = String(Math.floor(millis / 1000) % 60);
while (_local1.length < 2) {
_local1 = "0" + _local1;
}
break;
case "c" :
_local1 = String(Math.floor(millis / 10) % 100);
while (_local1.length < 2) {
_local1 = "0" + _local1;
}
break;
case "q" :
_local1 = String(Math.floor(millis) % 1000);
while (_local1.length < 3) {
_local1 = "0" + _local1;
}
break;
default :
_local1 = "";
}
_local8[_local3] = _local1;
_local5 = _local5 + _local1;
} else {
_local5 = _local5 + _local8[_local3];
}
} else if (_local6 == "\\") {
_local2++;
_local5 = _local5 + format.charAt(_local2);
} else {
_local5 = _local5 + _local6;
}
_local2++;
}
return(_local5);
}
static function ordinal(n) {
switch (n) {
case 1 :
return("1st");
case 2 :
return("2nd");
case 3 :
return("3rd");
}
return(n + "th");
}
static function trim(s) {
var _local3 = 0;
var _local4 = s.length;
var _local1 = 0;
while (_local1 < s.length) {
switch (s.charCodeAt(_local1)) {
case 32 :
case 9 :
case 10 :
case 13 :
_local3 = _local1 + 1;
}
if (_local3 != (_local1 + 1)) {
break;
}
_local1++;
}
_local1 = s.length - 1;
while (_local1 >= 0) {
switch (s.charCodeAt(_local1)) {
case 32 :
case 9 :
case 10 :
case 13 :
_local4 = _local1;
}
if (_local4 != _local1) {
break;
}
_local1--;
}
return(s.substring(_local3, _local4));
}
static function replace(search, replace, subject) {
return(subject.split(search).join(replace));
}
static function parse(str) {
if (String(com.neodelight.std.XMath.toNumber(Number(str))) == str) {
return(com.neodelight.std.XMath.toNumber(Number(str)));
}
if ((str.charAt(0) == "{") && (str.charAt(str.length - 1) == "}")) {
var _local3 = new Object();
return(_local3);
}
if ((str.charAt(0) == "[") && (str.charAt(str.length - 1) == "]")) {
var _local2 = new Array();
return(_local2);
}
if ((str.charAt(0) == "\"") && (str.charAt(str.length - 1) == "\"")) {
return(str.substring(1, str.length - 2));
}
return(str);
}
static function parseHex(str) {
str = str.substr(-6, 6);
var _local3 = str.length;
var _local4 = 0;
var _local2 = 0;
while (_local2 < _local3) {
var _local1 = str.charCodeAt((_local3 - _local2) - 1);
if (_local1 <= 57) {
_local1 = _local1 - 48;
} else if ((_local1 > 64) && (_local1 < 71)) {
_local1 = _local1 - 55;
}
_local4 = _local4 + (_local1 * Math.pow(16, _local2));
_local2++;
}
return(_local4);
}
static function stripSlashes(str) {
var _local1 = 0;
while (_local1 < str.length) {
if (str.charAt(_local1) == "\\") {
var _local3;
var _local4 = str.charAt(_local1 + 1);
switch (_local4) {
case "n" :
_local3 = newline;
break;
default :
_local3 = _local4;
}
str = (str.slice(0, _local1) + _local3) + str.slice(_local1 + 2, str.length);
_local1--;
}
_local1++;
}
return(str);
}
}
Symbol 473 MovieClip [__Packages.com.neodelight.std.XMath] Frame 0
class com.neodelight.std.XMath
{
function XMath () {
}
static function p2pDistance(px, py, qx, qy) {
return(Math.sqrt(Math.pow(qx - px, 2) + Math.pow(qy - py, 2)));
}
static function toNumber(n) {
n = Number(n);
if (isNaN(n)) {
n = 0;
}
return(n);
}
static function vAngle(dx, dy) {
var _local1 = Math.asin(dx / Math.sqrt((dx * dx) + (dy * dy)));
if (dy > 0) {
_local1 = Math.PI - _local1;
}
return((_local1 + (Math.PI*2)) % (Math.PI*2));
}
static function angleDiff(a0, a1) {
var _local2 = (Math.PI*2);
var _local1 = a1 - a0;
while (_local1 < 0) {
_local1 = _local1 + _local2;
}
_local1 = _local1 % _local2;
if (_local1 > Math.PI) {
_local1 = (_local2 - _local1) * -1;
}
return(_local1);
}
static function vNormalize(v) {
var _local2 = Math.sqrt((v.x * v.x) + (v.y * v.y));
v.x = v.x / _local2;
v.y = v.y / _local2;
return(v);
}
static function vLength(vx, vy) {
return(Math.sqrt((vx * vx) + (vy * vy)));
}
static function vRotate(v, rad) {
var _local3 = Math.cos(rad);
var _local2 = Math.sin(rad);
var _local5 = (v.x * _local3) - (v.y * _local2);
var _local4 = (v.x * _local2) + (v.y * _local3);
v.x = _local5;
v.y = _local4;
return(v);
}
static function rnd(min, max) {
var _local1 = Math.round(Math.random() * (max - min)) + min;
return(_local1);
}
static function relativePos(val, p0, p1) {
return((val - p0) / (p1 - p0));
}
static function numericalObjectDifference(obj0, obj1) {
var _local3 = new Object();
for (var _local4 in obj0) {
if ((((typeof(obj0[_local4]) == "number") && (typeof(obj1[_local4]) == "number")) && (obj0[_local4] != undefined)) && (obj1[_local4] != undefined)) {
_local3[_local4] = obj1[_local4] - obj0[_local4];
}
}
return(_local3);
}
}
Symbol 474 MovieClip [__Packages.com.neodelight.std.Vector] Frame 0
class com.neodelight.std.Vector
{
var x, y;
function Vector (x, y) {
this.x = x;
this.y = y;
}
function copyOf() {
return(new com.neodelight.std.Vector(x, y));
}
function toString() {
return(((("{x:" + x) + ", y:") + y) + "}");
}
static function intersectP(ax0, ay0, ax1, ay1, bx0, by0, bx1, by1) {
var _local3 = ax0 - bx0;
var _local2 = ay0 - by0;
var _local1 = (by1 * ax1) - (bx1 * ay1);
if (_local1 == 0) {
return(undefined);
}
var _local4 = (by1 * _local3) - (bx1 * _local2);
return((-1 * _local4) / _local1);
}
static function splitP(ax, ay, bx, by) {
return(((bx * ax) - (by * ay)) / (((-bx) * bx) - (by * by)));
}
static function splitV(a, b) {
return((((-b.x) * a.x) - (b.y * a.y)) / ((b.x * (-b.x)) - (b.y * b.y)));
}
static function normalizeP(vx, vy) {
var _local1 = Math.sqrt((vx * vx) + (vy * vy));
return(new com.neodelight.std.Vector(vx / _local1, vy / _local1));
}
static function normalizeV(v) {
var _local2 = Math.sqrt((v.x * v.x) + (v.y * v.y));
v.x = v.x / _local2;
v.y = v.y / _local2;
return(v);
}
static function magnitudeP(vx, vy) {
return(Math.sqrt((vx * vx) + (vy * vy)));
}
static function magnitudeV(v) {
return(Math.sqrt((v.x * v.x) + (v.y * v.y)));
}
static function distanceP(px, py, v0x, v0y, v1x, v1y) {
var _local3 = Math.sqrt((v1x * v1x) + (v1y * v1y));
v1x = v1x / _local3;
v1y = v1y / _local3;
return(-1 * (((v1x * (py - v0y)) - (v1y * (px - v0x))) / ((v1x * v1x) + (v1y * v1y))));
}
static function distanceV(p, v0, v1) {
var _local2 = v1.x;
var _local1 = v1.y;
var _local3 = Math.sqrt((_local2 * _local2) + (_local1 * _local1));
_local2 = _local2 / _local3;
_local1 = _local1 / _local3;
return(-1 * (((_local2 * (p.y - v0.y)) - (_local1 * (p.x - v0.x))) / ((_local2 * _local2) + (_local1 * _local1))));
}
}
Symbol 475 MovieClip [__Packages.com.neodelight.std.RegExp] Frame 0
class com.neodelight.std.RegExp
{
function RegExp () {
if (arguments[0] == null) {
} else {
const = "RegExp";
compile.apply(this, arguments);
}
}
function invStr(sVal) {
var _local5 = sVal;
var _local4 = _local5.length;
var _local1;
var _local3;
var _local6 = "";
var _local2 = 1;
while (_local2 < 255) {
_local3 = chr(_local2);
_local1 = 0;
while ((_local1 <= _local4) && (_local5.substring(1 + (_local1++), 1) != _local3)) {
}
if (_local1 > _local4) {
_local6 = _local6 + _local3;
}
_local2++;
}
return(_local5);
}
function compile() {
source = arguments[0];
var _local7;
var _local20;
if (arguments.length > 1) {
var _local17 = (arguments[1] + "").toLowerCase();
_local7 = 0;
while (_local7 < _local17.length) {
if (_local17.substring(_local7 + 1, 1) == "g") {
global = true;
}
if (_local17.substring(_local7 + 1, 1) == "i") {
ignoreCase = true;
}
if (_local17.substring(_local7 + 1, 1) == "m") {
multiline = true;
}
_local7++;
}
}
if (arguments.length < 3) {
_local20 = true;
_xrStatic = 1;
_local7 = 0;
} else {
_local20 = false;
_xr = _xrStatic++;
_local7 = arguments[2];
}
lastIndex = 0;
var _local10 = source;
var _local21;
var _local14 = _local10.length;
var _local6 = [];
var _local4 = 0;
var _local5;
var _local9 = false;
var _local16;
var _local15;
var _local18 = false;
var _local19;
for ( ; _local7 < _local14 ; _local7++) {
var _local3 = _local10.substring(_local7 + 1, 1);
if (_local3 == "\\") {
_local7++;
_local19 = false;
_local3 = _local10.substring(_local7 + 1, 1);
} else {
_local19 = true;
}
var _local12 = _local10.substring(_local7 + 2, 1);
_local6[_local4] = new Object();
_local6[_local4].t = 0;
_local6[_local4].a = 0;
_local6[_local4].b = 999;
_local6[_local4].c = -10;
if (_local19) {
if (_local3 == "(") {
_local21 = new com.neodelight.std.RegExp(_local10, (ignoreCase ? "gi" : "g"), _local7 + 1);
_local7 = _xiStatic;
_local6[_local4].t = 3;
_local3 = _local21;
_local12 = _local10.substring(_local7 + 2, 1);
} else {
if ((!_local20) && (_local3 == ")")) {
break;
}
if (_local3 == "^") {
if ((_local4 == 0) || (_local6[_local4 - 1].t == 7)) {
_local6[_local4].t = 9;
_local6[_local4].a = 1;
_local6[_local4].b = 1;
_local4++;
}
} else if (_local3 == "$") {
if (_local20) {
_local18 = true;
}
} else {
if (_local3 == "[") {
_local7++;
if (_local12 == "^") {
_local6[_local4].t = 2;
_local7++;
} else {
_local6[_local4].t = 1;
}
_local3 = "";
_local9 = false;
while ((_local7 < _local14) && ((_local5 = _local10.substring(1 + (_local7++), 1)) != "]")) {
if (_local9) {
if (_local5 == "\\") {
}
_local15 = ((_local5 == "\\") ? ((_local5 == "b") ? "\b" : (_local10.substring(1 + (_local7++), 1))) : _local5);
_local16 = ord(_local3.substring(_local3.length, 1)) + 1;
_local5 = chr(_local16++);
while (_local15 >= _local5) {
_local3 = _local3 + _local5;
}
_local9 = false;
} else if ((_local5 == "-") && (_local3.length > 0)) {
_local9 = true;
} else if (_local5 == "\\") {
_local5 = _local10.substring(1 + (_local7++), 1);
if (_local5 == "d") {
_local3 = _local3 + "0123456789";
} else if (_local5 == "D") {
_local3 = _local3 + invStr("0123456789");
} else if (_local5 == "s") {
_local3 = _local3 + " \f\n\r\t";
} else if (_local5 == "S") {
_local3 = _local3 + invStr(" \f\n\r\t");
} else if (_local5 == "w") {
_local3 = _local3 + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
} else if (_local5 == "W") {
_local3 = _local3 + invStr("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_");
} else if (_local5 == "b") {
_local3 = _local3 + "\b";
} else if (_local5 == "\\") {
_local3 = _local3 + _local5;
}
} else {
_local3 = _local3 + _local5;
}
}
if (_local9) {
_local3 = _local3 + "-";
}
_local7--;
_local12 = _local10.substring(_local7 + 2, 1);
} else {
if (_local3 == "|") {
if (_local18) {
_local6[_local4].t = 10;
_local6[_local4].a = 1;
_local6[_local4].b = 1;
_local4++;
_local6[_local4] = new Object();
_local18 = false;
}
_local6[_local4].t = 7;
_local6[_local4].a = 1;
_local6[_local4].b = 1;
_local4++;
continue;
}
if (_local3 == ".") {
_local6[_local4].t = 2;
_local3 = newline;
} else if (((_local3 == "*") || (_local3 == "?")) || (_local3 == "+")) {
continue;
}
}
// unexpected jump
if ((_local3 >= "1") && (_local3 <= "9")) {
_local6[_local4].t = 4;
} else if (_local3 == "b") {
_local6[_local4].t = 1;
_local3 = "--wb--";
} else if (_local3 == "B") {
_local6[_local4].t = 2;
_local3 = "--wb--";
} else if (_local3 == "d") {
_local6[_local4].t = 1;
_local3 = "0123456789";
} else if (_local3 == "D") {
_local6[_local4].t = 2;
_local3 = "0123456789";
} else if (_local3 == "s") {
_local6[_local4].t = 1;
_local3 = " \f\n\r\t";
} else if (_local3 == "S") {
_local6[_local4].t = 2;
_local3 = " \f\n\r\t";
} else if (_local3 == "w") {
_local6[_local4].t = 1;
_local3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
} else if (_local3 == "W") {
_local6[_local4].t = 2;
_local3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
}
if (_local12 == "*") {
_local6[_local4].s = _local3;
_local4++;
_local7++;
} else if (_local12 == "?") {
_local6[_local4].s = _local3;
_local6[_local4].b = 1;
_local4++;
_local7++;
} else if (_local12 == "+") {
_local6[_local4].s = _local3;
_local6[_local4].a = 1;
_local4++;
_local7++;
} else if (_local12 == "{") {
var _local13 = false;
var _local8 = 0;
_local9 = "";
_local7++;
while (((_local7 + 1) < _local14) && ((_local5 = _local10.substring(2 + (_local7++), 1)) != "}")) {
if ((!_local13) && (_local5 == ",")) {
_local13 = true;
_local8 = Number(_local9);
_local8 = Math.floor((isNaN(_local8) ? 0 : _local8));
if (_local8 < 0) {
_local8 = 0;
}
_local9 = "";
} else {
_local9 = _local9 + _local5;
}
}
var _local11 = Number(_local9);
_local11 = Math.floor((isNaN(_local11) ? 0 : _local11));
if (_local11 < 1) {
_local11 = 999;
}
if (_local11 < _local8) {
_local11 = _local8;
}
_local6[_local4].s = _local3;
_local6[_local4].b = _local11;
_local6[_local4].a = (_local13 ? _local8 : _local11);
_local4++;
} else {
_local6[_local4].s = _local3;
_local6[_local4].a = 1;
_local6[_local4].b = 1;
_local4++;
}
}
}
} else if ((_local3 >= "1") && (_local3 <= "9")) {
_local6[_local4].t = 4;
} else if (_local3 == "b") {
_local6[_local4].t = 1;
_local3 = "--wb--";
} else if (_local3 == "B") {
_local6[_local4].t = 2;
_local3 = "--wb--";
} else if (_local3 == "d") {
_local6[_local4].t = 1;
_local3 = "0123456789";
} else if (_local3 == "D") {
_local6[_local4].t = 2;
_local3 = "0123456789";
} else if (_local3 == "s") {
_local6[_local4].t = 1;
_local3 = " \f\n\r\t";
} else if (_local3 == "S") {
_local6[_local4].t = 2;
_local3 = " \f\n\r\t";
} else if (_local3 == "w") {
_local6[_local4].t = 1;
_local3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
} else if (_local3 == "W") {
_local6[_local4].t = 2;
_local3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
}
if (_local12 == "*") {
_local6[_local4].s = _local3;
_local4++;
_local7++;
} else if (_local12 == "?") {
_local6[_local4].s = _local3;
_local6[_local4].b = 1;
_local4++;
_local7++;
} else if (_local12 == "+") {
_local6[_local4].s = _local3;
_local6[_local4].a = 1;
_local4++;
_local7++;
} else if (_local12 == "{") {
var _local13 = false;
var _local8 = 0;
_local9 = "";
_local7++;
while (((_local7 + 1) < _local14) && ((_local5 = _local10.substring(2 + (_local7++), 1)) != "}")) {
if ((!_local13) && (_local5 == ",")) {
_local13 = true;
_local8 = Number(_local9);
_local8 = Math.floor((isNaN(_local8) ? 0 : _local8));
if (_local8 < 0) {
_local8 = 0;
}
_local9 = "";
} else {
_local9 = _local9 + _local5;
}
}
var _local11 = Number(_local9);
_local11 = Math.floor((isNaN(_local11) ? 0 : (_local11)));
if (_local11 < 1) {
_local11 = 999;
}
if (_local11 < _local8) {
_local11 = _local8;
}
_local6[_local4].s = _local3;
_local6[_local4].b = _local11;
_local6[_local4].a = (_local13 ? (_local8) : (_local11));
_local4++;
} else {
_local6[_local4].s = _local3;
_local6[_local4].a = 1;
_local6[_local4].b = 1;
_local4++;
}
}
if (_local20 && (_local18)) {
_local6[_local4] = new Object();
_local6[_local4].t = 10;
_local6[_local4].a = 1;
_local6[_local4].b = 1;
_local4++;
}
if (!_local20) {
_xiStatic = _local7;
source = _local10.substring(arguments[2] + 1, _local7 - arguments[2]);
}
if (d) {
_local7 = 0;
while (_local7 < _local4) {
trace((((((((("xr" + _xr) + " ") + _local6[_local7].t) + " : ") + _local6[_local7].a) + " : ") + _local6[_local7].b) + " : ") + _local6[_local7].s);
_local7++;
}
}
_xq = _local6;
_xqc = _local4;
_xp = 0;
}
function test() {
if ((_xp++) == 0) {
_xxa = [];
_xxlp = 0;
}
var _local10 = arguments[0] + "";
var _local15;
var _local4 = _xq;
var _local17 = _xqc;
var _local14;
var _local7;
var _local8;
var _local9;
var _local11;
var _local13;
var _local18;
var _local12 = _local10.length;
var _local5 = (global ? (lastIndex) : 0);
var _local21 = _local5;
var _local19 = _local10;
if (ignoreCase) {
_local10 = _local10.toLowerCase();
}
var _local16 = new Object();
_local16.i = -1;
var _local3 = -1;
while (_local3 < (_local17 - 1)) {
_local3++;
if (d) {
trace("New section started at i=" + _local3);
}
_local5 = _local21;
_local14 = _local3;
_local4[_local14].c = -10;
var _local20 = false;
while ((_local3 > _local14) || (_local5 < (_local12 + 1))) {
if (_local4[_local3].t == 7) {
break;
}
if (_local4[_local3].t == 9) {
_local3++;
if (_local3 == (_local14 + 1)) {
_local18 = true;
_local14 = _local3;
}
_local4[_local14].c = -10;
continue;
}
if ((_local16.i >= 0) && (_local5 >= _local16.i)) {
break;
}
if (_local4[_local3].c == -10) {
if (d) {
trace((((((("Lookup #" + _local3) + " at index ") + _local5) + " for \\\\\\\\\\\\\\\\'") + _local4[_local3].s) + "\\\\\\\\\\\\\\\\' type ") + _local4[_local3].t);
}
var _local6 = 0;
_local4[_local3].i = _local5;
if (_local4[_local3].t == 0) {
_local7 = (ignoreCase ? (_local4[_local3].s.toLowerCase()) : (_local4[_local3].s));
while ((_local6 < _local4[_local3].b) && (_local5 < _local12)) {
if (_local10.substring(1 + _local5, 1) == _local7) {
_local6++;
_local5++;
} else {
break;
}
}
} else if (_local4[_local3].t == 1) {
if (_local4[_local3].s == "--wb--") {
_local4[_local3].a = 1;
if ((_local5 > 0) && (_local5 < _local12)) {
_local9 = _local10.substring(_local5, 1);
if ((_local9 == " ") || (_local9 == "\\\\\\\\\\\\\\\\n")) {
_local6 = 1;
}
if (_local6 == 0) {
_local9 = _local10.substring(1 + _local5, 1);
if ((_local9 == " ") || (_local9 == "\\\\\\\\\\\\\\\\n")) {
_local6 = 1;
}
}
} else {
_local6 = 1;
}
} else {
_local7 = (ignoreCase ? (_local4[_local3].s.toLowerCase()) : (_local4[_local3].s));
_local8 = _local7.length;
while ((_local6 < _local4[_local3].b) && (_local5 < _local12)) {
_local9 = _local10.substring(1 + _local5, 1);
_local11 = 0;
while ((_local11 <= _local8) && (_local7.substring(1 + (_local11++), 1) != _local9)) {
}
if (_local11 <= _local8) {
_local6++;
_local5++;
} else {
break;
}
}
}
} else if (_local4[_local3].t == 2) {
_local7 = (ignoreCase ? (_local4[_local3].s.toLowerCase()) : (_local4[_local3].s));
_local8 = _local7.length;
if (_local4[_local3].s == "--wb--") {
_local4[_local3].a = 1;
if ((_local5 > 0) && (_local5 < _local12)) {
_local9 = _local10.substring(_local5, 1);
_local13 = _local10.substring(1 + _local5, 1);
if ((((_local9 != " ") && (_local9 != "\\\\\\\\\\\\\\\\n")) && (_local13 != " ")) && (_local13 != "\\\\\\\\\\\\\\\\n")) {
_local6 = 1;
}
} else {
_local6 = 0;
}
} else {
while ((_local6 < _local4[_local3].b) && (_local5 < _local12)) {
_local9 = _local10.substring(1 + _local5, 1);
_local11 = 0;
while ((_local11 <= _local8) && (_local7.substring(1 + (_local11++), 1) != _local9)) {
}
if (_local11 <= _local8) {
break;
}
_local6++;
_local5++;
}
}
} else if (_local4[_local3].t == 10) {
_local13 = _local10.substring(1 + _local5, 1);
_local6 = (((multiline && ((_local13 == "\\\\\\\\\\\\\\\\n") || (_local13 == "\\\\\\\\\\\\\\\\r"))) || (_local5 == _local12)) ? 1 : 0);
} else if (_local4[_local3].t == 3) {
_local15 = _local4[_local3].s;
_local4[_local3].ix = [];
_local4[_local3].ix[_local6] = _local5;
_local15.lastIndex = _local5;
while ((_local6 < _local4[_local3].b) && _local15.test(_local19)) {
_local8 = _xxlm.length;
if (_local8 > 0) {
_local5 = _local5 + _local8;
_local6++;
_local4[_local3].ix[_local6] = _local5;
} else {
_local6 = _local4[_local3].a;
_local4[_local3].ix[_local6 - 1] = _local5;
break;
}
}
if (_local6 == 0) {
_xxlm = "";
}
if (_local15._xr > _xxlp) {
_xxlp = _local15._xr;
}
_xxa[Number(_local15._xr)] = _xxlm;
} else if (_local4[_local3].t == 4) {
_local7 = Number(_local4[_local3].s);
if (_xp >= _local7) {
_local7 = _xxa[_local7];
_local7 = (ignoreCase ? _local7.toLowerCase() : _local7);
_local8 = _local7.length;
_local4[_local3].ix = [];
_local4[_local3].ix[_local6] = _local5;
if (_local8 > 0) {
while ((_local6 < _local4[_local3].b) && (_local5 < _local12)) {
if (_local10.substring(1 + _local5, _local8) == _local7) {
_local6++;
_local5 = _local5 + _local8;
_local4[_local3].ix[_local6] = _local5;
} else {
break;
}
}
} else {
_local6 = 0;
_local4[_local3].a = 0;
}
} else {
_local7 = chr(_local7);
_local4[_local3].ix = [];
_local4[_local3].ix[_local6] = _local5;
while ((_local6 < _local4[_local3].b) && (_local5 < _local12)) {
if (_local10.substring(1 + _local5, 1) == _local7) {
_local6++;
_local5++;
_local4[_local3].ix[_local6] = _local5;
} else {
break;
}
}
}
}
_local4[_local3].c = _local6;
if (d) {
trace((" " + _local6) + " matches found");
}
}
if (_local4[_local3].c < _local4[_local3].a) {
if (d) {
trace(" not enough matches");
}
if (_local3 > _local14) {
_local3--;
_local4[_local3].c--;
if (_local4[_local3].c >= 0) {
_local5 = (((_local4[_local3].t == 3) || (_local4[_local3].t == 4)) ? (_local4[_local3].ix[_local4[_local3].c]) : (_local4[_local3].i + _local4[_local3].c));
}
if (d) {
trace((((("Retreat to #" + _local3) + " c=") + _local4[_local3].c) + " index=") + _local5);
}
} else {
if (_xp > 1) {
break;
}
if (_local18) {
if (multiline) {
do {
if (_local5 > _local12) {
break;
}
_local13 = _local10.substring(1 + (_local5++), 1);
} while (!((_local13 == "\\\\\\\\\\\\\\\\n") || (_local13 == "\\\\\\\\\\\\\\\\r")));
_local4[_local3].c = -10;
} else {
break;
}
} else {
_local5++;
_local4[_local3].c = -10;
}
}
} else {
if (d) {
trace(" enough matches!");
}
_local3++;
if ((_local3 == _local17) || (_local4[_local3].t == 7)) {
if (d) {
trace((("Saving better result: r.i = q[" + _local14) + "].i = ") + _local4[_local14].i);
}
_local16.i = _local4[_local14].i;
_local16.li = _local5;
break;
}
_local4[_local3].c = -10;
}
}
while ((_local3 < _local17) && (_local4[_local3].t != 7)) {
_local3++;
}
}
if (_local16.i < 0) {
lastIndex = 0;
if ((_xp--) == 1) {
_xxa = [];
_xxlp = 0;
}
return(false);
}
_local5 = _local16.li;
_xi = _local16.i;
_xxlm = _local19.substring(_local16.i + 1, _local5 - _local16.i);
_xxlc = _local19.substring(1, _local16.i);
_xxrc = _local19.substring(_local5 + 1, _local12 - _local5);
if (_local5 == _local16.i) {
_local5++;
}
lastIndex = _local5;
if ((_xp--) == 1) {
lastMatch = _xxlm;
leftContext = _xxlc;
rightContext = _xxrc;
_xaStatic = _xxa;
lastParen = _xxa[Number(_xxlp)];
_local3 = 1;
while (_local3 < 10) {
com.neodelight.std.RegExp["$" + _local3] = _xaStatic[Number(_local3)];
_local3++;
}
}
return(true);
}
function exec() {
var _local6 = arguments[0] + "";
var _local4;
if (_local6 == "") {
return(false);
}
var _local7 = test(_local6);
if (_local7) {
_local4 = new Array();
_local4.index = _xi;
_local4.input = _local6;
_local4[0] = lastMatch;
var _local5 = _xaStatic.length;
var _local3 = 1;
while (_local3 < _local5) {
_local4[_local3] = _xaStatic[Number(_local3)];
_local3++;
}
} else {
_local4 = null;
}
return(_local4);
}
static function setStringMethods() {
if (String.prototype.match != undefined) {
return(undefined);
}
String.prototype.match = function () {
if (typeof(arguments[0]) != "object") {
return(null);
}
if (arguments[0].const != "RegExp") {
return(null);
}
var _local3 = arguments[0];
var _local6 = this.valueOf();
var _local7 = 0;
var _local4 = 0;
var _local5;
if (_local3.global) {
_local3.lastIndex = 0;
while (_local3.test(_local6)) {
if (_local4 == 0) {
_local5 = new Array();
}
_local5[_local4++] = com.neodelight.std.RegExp.lastMatch;
_local7 = _local3.lastIndex;
}
_local3.lastIndex = _local7;
} else {
_local5 = _local3.exec(_local6);
_local4++;
}
return(((_local4 == 0) ? null : (_local5)));
};
String.prototype.replace = function () {
if (typeof(arguments[0]) != "object") {
return(null);
}
if (arguments[0].const != "RegExp") {
return(null);
}
var _local8 = arguments[0];
var _local7 = arguments[1] + "";
var _local11 = this;
var _local12 = "";
_local8.lastIndex = 0;
if (_local8.global) {
var _local13 = 0;
var _local10 = 0;
while (_local8.test(_local11)) {
var _local5 = 0;
var _local9 = _local7.length;
var _local3 = "";
var _local6 = "";
var _local4 = "";
while (_local5 < _local9) {
_local3 = _local7.substring(1 + (_local5++), 1);
if ((_local3 == "$") && (_local6 != "\\")) {
_local3 = _local7.substring(1 + (_local5++), 1);
if (isNaN(Number(_local3)) || (Number(_local3) > 9)) {
_local4 = _local4 + ("$" + _local3);
} else {
_local4 = _local4 + com.neodelight.std.RegExp._xaStatic[Number(_local3)];
}
} else {
_local4 = _local4 + _local3;
}
_local6 = _local3;
}
_local12 = _local12 + (_local11.substring(_local10 + 1, _local8._xi - _local10) + _local4);
_local10 = _local8._xi + com.neodelight.std.RegExp.lastMatch.length;
_local13 = _local8.lastIndex;
}
_local8.lastIndex = _local13;
} else if (_local8.test(_local11)) {
_local12 = _local12 + (com.neodelight.std.RegExp.leftContext + _local7);
}
_local12 = _local12 + ((_local8.lastIndex == 0) ? (_local11) : (com.neodelight.std.RegExp.rightContext));
return(_local12);
};
String.prototype.search = function () {
if (typeof(arguments[0]) != "object") {
return(null);
}
if (arguments[0].const != "RegExp") {
return(null);
}
var _local3 = arguments[0];
var _local5 = this;
_local3.lastIndex = 0;
var _local4 = _local3.test(_local5);
return((_local4 ? (_local3._xi) : -1));
};
String.prototype.old_split = String.prototype.split;
String.prototype.split = function () {
if ((typeof(arguments[0]) == "object") && (arguments[0].const == "RegExp")) {
var _local3 = arguments[0];
var _local8 = ((arguments[1] == null) ? 9999 : (Number(arguments[1])));
if (isNaN(_local8)) {
_local8 = 9999;
}
var _local6 = this;
var _local9 = new Array();
var _local5 = 0;
var _local11 = _local3.global;
_local3.global = true;
_local3.lastIndex = 0;
var _local7 = 0;
var _local10 = 0;
var _local4 = 0;
while ((_local5 < _local8) && (_local3.test(_local6))) {
if (_local3._xi != _local4) {
_local9[_local5++] = _local6.substring(_local4 + 1, _local3._xi - _local4);
}
_local4 = _local3._xi + com.neodelight.std.RegExp.lastMatch.length;
_local10 = _local7;
_local7 = _local3.lastIndex;
}
if (_local5 == _local8) {
_local3.lastIndex = _local10;
} else {
_local3.lastIndex = _local7;
}
if (_local5 == 0) {
_local9[_local5] = _local6;
} else if ((_local5 < _local8) && (com.neodelight.std.RegExp.rightContext.length > 0)) {
_local9[_local5++] = com.neodelight.std.RegExp.rightContext;
}
_local3.global = _local11;
return(_local9);
}
return(this.old_split(arguments[0], arguments[1]));
};
return(true);
}
function toString() {
return(("[RegExp \"" + source) + "\"]");
}
var const = null;
var source = null;
var global = false;
var ignoreCase = false;
var multiline = false;
var lastIndex = null;
static var _xrStatic = null;
var _xr = null;
static var _xp = null;
static var _xxa = null;
static var _xxlp = null;
var _xq = null;
var _xqc = null;
static var d = null;
static var _xiStatic = null;
var _xi = 0;
static var _xxlm = null;
static var _xxlc = null;
static var _xxrc = null;
static var lastMatch = null;
static var leftContext = null;
static var rightContext = null;
static var _xa = new Array();
static var lastParen = null;
static var _xaStatic = new Array();
static var $1 = null;
static var $2 = null;
static var $3 = null;
static var $4 = null;
static var $5 = null;
static var $6 = null;
static var $7 = null;
static var $8 = null;
static var $9 = null;
static var _setString = setStringMethods();
}
Symbol 476 MovieClip [__Packages.com.neodelight.std.AutoConfig] Frame 0
class com.neodelight.std.AutoConfig
{
function AutoConfig () {
}
static function getConfig(config) {
var _local11 = com.neodelight.std.XSystem.getProtocol();
var _local16 = com.neodelight.std.XSystem.getDomain();
var _local13 = ((_local11 + "://") + _local16).toLowerCase();
_global.base.syslog("AutoConfig", "url: " + _local13);
var _local14 = System.capabilities.os.toLowerCase();
_global.base.syslog("AutoConfig", "os: " + _local14);
var _local12 = System.capabilities.playerType.toLowerCase();
_global.base.syslog("AutoConfig", "player: " + _local12);
var _local15 = config.configs.split(",");
var _local10 = 0;
while (_local10 < _local15.length) {
var _local9 = false;
var _local7 = false;
var _local8 = false;
var _local6 = com.neodelight.std.Blueprint.getBlueprint(_local15[_local10]);
var _local2 = _local6.configNeedDomain.split(",");
if (_local2 != undefined) {
var _local3 = 0;
while (_local3 < _local2.length) {
_global.bin.syslog("AutoConfig", ("check pattern \"" + _local2[_local3]) + "\"");
if ((_local2[_local3].substring(_local2[_local3].length - 1) == "*") && (_local2[_local3] != "*")) {
_local2[_local3] = _local2[_local3].substring(0, _local2[_local3].length - 1);
}
if ((((_local11 == "http") && (_local13.indexOf(_local2[_local3]) != -1)) || (_local2[_local3] == "*")) || ((_local11 == "file") && (_local2[_local3] == "local"))) {
_local9 = true;
break;
}
_local3++;
}
} else {
_local9 = true;
}
var _local4 = _local6.configNeedOs.split(",");
if (_local4 != undefined) {
var _local3 = 0;
while (_local3 < _local4.length) {
if (_local14.indexOf(_local4[_local3]) > -1) {
_local7 = true;
break;
}
_local3++;
}
} else {
_local7 = true;
}
var _local5 = _local6.configNeedPlayer.split(",");
if (_local5 != undefined) {
var _local3 = 0;
while (_local3 < _local5.length) {
if (_local12 == _local5[_local3]) {
_local8 = true;
break;
}
_local3++;
}
} else {
_local8 = true;
}
if ((_local9 && (_local7)) && (_local8)) {
return(_local6);
}
_local10++;
}
}
}
Symbol 477 MovieClip [__Packages.com.neodelight.std.XSystem] Frame 0
class com.neodelight.std.XSystem
{
function XSystem () {
}
static function getBaseUrl() {
var _local1 = _url.toLowerCase();
var _local2 = _local1.length;
var _local3 = _local1.indexOf("?", 0);
if (_local3 > 0) {
_local2 = _local3;
}
var _local4 = "offline";
if (_local1.substr(0, 4) == "http") {
_local4 = _url.substr(7, _local2 - 7);
}
return(_local4);
}
static function getDomain(url) {
if (!url) {
url = _url;
}
if (url.indexOf("file://") == 0) {
return("localhost");
}
return(url.substr(7, ((url.indexOf("/", 7) == -1) ? (url.length - 7) : (url.indexOf("/", 7) - 7))));
}
static function getProtocol(url) {
if (!url) {
url = _url;
}
return(url.substr(0, url.indexOf("/") - 1));
}
static function getUrlParam(strParam) {
var _local4 = _url.toLowerCase();
var _local1 = _local4.indexOf(strParam);
var _local5 = strParam.length;
if (_local1 > 0) {
var _local3;
var _local2 = _local4.indexOf("&", _local1 + _local5);
if (_local2 > 0) {
_local3 = _local2 - _local1;
} else {
_local3 = _url.length - _local1;
}
return(_url.substr((_local1 + _local5) + 1, _local3));
}
return("");
}
static function isOffline() {
return(_url.toLowerCase().substr(0, 4) != "http");
}
static function isMacintosh() {
return(System.capabilities.os.toLowerCase().indexOf("mac") >= 0);
}
}
Symbol 478 MovieClip [__Packages.MochiAd] Frame 0
class MochiAd
{
function MochiAd () {
}
static function getVersion() {
return("1.5");
}
static function showPreloaderAd(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 showTimedAd(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.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 _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 _local25 = {clip:_root, com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = _parseOptions(options, _local25);
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 _local24 = options.depth;
delete options.depth;
var _local17 = _local18.createEmptyMovieClip(_local20, _local24);
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) {
cb = parseInt(cb);
var _local4 = this._callbacks[cb];
if (!_local4) {
return(undefined);
}
delete this._callbacks[cb];
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 _local7 = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local7._mochiad_loaded) {
return(null);
}
var _local12 = options.depth;
delete options.depth;
var _local6 = _local7.createEmptyMovieClip("_mochiad", _local12);
var _local11 = _getRes(options);
options.res = (_local11[0] + "x") + _local11[1];
options.server = options.server + options.id;
delete options.id;
_local7._mochiad_loaded = true;
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
if (_local7._url.indexOf("http") != 0) {
options.no_page = true;
}
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 _local9 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local9;
_local5.hostname = _local14;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local9);
_local6.lc = _local5;
_local4.lc = _local9;
_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 479 MovieClip [__Packages.com.neodelight.game.Game] Frame 0
class com.neodelight.game.Game
{
var id, config, name, title, player, snd, rootFx, stageWidth, stageHeight, hooker, flow, actLevel;
function Game (config) {
com.neodelight.flanix.Kernel.init();
id = "game" + com.neodelight.std.Unique.getId();
if (config) {
this.config = config;
} else {
this.config = com.neodelight.std.Blueprint.getBlueprint("game");
if (!this.config) {
trace("!!!blueprint \"game\" not found");
}
}
_global.game = this;
name = this.config.gameName;
title = this.config.gameTitle;
com.neodelight.std.ClassLib.init();
if (com.neodelight.std.Blueprint.isBlueprint("player")) {
var _local6 = com.neodelight.std.Blueprint.getBlueprint("player");
if (!_local6) {
trace("!!!blueprint \"player\" not found");
}
var _local5 = com.neodelight.std.ClassLib.getClass("Player");
if (_local5 == undefined) {
trace("!!!class \"Player\" not found in ClassLib");
} else {
var _local7 = new _local5[undefined](_local6);
player = _global.player;
}
}
if (this.config.gameHighscores) {
_global.highscores = new com.neodelight.game.Highscores(name, this.config.gameHighscoresKey0, this.config.gameHighscoresKey1);
}
_global.score = new com.neodelight.game.Score(this.config.gameScoreTypes);
snd = new com.neodelight.std.XSound();
_global.snd = snd;
_root.snd = snd;
rootFx = new com.neodelight.std.ColorFader(_root);
if (System.capabilities.playerType == "external") {
stageWidth = 550;
stageHeight = 400;
} else {
stageWidth = Stage.width;
stageHeight = Stage.height;
}
if (this.config.gameTimer) {
_global.timer = new com.neodelight.std.Timer(this.config);
} else {
_global.dt = 1;
}
hooker = _root.createEmptyMovieClip(com.neodelight.std.Unique.getKey(), _root.getNextHighestDepth());
hooker.clients = new Object();
hooker.onEnterFrame = function () {
if (_global.paused) {
return(undefined);
}
for (var _local3 in this.clients) {
this.clients[_local3].move();
}
};
com.neodelight.std.Inputs.init();
flow = new com.neodelight.std.Flow();
reset();
_global.bin.lvl = function (n) {
_global.game.initLevel(n);
};
}
function reset() {
_global.highscores.init();
_global.score.reset();
hooker.clients = new Object();
actLevel = 0;
}
function initLevel(id) {
trace(("initLevel(id:" + id) + ")");
if (id != undefined) {
actLevel = id;
}
delete hooker.clients;
hooker.clients = new Object();
_global.score.initLevel();
}
function initGame() {
reset();
}
function hookIn(o) {
var _local2 = (o.id ? (o.id) : (com.neodelight.std.Unique.getKey()));
if (!_local2) {
trace("!!!can't assign id to object:" + o);
}
trace((("o:" + o) + ",o.id:") + o.id);
if (hooker.clients[_local2]) {
trace(("!id " + _local2) + " already exists in hook");
return("");
}
hooker.clients[_local2] = o;
return(_local2);
}
function hookOut(o) {
trace((("o:" + o) + ",o.id:") + o.id);
delete hooker.clients[o.id];
}
function pause(stat, mode) {
_global.paused = stat;
}
static var PAUSE_ENGINE = 1;
static var PAUSE_USER = 2;
}
Symbol 480 MovieClip [__Packages.com.neodelight.std.XSound] Frame 0
class com.neodelight.std.XSound extends Sound
{
var channels, channelsById, groups, master;
function XSound () {
super();
channels = new Array(channelsAmount);
channelsById = new Array();
groups = {fx:1, music:1};
var _local4 = 0;
while (_local4 < channelsAmount) {
channels[_local4] = new com.neodelight.std.XSoundChannel(_local4, _root.createEmptyMovieClip(com.neodelight.std.Unique.getKey(), _root.getNextHighestDepth()), groups);
_local4++;
}
master = new Sound();
master.setVolume(100);
}
function addGroup(id) {
groups[id] = 1;
}
function setVolume(volume) {
master.setVolume(volume * 100);
}
function getVolume() {
return(master.getVolume() * 0.01);
}
function setGroupVolume(volume, id) {
groups[id] = volume;
var _local2 = channels.length;
while (_local2--) {
channels[_local2].setVolume();
}
}
function getGroupVolume(id) {
return(groups[id]);
}
function status() {
var _local3 = "";
var _local2 = 0;
while (_local2 < channelsAmount) {
_local3 = _local3 + (((_local2 + ": ") + channels[_local2]) + newline);
_local2++;
}
return(_local3);
}
function playSequence(sequence, locked, group, channelId) {
var _local2 = getChannel();
delete channelsById[_local2.channelId];
_local2.channelId = channelId;
if (channelId) {
channelsById[channelId] = _local2;
}
_local2.playSequence(sequence, locked, group);
}
function playLoop(libId, volume, group, channelId) {
var _local2 = getChannel();
delete channelsById[_local2.channelId];
_local2.channelId = channelId;
if (channelId) {
channelsById[channelId] = _local2;
}
_local2.attachSound(libId);
_local2.start(0, 99999);
_local2.group = (group ? (group) : "music");
_local2.setVolume(volume);
_local2.libId = libId;
_local2.locked = true;
_local2.playing = true;
return(_local2);
}
function playEvent(libId, volume, group, channelId) {
var _local2 = getChannel();
delete channelsById[_local2.channelId];
_local2.channelId = channelId;
if (channelId) {
channelsById[channelId] = _local2;
}
_local2.attachSound(libId);
_local2.start(0, 0);
_local2.group = (group ? (group) : "fx");
_local2.setVolume(volume);
_local2.libId = libId;
_local2.playing = true;
return(_local2);
}
function getChannel() {
var _local4 = -1;
var _local5 = -1;
var _local3 = 0;
while (_local3 < channels.length) {
var _local2 = channels[_local3];
if (!_local2.locked) {
if (_local2.playing) {
if (_local2.position > _local4) {
_local4 = _local2.position;
_local5 = _local2.id;
}
} else {
return(channels[_local3]);
}
}
_local3++;
}
if (_local5 != -1) {
return(channels[_local5]);
}
}
function fadeChannel(id, fadeTo, frames) {
channelsById[id].fade(fadeTo, frames);
}
function stop(libId) {
var _local2 = 0;
while (_local2 < channels.length) {
if ((channels[_local2].libId == libId) || (!libId)) {
channels[_local2].stop();
}
_local2++;
}
}
var channelsAmount = 8;
}
Symbol 481 MovieClip [__Packages.com.neodelight.std.XSoundChannel] Frame 0
class com.neodelight.std.XSoundChannel extends Sound
{
var id, playing, locked, groups, mc, volume, group, fadeOutFlag, fading, fadeTo, fadeSpeed, sequence, sequencePointer, libId, sequenceStep, attachSound, start, channelId;
function XSoundChannel (id, mc, groups) {
super(mc);
this.id = id;
playing = false;
locked = false;
this.groups = groups;
this.mc = mc;
this.mc.channel = this;
this.mc.onEnterFrame = function () {
if (!this.channel.fading) {
return(undefined);
}
var _local2 = this.channel.getVolume() + this.channel.fadeSpeed;
_local2 = ((this.channel.fadeSpeed > 0) ? (Math.min(this.channel.fadeTo, _local2)) : (Math.max(this.channel.fadeTo, _local2)));
if (_local2 == this.channel.fadeTo) {
this.channel.fading = false;
if (this.channel.fadeOutFlag) {
this.channel.stop();
}
}
this.channel.setVolume(_local2);
};
}
function setVolume(volume) {
if (volume != undefined) {
this.volume = volume;
}
super.setVolume(Math.max(0, Math.min(100, (this.volume * 100) * groups[group])));
}
function getVolume() {
return(volume);
}
function fade(fadeTo, frames) {
if (fadeTo == -1) {
fadeOutFlag = true;
fadeTo = 0;
} else {
fadeOutFlag = false;
}
if (frames <= 0) {
setVolume(fadeTo);
fading = false;
} else {
fading = true;
this.fadeTo = Math.min(1, fadeTo);
fadeSpeed = (fadeTo - getVolume()) / frames;
}
}
function playSequence(sequence, locked, group) {
this.sequence = sequence;
sequencePointer = 0;
this.locked = locked;
fading = false;
this.group = (group ? (group) : "fx");
playing = true;
stepSequence();
onSoundComplete = stepSequence;
libId = "__SEQUENCE__";
}
function stepSequence() {
if (sequenceStep.goto != undefined) {
sequencePointer = sequenceStep.goto;
}
var _local2 = sequence[sequencePointer++];
sequenceStep = _local2;
if (!_local2) {
stop();
}
if (_local2.times == 0) {
_local2.times = 9999;
_local2.goto = sequencePointer - 1;
} else if (_local2.times == undefined) {
_local2.times = 1;
}
attachSound(_local2.id);
setVolume(_local2.vol);
start((_local2.offset ? (_local2.offset) : 0), _local2.times);
if (_local2.fadeFrames) {
fade(_local2.fadeTo, _local2.fadeFrames);
}
}
function stop() {
onSoundComplete = undefined;
sequenceStep = undefined;
locked = false;
playing = false;
fading = false;
if (channelId) {
delete _global.snd.channelsById[channelId];
}
super.stop();
}
function onSoundComplete() {
playing = false;
locked = false;
fading = false;
}
function toString() {
return((((((((("v:" + getVolume()) + " p:") + playing) + " l:") + locked) + " f:") + fading) + " lib:") + libId);
}
}
Symbol 482 MovieClip [__Packages.com.neodelight.std.Unique] Frame 0
class com.neodelight.std.Unique
{
function Unique () {
}
static function getId() {
return(id++);
}
static function getKey() {
return("k" + (key++));
}
static var key = 1;
static var id = 1;
}
Symbol 483 MovieClip [__Packages.com.neodelight.std.ColorFader] Frame 0
class com.neodelight.std.ColorFader
{
var mc, col, acol, totStep, actStep, clearFx, fcol, tcol;
function ColorFader (mc) {
this.mc = mc;
col = new Color(mc);
acol = {ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa:100, ab:0};
totStep = 0;
actStep = 1;
clearFx = reset;
}
function fadeTo(tcol, steps) {
totStep = steps;
actStep = 0;
fcol = col.getTransform();
this.tcol = tcol;
if (steps == 0) {
totStep = 1;
step();
}
}
function queueFade(tcol) {
fadeTo(tcol, tcol.dt);
}
function clearQueue() {
}
function reset() {
col.setTransform({ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa:100, ab:0});
}
function step() {
var _local2 = (++actStep) / totStep;
if (actStep > totStep) {
return(false);
}
var _local3 = 1 - _local2;
acol.ra = (fcol.ra * _local3) + (tcol.ra * _local2);
acol.rb = (fcol.rb * _local3) + (tcol.rb * _local2);
acol.ga = (fcol.ga * _local3) + (tcol.ga * _local2);
acol.gb = (fcol.gb * _local3) + (tcol.gb * _local2);
acol.ba = (fcol.ba * _local3) + (tcol.ba * _local2);
acol.bb = (fcol.bb * _local3) + (tcol.bb * _local2);
acol.aa = (fcol.aa * _local3) + (tcol.aa * _local2);
acol.ab = (fcol.ab * _local3) + (tcol.ab * _local2);
col.setTransform(acol);
return(actStep < totStep);
}
static var FX_NONE = {ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa:100, ab:0};
static var FX_BLACK = {ra:0, rb:0, ga:0, gb:0, ba:0, bb:0, aa:100, ab:0};
}
Symbol 484 MovieClip [__Packages.com.neodelight.game.Highscores] Frame 0
class com.neodelight.game.Highscores
{
var gameName, charTableIndex, session;
function Highscores (gameName, key0, key1) {
if (key0) {
keystring = key0;
}
if (key1) {
keystring2 = key1;
}
this.gameName = gameName;
charTableIndex = new Array();
var _local2 = 0;
while (_local2 < charTable.length) {
charTableIndex[charTable.charCodeAt(_local2)] = _local2;
_local2++;
}
initSession();
}
function initSession() {
session = "";
while (session.length < 20) {
session = session + charTable.charAt(Math.round(Math.random() * (charTable.length - 4)));
}
}
function submit(pScore0, pDisciple) {
if (!pDisciple) {
pDisciple = "";
}
var _local3 = gameName;
var _local6 = "";
var _local2 = ("g=" + _local3) + "&";
_local2 = _local2 + (("d=" + pDisciple) + "&");
_local2 = _local2 + (("s0=" + pScore0) + "&");
_local2 = _local2 + (("s1=" + _local6) + "&");
_local2 = _local2 + ("se=" + session);
_local2 = _local2 + "&c=42";
var _local5 = (((urlSubmit + "?g=") + _local3) + "&s=") + escape(encrypt(encrypt(_local2, keystring), keystring2)).split("%").join("_");
getURL (_local5, ((_url.indexOf("neodelight.com") != -1) ? "_top" : "_blank"));
}
function encrypt(text, pKey) {
var _local9 = "";
var _local4 = 0;
var _local6;
var _local3;
var _local5;
var _local2 = 0;
while (_local2 < text.length) {
_local5 = charTableIndex[text.charCodeAt(_local2)];
_local6 = charTableIndex[pKey.charCodeAt(_local2 % pKey.length)];
_local3 = (_local5 + _local6) + _local4;
_local3 = _local3 % charTable.length;
_local9 = _local9 + charTable.charAt(_local3);
_local4 = _local4 + _local3;
_local2++;
}
_local4 = _local4 % charTable.length;
return((_local9 + "") + charTable.charAt(_local4));
}
var charTable = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&=.";
var keystring = "whytheheckdoyouwasteyourtimehackingthishighscorelist";
var keystring2 = "AnotherKey4You2FindOut4815jiagIOm30JK";
var urlSubmit = "http://www.neodelight.com/v4/high_enter.php";
}
Symbol 485 MovieClip [__Packages.com.neodelight.game.Player] Frame 0
class com.neodelight.game.Player
{
var config, name, abilities, items;
function Player (config) {
trace("config: " + com.neodelight.std.XString.dump(config));
this.config = config;
name = config.name;
for (var _local4 in config.playerProps) {
trace("prop:" + _local4);
this[_local4] = config.playerProps[_local4];
}
reset();
_global.player = this;
}
function reset() {
trace("");
for (var _local2 in config.playerProps) {
com.neodelight.game.PlayerProp(this[_local2]).reset();
}
abilities = new Object();
items = new Object();
}
function init() {
trace("");
}
function toString() {
return("[Player]");
}
}
Symbol 486 MovieClip [__Packages.com.neodelight.game.PlayerProp] Frame 0
class com.neodelight.game.PlayerProp
{
var def, pValue, pMin, pMax;
function PlayerProp (min, max, def, act) {
if (min == undefined) {
min = Number.MIN_VALUE;
}
if (max == undefined) {
max = Number.MAX_VALUE;
}
this.min = (min);
this.max = (max);
this.def = com.neodelight.std.XMath.toNumber(def);
value = (((act == undefined) ? (def) : (act)));
}
function set value(value) {
pValue = Math.max(min, Math.min(max, value));
//return(this.value);
}
function get value() {
return(pValue);
}
function set min(min) {
pMin = min;
pValue = Math.max(this.min, Math.min(max, pValue));
//return(this.min);
}
function get min() {
return(pMin);
}
function set max(max) {
pMax = max;
pValue = Math.max(min, Math.min(this.max, pValue));
//return(this.max);
}
function get max() {
return(pMax);
}
function reset() {
value = (def);
}
function toString() {
return(((((((("[PlayerProp {value:" + value) + ", def:") + def) + " min:") + min) + ", max:") + max) + "}]");
}
}
Symbol 487 MovieClip [__Packages.com.neodelight.std.Flow] Frame 0
class com.neodelight.std.Flow
{
var mc, queue;
function Flow () {
_global.bin.syslog("Flow", "()");
var _local4 = _root.getNextHighestDepth();
mc = _root.createEmptyMovieClip("flowMc" + _local4, _local4);
queue = new Array();
}
function pushTask(onStep, o, params, times, exitFlag, exitVal) {
if ((!times) && (!exitFlag)) {
times = 1;
} else if (times <= 0) {
times = -1;
}
queue.push({o:o, onStep:onStep, p:params, exitTimes:times, exitFlag:exitFlag, exitVal:exitVal});
mc.p = this;
mc.onEnterFrame = function () {
this.p.step();
};
}
function step() {
var _local2 = queue[0];
var _local3 = _local2.onStep.apply(_local2.o, _local2.p);
if (_local2.exitFlag && (_local2.exitVal == _local3)) {
queue.shift();
if (!queue.length) {
delete mc.onEnterFrame;
}
return(undefined);
}
if (_local2.exitTimes > 0) {
if (!(--_local2.exitTimes)) {
queue.shift();
if (!queue.length) {
delete mc.onEnterFrame;
}
}
}
}
}
Symbol 488 MovieClip [__Packages.com.neodelight.flanix.Kernel] Frame 0
class com.neodelight.flanix.Kernel
{
function Kernel () {
}
static function init() {
if (_global.$FLANIX_VERSION) {
return(undefined);
}
_global.$FLANIX_VERSION = "0.2.0";
if (!_global.lib) {
_global.lib = new Object();
}
if (!_global.lib.Blueprints) {
_global.lib.Blueprints = com.neodelight.std.Blueprint.lib;
}
if (!_global.var) {
_global.var = new Object();
}
if (!_global.var.log) {
_global.var.log = new Object();
}
if (!_global.mnt) {
_global.mnt = new Object();
}
if (!_global.etc) {
_global.etc = new Object();
}
_global.etc.host = com.neodelight.std.XSystem.getDomain();
if (!_global.dev) {
_global.dev = new Object();
}
if (!_global.dev.null) {
_global.dev.null = function () {
};
}
_global._root = _level0;
var _local2 = new com.neodelight.flanix.Bin();
}
}
Symbol 489 MovieClip [__Packages.com.neodelight.flanix.Bin] Frame 0
class com.neodelight.flanix.Bin
{
function Bin () {
if (!_global.bin) {
_global.bin = new Object();
_global.bin.dump = com.neodelight.std.XString.dump;
_global.bin.ls = function () {
var _local13 = _global.console;
var _local14 = _local13.parameters;
var _local4 = _local13.flags;
var _local8 = "";
var _local11 = "";
var _local6 = 0;
while (_local6 < arguments.length) {
if (String(arguments[_local6]).charAt(0) != "-") {
_local11 = arguments[_local6];
break;
}
_local6++;
}
var _local7 = _local13.getObjectAtPath(_local11);
if (_local4.help) {
_local8 = _local8 + "Usage: ls [OPTIONS]\n";
_local8 = _local8 + "List information about the current object\n";
_local8 = _local8 + " -a display all items\n";
_local8 = _local8 + " -d dump values of non-objects\n";
_local8 = _local8 + " -l long format\n";
_local8 = _local8 + " -1 display only one item per line\n";
return(_local8);
}
if (_local4.a) {
_global.ASSetPropFlags(_local7.__proto__, null, 6, true);
_global.ASSetPropFlags(_local7, null, 6, true);
}
var _local3 = new Array();
for (_local6 in _local7) {
switch (typeof(_local7[_local6])) {
case "movieclip" :
_local3.push(("/" + _local6) + (_local4.l ? " [m] " : " "));
break;
case "object" :
_local3.push(("/" + _local6) + (_local4.l ? " [o] " : " "));
break;
case "function" :
_local3.push(_local6 + (_local4.l ? " [f] " : " "));
break;
case "string" :
_local3.push((_local6 + (_local4.l ? " [s] " : " ")) + (_local4.d ? (("=\"" + _local7[_local6]) + "\" ") : ""));
break;
case "undefined" :
_local3.push((_local6 + (_local4.l ? " [u] " : " ")) + (_local4.d ? "=undefined " : ""));
break;
case "null" :
_local3.push((_local6 + (_local4.l ? " [0] " : " ")) + (_local4.d ? "=null " : ""));
break;
case "boolean" :
_local3.push((_local6 + (_local4.l ? " [b] " : " ")) + (_local4.d ? (("=" + _local7[_local6]) + " ") : ""));
break;
case "number" :
_local3.push((_local6 + (_local4.l ? " [n] " : " ")) + (_local4.d ? (("=" + _local7[_local6]) + " ") : ""));
break;
default :
_local3.push(((_local6 + "_") + typeof(_local7[_local6])) + "_");
}
}
var _local9 = 0;
_local6 = 0;
while (_local6 < _local3.length) {
_local9 = Math.max(_local3[_local6].length, _local9);
_local6++;
}
_local3.sort();
var _local12 = ((_local4["1"] || (_local4.d)) ? 1 : (Math.floor(_local13.cols / (_local9 + 2))));
var _local10 = 0;
_local8 = "";
_local6 = 0;
while (_local6 < _local3.length) {
_local8 = _local8 + _local3[_local6];
var _local5 = 0;
while (_local5 < ((_local9 - _local3[_local6].length) + 2)) {
_local8 = _local8 + " ";
_local5++;
}
_local10++;
_local10 = _local10 % _local12;
if (_local10 == 0) {
_local8 = _local8 + newline;
}
_local6++;
}
return(_local8);
};
_global.bin.cat = function () {
var _local3 = "";
if ((arguments.length == 0) || (_global.console.flags.help)) {
_local3 = "Usage: cat [FILE]\nPrint contents of FILE or standard input";
_global.console.setExitCode(0);
return(_local3);
}
var _local5 = _global.console.parameters;
var _local6 = _global.console;
if ((!_local5[0]) || (_local5[0] == "/")) {
_local6.ram.CWD = "";
_local5[0] = "";
}
var _local7 = ((_local5[0].substr(0, 1) == "/") ? "" : (_local6.ram.CWD + "/")) + _local5[0];
var _local4 = _local6.getObjectAtPath(_local7);
if (_local4) {
switch (typeof(_local4)) {
case "string" :
case "number" :
case "boolean" :
_local3 = _local3 + String(_local4);
break;
case "object" :
case "function" :
_local3 = _local3 + _global.bin.dump(_local4);
break;
default :
_global.console.setExitCode(1);
_local3 = _local3 + (("cat: bad type (" + typeof(_local4)) + ")");
}
} else {
_global.console.setExitCode(3);
_local3 = "cat: file not found";
}
return(_local3);
};
_global.bin.clipcp = function () {
var _local2 = "";
if (_global.console.flags.help) {
_local2 = "Usage: clipcp ARG\nConverts ARG to a String and copies it to the clipboard.";
}
_global.console.setExitCode(0);
return(_local2);
};
_global.bin.cls = function () {
var _local2 = "";
if (_global.console.flags.help) {
_local2 = "Usage: cls\nClear the console output window.";
} else {
_global.console.cls();
}
_global.console.setExitCode(0);
return(_local2);
};
_global.bin.cd = function () {
var _local2 = _global.console.parameters;
var _local3 = _global.console;
var _local5 = "";
if ((_local2[0] == undefined) || (_local2[0] == "/")) {
_local3.ram.CWD = "";
_local2[0] = "";
}
var _local6 = ((_local2[0].substr(0, 1) == "/") ? "" : (_local3.ram.CWD + "/")) + _local2[0];
var _local4 = _local3.getObjectAtPath(_local6);
if (_local4) {
switch (typeof(_local4)) {
case "object" :
case "array" :
case "movieclip" :
case "function" :
_global.console.setExitCode(0);
_local3.ram.CWD = _local6;
break;
default :
_global.console.setExitCode(1);
_local5 = _local5 + (("not an object (" + typeof(_local4)) + ")");
}
} else {
_global.console.setExitCode(3);
_local5 = _local5 + "path not found";
}
return(_local5);
};
_global.bin.echo = function () {
var _local4 = "";
var _local3 = 0;
while (_local3 < arguments.length) {
if (_local4 != "") {
_local4 = _local4 + " ";
}
_local4 = _local4 + String(arguments[_local3]);
_local3++;
}
_global.console.setExitCode(0);
return(_local4);
};
_global.bin.exit = function () {
fscommand ("quit");
_global.mdm.exit();
};
_global.bin.false = function () {
return(false);
};
_global.bin.fscommand = function () {
fscommand (arguments[0], arguments[1]);
};
_global.bin.get = function (path) {
return(_global.console.getObjectAtPath(path));
};
_global.bin.grep = function (needle, haystack) {
var _local4 = "";
if ((arguments.length < 1) || (_global.console.flags.help)) {
_local4 = "Usage: grep [OPTION] .. PATTERN [FILE] ..\nSearch each line FILE or the standard input and output only lines containing PATTERN";
_global.console.setExitCode(0);
return(_local4);
}
var _local5 = haystack.split(newline);
var _local3 = 0;
while (_local3 < _local5.length) {
if (_local5[_local3].indexOf(needle) != -1) {
if (_local4 != "") {
_local4 = _local4 + newline;
}
_local4 = _local4 + _local5[_local3];
}
_local3++;
}
_global.console.setExitCode(0);
return(_local4);
};
_global.bin.load = function (url, loadPoint) {
var _local7 = "";
if (((arguments.length != 2) && (arguments.length != 1)) || (_global.console.flags.help)) {
_local7 = _local7 + "Usage: load SOURCE [TARGET]\nLoads the external swf file SOURCE into TARGET.\nIf TARGET is not specified, a new movie clip will be created in the _root and used as TARGET.";
_global.console.setExitCode(0);
return(_local7);
}
var _local5;
if (loadPoint) {
var _local4 = _global.console.getObjectAtPath(loadPoint);
if (!_local4) {
_global.console.stderr("load: object not found: " + loadPoint);
_global.console.setExitCode(3);
return(undefined);
}
if (typeof(_local4) != "movieclip") {
_global.console.stderr(("load: target is not a movieclip (" + typeof(_local4)) + ")");
_global.console.setExitCode(1);
return(undefined);
}
_local5 = MovieClip(_local4);
} else {
_local5 = _root.createEmptyMovieClip(com.neodelight.std.Unique.getKey(), _root.getNextHighestDepth());
loadPoint = "/_root" + _local5._target;
}
loadMovie (url, _local5);
_local7 = _local7 + ((("load: loading " + url) + " to ") + loadPoint);
_global.console.setExitCode(0);
};
_global.bin.number = function () {
return(Number(arguments[0]));
};
_global.bin.set = function () {
var _local3 = "";
if (_global.console.flags.help) {
_local3 = "Usage: set [VAR = VALUE]\nWithout parameters: shows list of Flash-Console system variables. With parameters: set the value of a system variable.";
_global.console.setExitCode(0);
return(_local3);
}
if (arguments.length == 0) {
for (var _local4 in _global.console.ram) {
if (_local3 != "") {
_local3 = _local3 + newline;
}
_local3 = _local3 + ((_local4 + "=") + _global.console.ram[_local4]);
}
return(_local3);
}
if ((arguments.length < 2) || (arguments[1] != "=")) {
_global.console.stderr("set: syntax error\n");
_global.console.setExitCode(1);
return(undefined);
}
var _local4 = 2;
while (_local4 < arguments.length) {
if (_local3 != "") {
_local3 = _local3 + " ";
}
_local3 = _local3 + String(arguments[_local4]);
_local4++;
}
var _local5 = String(arguments[0]);
_global.console.ram[_local5] = _local3;
return(undefined);
};
_global.bin.sh = function (file) {
if (!file) {
return("");
}
var _local2 = _global.console.getObjectAtPath(file);
if (typeof(_local2) != "string") {
return("sh: not a script: " + file);
}
return(_global.console.executeCommand(_local2));
};
_global.bin.syslog = function (id, log, errlvl) {
var _local5 = "";
if ((arguments.length == 0) || (_global.console.flags.help)) {
_global.console.setExitCode(0);
_local5 = "Usage: syslog FACILITY MESSAGE [ERRORLEVEL]\nSend a message to the system logger. Messages are stored in /var/log/FACILITY.\nErrorlevels:\n1 - Normal log entry\n2 - Warning\n3 - Critical Error";
return(_local5);
}
if (!_global.var.log[id]) {
_global.var.log[id] = log + newline;
} else {
_global.var.log[id] = _global.var.log[id] + (log + newline);
}
switch (errlvl) {
case 1 :
_global.console.stdout((("#INFO:" + id) + ":") + log);
break;
case 2 :
_global.bin.syslog("WARNING", (id + ": ") + log);
_global.console.stderr((("#WARNING:" + id) + ":") + log);
break;
case 3 :
_global.bin.syslog("ERROR", (id + ": ") + log);
_global.console.stderr((("#ERROR:" + id) + ":") + log);
break;
}
_global.console.setExitCode(0);
return(_local5);
};
_global.bin.test = function () {
trace((((((("detect: " + _global.id) + " / ") + _root.id) + " / ") + _level0.id) + " / ") + _level1.id);
};
_global.bin.true = function () {
return(true);
};
}
}
static function mtascTrace(msg, cls, fil, lin) {
var _local4 = 0;
if (msg.substr(0, 3) == "!!!") {
_local4 = 3;
} else if (msg.substr(0, 2) == "!!") {
_local4 = 2;
} else if (msg.substr(0, 1) == "!") {
_local4 = 1;
} else if (msg.substr(0, 1) == "&") {
_global.console.stdout(msg);
return(undefined);
}
var _local2 = String(cls.split("::")[0]).split(".");
while (_local2.length > 2) {
_local2.shift();
}
var _local5 = getTimer();
_global.bin.syslog(_local2.join("."), (((((("[" + _local5) + ":") + cls.split("::")[1]) + ":") + lin) + "] ") + msg, _local4);
}
}
Symbol 490 MovieClip [__Packages.com.neodelight.flanix.Console] Frame 0
class com.neodelight.flanix.Console
{
var width, height, offsetX, offsetY, inputHeight, outputHeight, outputMaxLines, cols, mc, output, input, history, format, cursorMc, codepage, active, parameters, flags;
function Console (width, height) {
if (_global.console) {
trace("#ERROR: Console(): only one instance of Console allowed!");
} else {
com.neodelight.flanix.Kernel.init();
_global.console = this;
this.width = (width ? (width) : 550);
this.height = (height ? (height) : 400);
offsetX = 0;
offsetY = 0;
inputHeight = 18;
outputHeight = ((this.height - (padding * 2)) - spacing) - inputHeight;
outputMaxLines = 50;
cols = Math.floor((this.width - (padding * 2)) / 8) - 1;
mc = _root.createEmptyMovieClip(com.neodelight.std.Unique.getKey(), _root.getNextHighestDepth());
mc.createTextField("output", mc.getNextHighestDepth(), padding, padding, this.width - (padding * 2), outputHeight);
output = mc.output;
mc.createTextField("input", mc.getNextHighestDepth(), padding, (padding + outputHeight) + spacing, this.width - (padding * 2), 20);
input = mc.input;
input.text = promptVar;
input.addListener(this);
Key.addListener(this);
history = new Array();
format = new TextFormat();
format.color = COLOR_TEXT;
format.font = "Courier";
format.size = 10;
input.setNewTextFormat(format);
input.setTextFormat(format);
output.setTextFormat(format);
output.setNewTextFormat(format);
output.wordWrap = true;
cursorMc = mc.createEmptyMovieClip(com.neodelight.std.Unique.getKey(), mc.getNextHighestDepth());
cursorMc.lineStyle(0, COLOR_TEXT);
cursorMc.moveTo(0, 0);
cursorMc.lineTo(8, 0);
setInterval(function (cursorMc) {
cursorMc._visible = !cursorMc._visible;
}, 200, cursorMc);
cursorMc._y = ((this.height - padding) - 2) + offsetY;
updateCursor();
codepage = new Array();
codepage[221] = "\u00B4";
codepage[304] = "=";
codepage[306] = "\"";
codepage[307] = "\u00A7";
codepage[310] = "&";
codepage[311] = "/";
codepage[312] = "(";
codepage[313] = ")";
codepage[443] = "*";
codepage[444] = ";";
codepage[446] = ":";
codepage[447] = "'";
codepage[475] = "?";
codepage[477] = "`";
codepage[482] = ">";
codepage[1584] = "}";
codepage[1591] = "{";
codepage[1592] = "[";
codepage[1593] = "]";
codepage[1617] = "@";
codepage[1723] = "~";
codepage[1755] = "\\";
codepage[1762] = "|";
redraw();
stdout("Neodelight Flash Console " + _global.$FLANIX_VERSION);
stdout("OK.");
active = false;
mc._visible = false;
}
}
function show() {
active = true;
mc._visible = true;
mc.swapDepths(_root.getNextHighestDepth());
}
function hide() {
active = false;
mc._visible = false;
}
function echo(msg) {
if (msg == undefined) {
msg = "";
}
if (output.maxscroll > outputMaxLines) {
var _local2 = output.text.split(String.fromCharCode(13));
_local2.splice(0, _local2.length - outputMaxLines);
output.text = _local2.join(newline);
} else if (output.text != "") {
}
output.text = output.text + newline;
output.text = output.text + msg;
output.scroll = output.maxscroll;
}
function stdout(msg) {
if (doBufStdOut) {
bufStdOut = bufStdOut + msg;
} else {
echo(msg);
}
}
function flushStdOut() {
echo(bufStdOut);
bufStdOut = "";
}
function stderr(msg) {
echo(msg);
}
function setExitCode(code) {
ram["?"] = code;
}
function cls() {
output.text = "";
}
static function addFunction(id, f) {
_global.bin[id.toLowerCase()] = f;
}
function getObjectAtCwd() {
if (ram.CWD == undefined) {
ram.CWD = "/";
}
return(getObjectAtPath(ram.CWD));
}
function getObjectAtPath(fullPath) {
if (fullPath.substr(0, 1) != "/") {
fullPath = (ram.CWD + "/") + fullPath;
}
var _local4 = simplifyPath(fullPath).split("/");
var _local5 = _global;
_global._level0 = _level0;
_global._level1 = _level1;
_global._level2 = _level2;
_global._level3 = _level3;
var _local3 = 0;
while (_local3 < _local4.length) {
if (_local4[_local3] != "") {
_local5 = _local5[_local4[_local3]];
}
_local3++;
}
return(_local5);
}
function getBasePath(fullPath) {
if (fullPath.charAt(fullPath.length - 1) == "/") {
return(fullPath);
}
if (fullPath.charAt(0) != "/") {
fullPath = (ram.CWD + "/") + fullPath;
}
var _local3 = simplifyPath(fullPath).split("/");
_local3.pop();
return(_local3.join("/") + "/");
}
function getFileName(fullPath) {
return(String(fullPath.split("/").pop()));
}
function simplifyPath(fullPath) {
var _local2 = fullPath.split("/");
var _local1 = 0;
while (_local1 < _local2.length) {
if (_local2[_local1] == "..") {
_local2.splice(_local1 - 1, 2);
_local1 = Math.max(-1, _local1 - 2);
} else if (((_local2[_local1] == ".") || (!_local2[_local1])) || (_local2[_local1] == "")) {
_local2.splice(_local1, 1);
_local1 = Math.max(-1, _local1 - 1);
}
_local1++;
}
fullPath = "/" + _local2.join("/");
return(fullPath);
}
function onKeyDown() {
switch (Key.getCode()) {
case 8 :
if (!active) {
break;
}
if ((cursorPos - 1) >= promptVar.length) {
input.text = input.text.substring(0, cursorPos - 1) + input.text.substring(cursorPos, input.text.length);
updateCursor(-1);
}
break;
case 9 :
if (!active) {
} else {
var _local6 = input.text.substring(promptVar.length, cursorPos);
var _local10 = input.text.lastIndexOf(" ", cursorPos);
if (_local10 != -1) {
_local6 = input.text.substring(_local10 + 1, input.text.length + 1);
}
var _local13 = ((ram.CWD + "/") + _local6).split("/");
var _local7 = String(_local13.pop());
var _local14 = _local13.join("/");
var _local8 = getObjectAtPath(_local14);
var _local3 = new Array();
for (var _local4 in _global.bin) {
if ((_local4.substr(0, _local6.length) == _local6) && (!_local3[_local4])) {
_local3.push(_local4);
_local3[_local4] = true;
}
}
for (var _local4 in _local8) {
if ((_local4.substr(0, _local7.length) == _local7) && (!_local3[_local4])) {
_local3.push(_local4);
_local3[_local4] = true;
}
}
if (_local3.length == 1) {
insertAtCursor(_local3[0].substring(_local7.length, _local3[0].length));
} else if (_local3.length > 1) {
stdout();
var _local5 = _local3[0].length;
var _local4 = 0;
while (_local4 < _local3.length) {
stdout(_local3[_local4]);
while (_local3[_local4].substr(0, _local5) != _local3[0].substr(0, _local5)) {
_local5--;
}
_local4++;
}
if (_local5) {
insertAtCursor(_local3[0].substring(_local7.length, Math.min(_local5, _local3[0].length)));
}
}
break;
if (active) {
var _local9 = input.text.substring(promptVar.length, input.text.length);
history.unshift(_local9);
if (history.length > historyLen) {
history.pop();
}
historyPtr = -1;
stdout(promptVar + _local9);
stdout(executeCommand(_local9));
input.text = promptVar;
updatePrompt();
updateCursor();
}
if (active) {
Selection.setFocus(mc.input);
Selection.setSelection(0, 0);
}
break;
break;
break;
break;
break;
cursorPos = input.text.length;
updateCursor();
break;
cursorPos = 0;
updateCursor();
break;
if (!active) {
} else {
updateCursor(-1);
break;
if (!active) {
} else {
historyPtr = Math.min(history.length - 1, historyPtr + 1);
input.text = promptVar + history[historyPtr];
cursorPos = input.text.length;
updateCursor();
break;
if (!active) {
} else {
updateCursor(1);
break;
if (!active) {
} else {
historyPtr = Math.max(-1, historyPtr - 1);
if (historyPtr == -1) {
input.text = promptVar;
} else {
input.text = promptVar + history[historyPtr];
}
cursorPos = input.text.length;
updateCursor();
break;
if (!active) {
} else {
input.text = input.text.substring(0, cursorPos) + input.text.substring(cursorPos + 1, input.text.length);
break;
if (active) {
hide();
} else {
show();
}
break;
if (!active) {
} else {
var _local11 = ((Key.getCode() + ((Key.isDown(16) || Key.isToggled(20)) ? 256 : 0)) + (Key.isDown(17) ? 512 : 0)) + (Key.isDown(18) ? 1024 : 0);
var _local15 = Key.getAscii();
var _local12;
if (codepage[_local11]) {
_local12 = codepage[_local11];
} else {
_local12 = String.fromCharCode(_local15);
}
insertAtCursor(_local12);
Selection.setFocus(mc.input);
Selection.setSelection(2, 2);
}
}
}
}
}
}
}
case 13 :
if (active) {
var _local9 = input.text.substring(promptVar.length, input.text.length);
history.unshift(_local9);
if (history.length > historyLen) {
history.pop();
}
historyPtr = -1;
stdout(promptVar + _local9);
stdout(executeCommand(_local9));
input.text = promptVar;
updatePrompt();
updateCursor();
}
if (active) {
Selection.setFocus(mc.input);
Selection.setSelection(0, 0);
}
break;
case 16 :
break;
case 17 :
break;
case 18 :
break;
case 20 :
break;
case 35 :
cursorPos = input.text.length;
updateCursor();
break;
case 36 :
cursorPos = 0;
updateCursor();
break;
case 37 :
if (!active) {
} else {
updateCursor(-1);
break;
if (!active) {
} else {
historyPtr = Math.min(history.length - 1, historyPtr + 1);
input.text = promptVar + history[historyPtr];
cursorPos = input.text.length;
updateCursor();
break;
if (!active) {
} else {
updateCursor(1);
break;
if (!active) {
} else {
historyPtr = Math.max(-1, historyPtr - 1);
if (historyPtr == -1) {
input.text = promptVar;
} else {
input.text = promptVar + history[historyPtr];
}
cursorPos = input.text.length;
updateCursor();
break;
if (!active) {
} else {
input.text = input.text.substring(0, cursorPos) + input.text.substring(cursorPos + 1, input.text.length);
break;
if (active) {
hide();
} else {
show();
}
break;
if (!active) {
} else {
var _local11 = ((Key.getCode() + ((Key.isDown(16) || Key.isToggled(20)) ? 256 : 0)) + (Key.isDown(17) ? 512 : 0)) + (Key.isDown(18) ? 1024 : 0);
var _local15 = Key.getAscii();
var _local12;
if (codepage[_local11]) {
_local12 = codepage[_local11];
} else {
_local12 = String.fromCharCode(_local15);
}
insertAtCursor(_local12);
Selection.setFocus(mc.input);
Selection.setSelection(2, 2);
}
}
}
}
}
}
case 38 :
if (!active) {
} else {
historyPtr = Math.min(history.length - 1, historyPtr + 1);
input.text = promptVar + history[historyPtr];
cursorPos = input.text.length;
updateCursor();
break;
if (!active) {
} else {
updateCursor(1);
break;
if (!active) {
} else {
historyPtr = Math.max(-1, historyPtr - 1);
if (historyPtr == -1) {
input.text = promptVar;
} else {
input.text = promptVar + history[historyPtr];
}
cursorPos = input.text.length;
updateCursor();
break;
if (!active) {
} else {
input.text = input.text.substring(0, cursorPos) + input.text.substring(cursorPos + 1, input.text.length);
break;
if (active) {
hide();
} else {
show();
}
break;
if (!active) {
} else {
var _local11 = ((Key.getCode() + ((Key.isDown(16) || (Key.isToggled(20))) ? 256 : 0)) + (Key.isDown(17) ? 512 : 0)) + (Key.isDown(18) ? 1024 : 0);
var _local15 = Key.getAscii();
var _local12;
if (codepage[_local11]) {
_local12 = codepage[_local11];
} else {
_local12 = String.fromCharCode(_local15);
}
insertAtCursor(_local12);
Selection.setFocus(mc.input);
Selection.setSelection(2, 2);
}
}
}
}
}
case 39 :
if (!active) {
} else {
updateCursor(1);
break;
if (!active) {
} else {
historyPtr = Math.max(-1, historyPtr - 1);
if (historyPtr == -1) {
input.text = promptVar;
} else {
input.text = promptVar + history[historyPtr];
}
cursorPos = input.text.length;
updateCursor();
break;
if (!active) {
} else {
input.text = input.text.substring(0, cursorPos) + input.text.substring(cursorPos + 1, input.text.length);
break;
if (active) {
hide();
} else {
show();
}
break;
if (!active) {
} else {
var _local11 = ((Key.getCode() + ((Key.isDown(16) || (Key.isToggled(20))) ? 256 : 0)) + (Key.isDown(17) ? 512 : 0)) + (Key.isDown(18) ? 1024 : 0);
var _local15 = Key.getAscii();
var _local12;
if (codepage[_local11]) {
_local12 = codepage[_local11];
} else {
_local12 = String.fromCharCode(_local15);
}
insertAtCursor(_local12);
Selection.setFocus(mc.input);
Selection.setSelection(2, 2);
}
}
}
}
case 40 :
if (!active) {
} else {
historyPtr = Math.max(-1, historyPtr - 1);
if (historyPtr == -1) {
input.text = promptVar;
} else {
input.text = promptVar + history[historyPtr];
}
cursorPos = input.text.length;
updateCursor();
break;
if (!active) {
} else {
input.text = input.text.substring(0, cursorPos) + input.text.substring(cursorPos + 1, input.text.length);
break;
if (active) {
hide();
} else {
show();
}
break;
if (!active) {
} else {
var _local11 = ((Key.getCode() + ((Key.isDown(16) || (Key.isToggled(20))) ? 256 : 0)) + (Key.isDown(17) ? 512 : 0)) + (Key.isDown(18) ? 1024 : 0);
var _local15 = Key.getAscii();
var _local12;
if (codepage[_local11]) {
_local12 = codepage[_local11];
} else {
_local12 = String.fromCharCode(_local15);
}
insertAtCursor(_local12);
Selection.setFocus(mc.input);
Selection.setSelection(2, 2);
}
}
}
case 46 :
if (!active) {
} else {
input.text = input.text.substring(0, cursorPos) + input.text.substring(cursorPos + 1, input.text.length);
break;
if (active) {
hide();
} else {
show();
}
break;
if (!active) {
} else {
var _local11 = ((Key.getCode() + ((Key.isDown(16) || (Key.isToggled(20))) ? 256 : 0)) + (Key.isDown(17) ? 512 : 0)) + (Key.isDown(18) ? 1024 : 0);
var _local15 = Key.getAscii();
var _local12;
if (codepage[_local11]) {
_local12 = codepage[_local11];
} else {
_local12 = String.fromCharCode(_local15);
}
insertAtCursor(_local12);
Selection.setFocus(mc.input);
Selection.setSelection(2, 2);
}
}
case 220 :
if (active) {
hide();
} else {
show();
}
break;
default :
if (!active) {
} else {
var _local11 = ((Key.getCode() + ((Key.isDown(16) || (Key.isToggled(20))) ? 256 : 0)) + (Key.isDown(17) ? 512 : 0)) + (Key.isDown(18) ? 1024 : 0);
var _local15 = Key.getAscii();
var _local12;
if (codepage[_local11]) {
_local12 = codepage[_local11];
} else {
_local12 = String.fromCharCode(_local15);
}
insertAtCursor(_local12);
Selection.setFocus(mc.input);
Selection.setSelection(2, 2);
}
}
}
function redraw() {
mc.lineStyle(0, COLOR_LINE);
mc.moveTo(offsetX, offsetY);
mc.beginFill(COLOR_BG, COLOR_BG_ALPHA);
mc.lineTo(width + offsetX, offsetY);
mc.lineTo(width + offsetX, height + offsetY);
mc.lineTo(offsetX, height + offsetY);
mc.lineTo(offsetX, offsetY);
mc.endFill();
output._x = offsetX;
output._y = offsetY;
input._x = padding + offsetX;
input._y = ((padding + offsetY) + outputHeight) + spacing;
updatePrompt();
updateCursor();
}
function updateCursor(offset) {
if (offset) {
cursorPos = cursorPos + offset;
}
cursorPos = Math.max(promptVar.length, Math.min(input.text.length, cursorPos));
cursorMc._x = ((offsetX + padding) + 2) + (cursorPos * 8);
cursorMc._visible = true;
}
function updatePrompt() {
promptVar = ram.CWD + ">";
input.text = promptVar;
}
function insertAtCursor(str) {
input.text = (input.text.substring(0, cursorPos) + str) + input.text.substring(cursorPos, input.text.length);
updateCursor(str.length);
}
function executeCommand(cmd, stdin) {
var _local24 = "";
cmd = com.neodelight.std.XString.trim(cmd);
while (cmd.charAt(cmd.length - 1) == ";") {
cmd = cmd.substr(0, cmd.length - 1);
}
var _local4 = "cmd";
var _local2 = "";
var _local12 = cmd.length - 1;
while (_local12 >= 0) {
if (cmd.charAt(_local12 - 1) == "\\") {
} else {
var _local3 = cmd.charAt(_local12);
switch (_local4) {
case "cmd" :
switch (_local3) {
case "\"" :
_local4 = "quotDouble";
break;
case "'" :
_local4 = "quotSingle";
break;
case ";" :
case newline :
var _local19 = cmd.substr(0, _local12);
var _local14 = String(executeCommand(_local19));
if (_local14 != "") {
_local24 = _local24 + (_local14 + newline);
}
cmd = cmd.substr(_local12 + 1);
_local12 = -1;
}
break;
case "quotSingle" :
if (_local3 == "'") {
_local4 = "cmd";
}
break;
case "quotDouble" :
if (_local3 == "\"") {
_local4 = "cmd";
}
break;
default :
trace(("#ERROR: unknown mode: " + _local4) + ".. flanix is buggy");
}
}
_local12--;
}
if (ram.CWD == undefined) {
ram.CWD = "/";
}
var _local18;
var _local21;
var _local11 = new Array();
_local2 = "";
_local4 = "cmd";
cmd = cmd + " ";
_local12 = 0;
while (_local12 < cmd.length) {
var _local3 = cmd.charAt(_local12);
switch (_local4) {
case "cmd" :
if (_local3 == " ") {
_local2 = com.neodelight.std.XString.stripSlashes(_local2);
_local4 = "param";
if (_local2 != "") {
_local11.push(_local2);
}
_local2 = "";
} else {
_local2 = _local2 + _local3;
}
break;
case "param" :
if (_local2 == "") {
if (_local3 == " ") {
break;
}
if (_local3 == "`") {
_local4 = "paramExpression";
_local2 = _local2 + _local3;
} else if (_local3 == "\"") {
_local4 = "paramQuoteDouble";
} else if (_local3 == "'") {
_local4 = "paramQuoteSingle";
} else if (_local3 == "|") {
_local18 = cmd.substr(_local12 + 1);
_local21 = "|";
_local12 = Number.MAX_VALUE;
} else if (_local3 == ">") {
_local4 = "paramPipeOutFile";
} else {
if (_local3 == " ") {
_local4 = "param";
if (Number(_local2) == _local2) {
_local2 = Number(_local2);
} else {
_local2 = com.neodelight.std.XString.stripSlashes(_local2);
if (_local2.indexOf("$") != -1) {
if (_local2.length <= (_local2.indexOf("$") + 1)) {
stderr("bash: unknown variable: $");
setExitCode(2);
return(undefined);
}
var _local8 = ram[_local2.substr(_local2.indexOf("$") + 1)];
if (_local8 == undefined) {
_local8 = "";
}
_local2 = _local2.substring(0, _local2.indexOf("$")) + String(_local8);
}
}
_local11.push(_local2);
_local2 = "";
} else {
_local2 = _local2 + _local3;
}
break;
if ((_local3 == "`") && (cmd.charAt(_local12 - 1) != "\\")) {
_local2 = executeCommand(_local2);
_local4 = "param";
_local11.push(_local2);
_local2 = "";
} else {
_local2 = _local2 + _local3;
}
break;
if ((_local3 == "'") && (cmd.charAt(_local12 - 1) != "\\")) {
_local2 = com.neodelight.std.XString.stripSlashes(_local2);
_local4 = "param";
_local11.push(_local2);
_local2 = "";
} else {
_local2 = _local2 + _local3;
}
break;
if ((_local3 == "\"") && (cmd.charAt(_local12 - 1) != "\\")) {
_local2 = com.neodelight.std.XString.stripSlashes(_local2);
while (_local2.indexOf("$") != -1) {
var _local6 = _local2.indexOf("$");
var _local10 = Math.min(_local2.length, ((_local2.indexOf(" ", _local6) > -1) ? _local2.indexOf(" ", _local6) : Number.MAX_VALUE));
var _local13 = _local2.substring(_local6 + 1, _local10);
var _local8 = ram[_local13];
if (_local8 == undefined) {
_local8 = "";
}
_local2 = (_local2.slice(0, _local6) + String(_local8)) + _local2.slice(_local10, _local2.length);
}
_local4 = "param";
_local11.push(_local2);
_local2 = "";
} else {
_local2 = _local2 + _local3;
}
break;
if ((_local3 == " ") && (_local2 == "")) {
} else {
if (_local3 == " ") {
_local18 = _local2;
_local21 = ">";
_local2 = "";
_local4 = "param";
} else {
_local2 = _local2 + _local3;
}
break;
trace("unknown mode: " + _local4);
}
}
}
if (_local3 == " ") {
_local4 = "param";
if (Number(_local2) == _local2) {
_local2 = Number(_local2);
} else {
_local2 = com.neodelight.std.XString.stripSlashes(_local2);
if (_local2.indexOf("$") != -1) {
if (_local2.length <= (_local2.indexOf("$") + 1)) {
stderr("bash: unknown variable: $");
setExitCode(2);
return(undefined);
}
var _local8 = ram[_local2.substr(_local2.indexOf("$") + 1)];
if (_local8 == undefined) {
_local8 = "";
}
_local2 = _local2.substring(0, _local2.indexOf("$")) + String(_local8);
}
}
_local11.push(_local2);
_local2 = "";
} else {
_local2 = _local2 + _local3;
}
break;
case "paramExpression" :
if ((_local3 == "`") && (cmd.charAt(_local12 - 1) != "\\")) {
_local2 = executeCommand(_local2);
_local4 = "param";
_local11.push(_local2);
_local2 = "";
} else {
_local2 = _local2 + _local3;
}
break;
case "paramQuoteSingle" :
if ((_local3 == "'") && (cmd.charAt(_local12 - 1) != "\\")) {
_local2 = com.neodelight.std.XString.stripSlashes(_local2);
_local4 = "param";
_local11.push(_local2);
_local2 = "";
} else {
_local2 = _local2 + _local3;
}
break;
case "paramQuoteDouble" :
if ((_local3 == "\"") && (cmd.charAt(_local12 - 1) != "\\")) {
_local2 = com.neodelight.std.XString.stripSlashes(_local2);
while (_local2.indexOf("$") != -1) {
var _local6 = _local2.indexOf("$");
var _local10 = Math.min(_local2.length, ((_local2.indexOf(" ", _local6) > -1) ? (_local2.indexOf(" ", _local6)) : Number.MAX_VALUE));
var _local13 = _local2.substring(_local6 + 1, _local10);
var _local8 = ram[_local13];
if (_local8 == undefined) {
_local8 = "";
}
_local2 = (_local2.slice(0, _local6) + String(_local8)) + _local2.slice(_local10, _local2.length);
}
_local4 = "param";
_local11.push(_local2);
_local2 = "";
} else {
_local2 = _local2 + _local3;
}
break;
case "paramPipeOutFile" :
if ((_local3 == " ") && (_local2 == "")) {
} else {
if (_local3 == " ") {
_local18 = _local2;
_local21 = ">";
_local2 = "";
_local4 = "param";
} else {
_local2 = _local2 + _local3;
}
break;
trace("unknown mode: " + _local4);
}
default :
trace("unknown mode: " + _local4);
}
_local12++;
}
var _local22 = "";
if (_local11.length) {
var _local7 = new Array();
_local12 = 1;
while (_local12 < _local11.length) {
_local7.push(_local11[_local12]);
_local12++;
}
var _local15 = {};
for (_local12 in _local7) {
if (_local7[_local12].substr(0, 2) == "--") {
_local15[_local7[_local12].substr(2, _local7[_local12].length - 2)] = true;
} else if (String(_local7[_local12]).substr(0, 1) == "-") {
var _local9 = 1;
while (_local9 < String(_local7[_local12]).length) {
_local15[String(_local7[_local12]).charAt(_local9)] = true;
_local9++;
}
}
}
if (stdin != undefined) {
_local7.push(stdin);
}
var _local20 = String(_local11[0]);
setExitCode(undefined);
var _local17;
var _local23;
if (_local20.indexOf("/") != -1) {
if (_local20.charAt(0) == "/") {
_local17 = getObjectAtPath(_local20);
_local23 = getBasePath(_local20);
} else {
_local17 = getObjectAtPath((ram.CWD + "/") + _local20);
_local23 = getBasePath((ram.CWD + "/") + _local20);
}
} else {
var _local16 = ((ram.PATH.indexOf("/bin") == -1) ? (("/bin:" + ram.PATH).split(":")) : (ram.PATH.split(":")));
_local12 = 0;
while (_local12 < _local16.length) {
_local17 = getObjectAtPath((_local16[_local12] + "/") + _local20);
if (_local17 != undefined) {
_local23 = _local16[_local12];
break;
}
_local12++;
}
}
if (_local17 != undefined) {
switch (typeof(_local17)) {
case "function" :
var _local27 = Function(_local17);
parameters = _local7;
flags = _local15;
_local22 = _local27.apply(getObjectAtPath(_local23), _local7);
break;
case "string" :
var _local25 = _local17.split(newline, 2);
if (_local25[0] == "#!/bin/sh") {
_local22 = executeCommand(_local25[1]);
} else {
stderr("bash: to execute a string as a script, type: sh <filename>");
}
break;
default :
stderr(((("bash: not a command: " + _local20) + " (") + typeof(_local17)) + ")");
}
} else {
stderr("bash: command not found or undefined: " + _local20);
setExitCode(3);
}
ram.CWD = simplifyPath(ram.CWD);
if (_local18) {
switch (_local21) {
case "|" :
_local22 = executeCommand(_local18, _local22);
break;
case ">" :
if (_local18.indexOf("/") != -1) {
var _local26 = getObjectAtPath(getBasePath(_local18));
_local26[getFileName(_local18)] = _local22;
} else {
var _local26 = getObjectAtCwd();
_local26[_local18] = _local22;
}
break;
case "<" :
}
_local22 = "";
}
} else {
_local22 = "";
}
return(_local24 + _local22);
}
static var COLOR_LINE = 65280;
static var COLOR_BG = 2236962;
static var COLOR_BG_ALPHA = 100;
static var COLOR_TEXT = 65280;
var padding = 5;
var spacing = 5;
var promptVar = ">";
var historyLen = 100;
var historyPtr = -1;
var cursorPos = 0;
var doBufStdOut = false;
var bufStdOut = "";
var ram = {CWD:"/", PATH:"/bin:."};
}
Symbol 491 MovieClip [__Packages.com.neodelight.std.ClassLib] Frame 0
class com.neodelight.std.ClassLib
{
function ClassLib () {
}
static function init() {
trace("");
var _local1 = com.neodelight.std.Blueprint.getBlueprint("classlib");
if (_local1) {
for (var _local2 in _local1) {
addClass(_local2, Function(_local1[_local2]));
}
}
}
static function addClass(id, c) {
lib[id] = c;
_global.lib.classlib = lib;
trace(id);
}
static function getClass(id) {
return(lib[id]);
}
static var lib = new Array();
}
Symbol 492 MovieClip [__Packages.com.neodelight.game.Score] Frame 0
class com.neodelight.game.Score
{
var flow, config, sharedObject, scoreTotal, scores, scoreLevel;
function Score (config) {
_global.bin.syslog("Score", "new Score()");
flow = new com.neodelight.std.Flow();
if (!config) {
config = Array(com.neodelight.std.Blueprint.getBlueprint("score").scoreTypes);
}
if (!config) {
_global.bin.syslog("Score", "constructor needs config", 3);
} else {
this.config = config;
var _local4 = 0;
while (_local4 < config.length) {
this.config[config[_local4].id] = config[_local4];
this.config[_local4].i = _local4;
_local4++;
}
sharedObject = SharedObject.getLocal(_global.game.name);
reset();
}
if (_global.mdm) {
_global.mdm.enableexithandler();
com.neodelight.std.File.load(_global.game.name + ".stats", function (data) {
if (!data) {
_global.bin.syslog("Score", "loaded external scores: empty");
return(undefined);
}
_global.bin.syslog("Score", ("loaded external scores (" + data.length) + " bytes)");
_root.decryptedScores = "";
_global.mdm.blowfishdec("com.neodelight.game.Score", data, "_root.decryptedScores");
_root.scoresLoadFlow = new com.neodelight.std.Flow();
_root.scoresLoadFlow.pushTask(function () {
if (_root.decryptedScores) {
_global.bin.syslog("Score", "decrypted scores");
_global.score.sharedObject = {};
_global.score.sharedObject.data = com.neodelight.wddx.Wddx.deserialize(_root.decryptedScores);
delete _root.decrytpedScores;
return(true);
}
return(false);
}, undefined, undefined, undefined, true, true);
});
_root.onAppExit = function () {
var _local4 = _global.score.sharedObject.data;
var _local3 = com.neodelight.wddx.Wddx.serialize(_local4);
_root.encryptedScores = "";
_global.mdm.blowfishenc("com.neodelight.game.Score", _local3, "encryptedScores");
_root.appExitFlow = new com.neodelight.std.Flow();
_root.appExitFlow.pushTask(function () {
if (_root.encryptedScores) {
com.neodelight.mdm.MdmFile.save(_global.game.name + ".stats", _root.encryptedScores);
_global.mdm.exit();
return(true);
}
return(false);
}, undefined, undefined, undefined, true, true);
};
}
}
function reset() {
_global.bin.syslog("Score", "reset scores!");
scoreTotal = 0;
scores = new Object();
}
function initLevel() {
_global.bin.syslog("Score", "initLevel: " + _global.game.actLevel);
scores[_global.game.actLevel] = new Object();
var _local3 = 0;
while (_local3 < config.length) {
scores[_global.game.actLevel][config[_local3].id] = com.neodelight.std.XMath.toNumber(config[_local3].score);
_local3++;
}
scoreLevel = 0;
}
function alter(deltaScore, type) {
_global.bin.syslog("Score", ((("alter '" + type) + "' (") + deltaScore) + ", type)");
if (config[type].totalAdd) {
scoreTotal = scoreTotal + deltaScore;
scoreLevel = scoreLevel + deltaScore;
}
scores[_global.game.actLevel][type] = scores[_global.game.actLevel][type] + deltaScore;
}
function set(score, type) {
_global.bin.syslog("Score", ((("set '" + type) + "' (") + score) + ")");
if (config[type].totalAdd) {
scoreTotal = scoreTotal - com.neodelight.std.XMath.toNumber(scores[_global.game.actLevel][type]);
scoreTotal = scoreTotal + score;
}
scores[_global.game.actLevel][type] = score;
}
function get(type, level) {
if (level == undefined) {
level = _global.game.actLevel;
}
return(scores[level][type]);
}
function refresh() {
trace("score:refresh");
scoreTotal = 0;
for (var _local3 in scores) {
trace("level: " + _local3);
var _local2 = 0;
while (_local2 < config.length) {
trace((((("t: " + _local2) + " id:") + config[_local2].id) + " val:") + scores[_local3][config[_local2].id]);
if (config[_local2].totalAdd) {
scoreTotal = scoreTotal + scores[_local3][config[_local2].id];
}
_local2++;
}
}
}
function saveType(disciple) {
_global.bin.syslog("Score", "saveType: " + disciple);
var _local4 = _global.game.actLevel;
_global.bin.syslog("Score", "level = " + _local4);
var _local3 = sharedObject.data;
if (!_local3) {
trace("#ERROR: no sObj");
}
if (!_local3.scores) {
_local3.scores = new Object();
}
if (!_local3.scores[_local4]) {
_global.bin.syslog("Score", "creating level object");
_local3.scores[_local4] = new Object();
}
var _local6 = scores[_local4][config[disciple].id];
_global.bin.syslog("Score", "score = " + _local6);
if (!_local3.scores[_local4][disciple]) {
_local3.scores[_local4][disciple] = new Object();
}
_local3.scores[_local4][disciple].count = int(_local3.scores[_local4][disciple].count) + 1;
if ((_local3.scores[_local4][disciple].max == undefined) || (_local3.scores[_local4][disciple].max < _local6)) {
_local3.scores[_local4][disciple].max = _local6;
}
if ((_local3.scores[_local4][disciple].min == undefined) || (_local3.scores[_local4][disciple].min > _local6)) {
_local3.scores[_local4][disciple].min = _local6;
}
if (_local3.scores[_local4][disciple].avg == undefined) {
_local3.scores[_local4][disciple].avg = _local6;
} else {
_local3.scores[_local4][disciple].avg = ((_local3.scores[_local4][disciple].avg * (_local3.scores[_local4][disciple].count - 1)) + _local6) / _local3.scores[_local4][disciple].count;
}
}
function save(saveTotal) {
_global.bin.syslog("Score", "save");
var _local4 = sharedObject.data;
if (saveTotal) {
_local4.count = int(_local4.count) + 1;
if ((_local4.max == undefined) || (_local4.max > scoreTotal)) {
_local4.max = scoreTotal;
}
if ((_local4.min == undefined) || (_local4.min < scoreTotal)) {
_local4.min = scoreTotal;
}
_local4.avg = ((_local4.avg == undefined) ? (scoreTotal) : (((_local4.avg * (_local4.count - 1)) + scoreTotal) / _local4.count));
}
if (!_local4.scores) {
_local4.scores = new Object();
}
var _local5 = _global.game.actLevel;
if (!_local4.scores[_local5]) {
_local4.scores[_local5] = new Object();
}
var _local3 = 0;
while (_local3 < config.length) {
var _local6 = scores[_local5][config[_local3].id];
if (!_local4.scores[_local5][_local3]) {
_local4.scores[_local5][_local3] = new Object();
}
_local4.scores[_local5][_local3].count = int(_local4.scores[_local5][_local3].count) + 1;
if ((_local4.scores[_local5][_local3].max == undefined) || (_local4.scores[_local5][_local3].max < _local6)) {
_local4.scores[_local5][_local3].max = _local6;
}
if ((_local4.scores[_local5][_local3].min == undefined) || (_local4.scores[_local5][_local3].min > _local6)) {
_local4.scores[_local5][_local3].min = _local6;
}
if (_local4.scores[_local5][_local3].avg == undefined) {
_local4.scores[_local5][_local3].avg = _local6;
} else {
_local4.scores[_local5][_local3].avg = ((_local4.scores[_local5][_local3].avg * (_local4.scores[_local5][_local3].count - 1)) + _local6) / _local4.scores[_local5][_local3].count;
}
_local3++;
}
}
function getStatistics() {
_global.bin.syslog("Score", "getStatistics", 0);
var _local5 = sharedObject.data;
var _local4 = new Object();
_local4.scores = new Object();
_local4.avg = _local5.avg;
_local4.max = _local5.max;
_local4.cur = _local5.cur;
_local4.count = _local5.count;
for (var _local6 in _local5.scores) {
_local4.scores[_local6] = new Object();
var _local3 = 0;
while (_local3 < config.length) {
_local4.scores[_local6][config[_local3].id] = new Object();
_local4.scores[_local6][config[_local3].id].avg = _local5.scores[_local6][config[_local3].id].avg;
_local4.scores[_local6][config[_local3].id].min = _local5.scores[_local6][config[_local3].id].min;
_local4.scores[_local6][config[_local3].id].max = _local5.scores[_local6][config[_local3].id].max;
_local4.scores[_local6][config[_local3].id].count = _local5.scores[_local6][config[_local3].id].count;
_local4.scores[_local6][config[_local3].id].cur = scores[_local6][config[_local3].id];
_local3++;
}
}
return(_local4);
}
function clearSharedObject() {
_global.bin.syslog("Score", "clearSharedObject", 1);
sharedObject.clear();
sharedObject.data = new Object();
}
}
Symbol 493 MovieClip [__Packages.com.neodelight.std.File] Frame 0
class com.neodelight.std.File
{
function File () {
}
static function load(filename, callback) {
var _local1 = new LoadVars();
_local1.load(filename);
_local1.onData = callback;
}
}
Symbol 494 MovieClip [__Packages.com.neodelight.wddx.Wddx] Frame 0
class com.neodelight.wddx.Wddx
{
function Wddx () {
et = new Object();
etRev = new Object();
at = new Object();
atRev = new Object();
timezoneString = new String();
preserveVarCase = true;
useTimezoneInfo = true;
var _local2 = 0;
while (_local2 < 256) {
if ((((_local2 < 32) && (_local2 != 9)) && (_local2 != 10)) && (_local2 != 13)) {
var _local3 = _local2.toString(16);
if (_local3.length == 1) {
_local3 = "0" + _local3;
}
et[_local2] = ("<char code='" + _local3) + "'/>";
at[_local2] = "";
} else if (_local2 < 128) {
et[_local2] = chr(_local2);
at[_local2] = chr(_local2);
} else {
et[_local2] = ("&#x" + _local2.toString(16)) + ";";
etRev[("&#x" + _local2.toString(16)) + ";"] = chr(_local2);
at[_local2] = ("&#x" + _local2.toString(16)) + ";";
atRev[("&#x" + _local2.toString(16)) + ";"] = chr(_local2);
}
_local2++;
}
et[60] = "<";
et[62] = ">";
et[38] = "&";
etRev["<"] = "<";
etRev[">"] = ">";
etRev["&"] = "&";
at[60] = "<";
at[62] = ">";
at[38] = "&";
at[39] = "'";
at[34] = """;
atRev["<"] = "<";
atRev[">"] = ">";
atRev["&"] = "&";
atRev["'"] = "'";
atRev["""] = "\"";
var _local4 = new Date().getTimezoneOffset();
if (_local4 >= 0) {
timezoneString = "-";
} else {
timezoneString = "+";
}
timezoneString = timezoneString + ((Math.floor(Math.abs(_local4) / 60) + ":") + (Math.abs(_local4) % 60));
}
static function serialize(rootObj) {
var _local4 = new com.neodelight.wddx.Wddx();
var _local2 = new XML();
var _local3 = new XML();
_local3.appendChild(_local2.createElement("wddxPacket"));
var _local1 = _local3.firstChild;
_local1.attributes.version = "1.0";
_local1.appendChild(_local2.createElement("header"));
_local1.appendChild(_local2.createElement("data"));
if (_local4.serializeValue(rootObj, _local1.childNodes[1])) {
return(_local3.toString());
}
return(null);
}
function serializeValue(obj, node) {
var _local4 = true;
var _local6 = obj.valueOf();
var _local9 = null;
var _local7 = new XML();
if (obj == null) {
node.appendChild(_local7.createElement("null"));
} else if (typeof(_local6) == "string") {
serializeString(_local6, node);
} else if (typeof(_local6) == "number") {
if (typeof(obj.getTimezoneOffset) == "function") {
if (useTimezoneInfo) {
_local9 = timezoneString;
}
node.appendChild(_local7.createElement("dateTime"));
node.lastChild.appendChild(_local7.createTextNode(((((((((((obj.getFullYear() + "-") + (obj.getMonth() + 1)) + "-") + obj.getDate()) + "T") + obj.getHours()) + ":") + obj.getMinutes()) + ":") + obj.getSeconds()) + _local9));
} else {
node.appendChild(new XML().createElement("number"));
node.lastChild.appendChild(new XML().createTextNode(_local6));
}
} else if (typeof(_local6) == "boolean") {
node.appendChild(_local7.createElement("boolean"));
node.lastChild.attributes.value = _local6;
} else if (typeof(obj) == "object") {
if (typeof(obj.wddxSerialize) == "function") {
_local4 = obj.wddxSerialize(this, node);
} else if ((typeof(obj.join) == "function") && (typeof(obj.reverse) == "function")) {
node.appendChild(_local7.createElement("array"));
node.lastChild.attributes.length = obj.length;
var _local3 = 0;
while (_local4 && (_local3 < obj.length)) {
_local4 = serializeValue(obj[_local3], node.lastChild);
_local3++;
}
} else {
node.appendChild(_local7.createElement("struct"));
if (typeof(obj.wddxSerializationType) == "string") {
node.lastChild.attributes.type = obj.wddxSerializationType;
}
for (var _local8 in obj) {
if (_local8 != "wddxSerializationType") {
_local4 = serializeVariable(_local8, obj[_local8], node.lastChild);
if (!_local4) {
break;
}
}
}
}
} else {
_local4 = false;
}
return(_local4);
}
function serializeVariable(vname, obj, node) {
var _local2 = true;
var _local3 = new XML();
if (typeof(obj) != "function") {
node.appendChild(_local3.createElement("var"));
node.lastChild.attributes.name = (preserveVarCase ? (serializeAttr(vname)) : (serializeAttr(vname.toLowerCase())));
_local2 = serializeValue(obj, node.lastChild);
}
return(_local2);
}
function serializeString(s, node) {
var _local3 = "";
var _local6 = new XML();
var _local4 = s.length;
node.appendChild(_local6.createElement("string"));
var _local2 = 0;
while (_local2 < _local4) {
_local3 = _local3 + et[ord(s.substring(_local2, _local2 + 1))];
_local2++;
}
node.lastChild.appendChild(_local6.createTextNode(_local3));
}
function serializeAttr(s) {
var _local3 = "";
var _local4 = s.length;
var _local2 = 0;
while (_local2 < _local4) {
_local3 = _local3 + at[ord(s.substring(_local2, _local2 + 1))];
_local2++;
}
return(_local3);
}
static function deserialize(xmlString) {
var _local6 = new com.neodelight.wddx.Wddx();
var _local2 = new XML(xmlString);
var _local4 = new XML();
var _local3 = new Array();
var _local5 = new Object();
while (_local2.nodeName == null) {
_local2 = _local2.firstChild;
}
_local4 = _local2;
if (_local4.nodeName.toLowerCase() == "wddxpacket") {
_local3 = _local4.childNodes;
var _local1 = 0;
while ((_local3[_local1].nodeName.toLowerCase() != "data") && (_local1 < _local3.length)) {
_local1++;
}
if (_local1 < _local3.length) {
_local5 = _local6.deserializeNode(_local3[_local1].firstChild);
return(_local5);
}
return(null);
}
return(null);
}
function deserializeNode(node) {
var _local9 = node.nodeName.toLowerCase();
if (_local9 == "number") {
var _local7 = node.firstChild.nodeValue;
return(Number(_local7));
}
if (_local9 == "boolean") {
var _local7 = String(node.attributes.value).toLowerCase() == "true";
return(_local7);
}
if (_local9 == "string") {
if (node.childNodes.length > 1) {
var _local7 = "";
var _local4 = 0;
_local4 = 0;
while (_local4 < node.childNodes.length) {
if (node.childNodes[_local4].nodeType == 3) {
_local7 = _local7 + deserializeString(node.childNodes[_local4].nodeValue);
} else if (node.childNodes[_local4].nodeName == "char") {
_local7 = _local7 + chr(parseInt(node.childNodes[_local4].attributes.code, 16));
}
_local4++;
}
} else {
var _local7 = deserializeString(node.firstChild.nodeValue);
}
return(_local7);
}
if (_local9 == "array") {
var _local7 = new Array();
var _local16 = 0;
var _local4 = 0;
while (_local4 < node.attributes.length) {
_local7[_local4] = deserializeNode(node.childNodes[_local4].cloneNode(true));
_local4++;
}
return(_local7);
}
if (_local9 == "datetime") {
var _local10 = node.firstChild.nodeValue;
var _local13 = _local10.indexOf("T");
var _local8 = _local10.indexOf("+");
var _local11 = new Array();
var _local12 = new Array();
var _local14 = new Array();
var _local7 = new Date();
if (_local8 == -1) {
_local8 = _local10.lastIndexOf("-");
if (_local8 < _local13) {
_local8 = -1;
}
}
_local11 = _local10.slice(0, _local13).split("-");
_local12 = _local10.slice(_local13 + 1, _local8).split(":");
_local14 = _local10.slice(_local8).split(":");
_local7.setFullYear(parseInt(_local11[0]), parseInt(_local11[1]) - 1, parseInt(_local11[2]));
_local7.setHours(parseInt(_local12[0]), parseInt(_local12[1]));
if (_local8 != -1) {
var _local15 = (parseInt(_local14[0]) * 60) + parseInt(_local14[1]);
_local7.setMinutes(_local7.getMinutes() - (_local7.getTimezoneOffset() + _local15));
}
return(_local7);
}
if (_local9 == "struct") {
var _local7 = new Object();
var _local4 = 0;
while (_local4 < node.childNodes.length) {
if (node.childNodes[_local4].nodeName.toLowerCase() == "var") {
_local7[deserializeAttr(node.childNodes[_local4].attributes.name)] = deserializeNode(node.childNodes[_local4].firstChild);
}
_local4++;
}
return(_local7);
}
if (_local9 == "recordset") {
var _local7 = new com.neodelight.wddx.WddxRecordSet(node.attributes.fieldNames.split(",").reverse(), parseInt(node.attributes.rowCount));
var _local4 = node.childNodes.length - 1;
while (_local4 >= 0) {
if (node.childNodes[_local4].nodeName.toLowerCase() == "field") {
var _local5 = deserializeAttr(node.childNodes[_local4].attributes.name);
_local7[_local5].wddxSerializationType = "field";
var _local3 = node.childNodes[_local4].childNodes.length - 1;
while (_local3 >= 0) {
_local7[_local5][_local3] = new Object();
var _local6 = deserializeNode(node.childNodes[_local4].childNodes[_local3]);
_local7.setField(_local3, _local5, _local6);
_local3--;
}
}
_local4--;
}
return(_local7);
}
}
function deserializeAttr(attr) {
return(attr);
while (_local3 < _local7) {
var _local2 = attr.substring(_local3 + 1, 1);
if (_local2 == "&") {
var _local4 = _local2;
do {
_local2 = attr.substring(_local3, _local3 + 1);
_local4 = _local4 + _local2;
_local3++;
} while (_local2 != ";");
var _local6 = _local6 + atRev[_local4];
} else {
var _local6 = _local6 + _local2;
}
_local3++;
}
return(_local6);
}
function deserializeString(str) {
return(str);
while (_local3 < _local7) {
var _local2 = str.substring(_local3 + 1, 1);
if (_local2 == "&") {
var _local4 = _local2;
do {
_local3++;
_local2 = str.substring(_local3, _local3 + 1);
_local4 = _local4 + _local2;
} while (_local2 != ";");
var _local6 = _local6 + etRev[_local4];
} else {
var _local6 = _local6 + _local2;
}
_local3++;
}
return(_local6);
}
var et = null;
var etRev = null;
var at = null;
var atRev = null;
var timezoneString = null;
var preserveVarCase = null;
var useTimezoneInfo = null;
var wddxPacket = null;
}
Symbol 495 MovieClip [__Packages.com.neodelight.wddx.WddxRecordSet] Frame 0
class com.neodelight.wddx.WddxRecordSet
{
function WddxRecordSet () {
preserveFieldCase = true;
var _local8;
if (arguments.length > 0) {
_local8 = arguments[0].valueOf();
if (typeof(_local8) == "boolean") {
preserveFieldCase = arguments[0];
} else {
var _local7 = arguments[0];
var _local6 = 0;
if (arguments.length > 1) {
_local8 = arguments[1].valueOf();
if (typeof(_local8) == "boolean") {
preserveFieldCase = arguments[1];
} else {
_local6 = arguments[1];
if (arguments.length > 2) {
preserveFieldCase = arguments[2];
}
}
}
var _local4 = 0;
while (_local4 < _local7.length) {
var _local5 = new Array(_local6);
var _local3 = 0;
while (_local3 < _local6) {
_local5[_local3] = null;
_local3++;
}
this[(preserveFieldCase ? (_local7[_local4]) : (_local7[_local4].toLowerCase()))] = _local5;
_local4++;
}
}
}
}
function duplicate() {
var _local3 = new com.neodelight.wddx.WddxRecordSet();
var _local2;
for (_local2 in this) {
if (_local2.toUpperCase() == "PRESERVEFIELDCASE") {
_local3[_local2] = this[_local2];
} else if (this[_local2].isColumn()) {
_local3.addColumn(_local2);
for (var _local4 in this[_local2]) {
_local3.setField(_local4, _local2, getField(_local4, _local2));
}
}
}
return(_local3);
}
function isColumn(name) {
return((typeof(this[name]) == "object") && (name.indexOf("_private_") == -1));
}
function getRowCount() {
var _local2 = 0;
for (var _local3 in this) {
if (isColumn(_local3)) {
_local2 = this[_local3].length;
break;
}
}
return(_local2);
}
function addColumn(name) {
var _local4 = getRowCount();
var _local3 = new Array(_local4);
var _local2 = 0;
while (_local2 < _local4) {
_local3[_local2] = null;
_local2++;
}
this[(preserveFieldCase ? (name) : (name.toLowerCase()))] = _local3;
}
function addRows(n) {
for (var _local5 in this) {
if (isColumn(_local5)) {
var _local3 = this[_local5].length;
var _local2 = _local3;
while (_local2 < (_local3 + n)) {
this[_local5][_local2] = "";
_local2++;
}
}
}
}
function getField(row, col) {
return(this[(preserveFieldCase ? (col) : (col.toLowerCase()))][row]);
}
function setField(row, col, value) {
this[(preserveFieldCase ? (col) : (col.toLowerCase()))][row] = value;
}
function wddxSerialize(serializer, node) {
var _local7 = "";
var _local8 = new Array();
var _local4 = 0;
for (var _local11 in this) {
if (isColumn(_local11)) {
_local8[_local4++] = _local11;
if (_local7.length > 0) {
_local7 = _local7 + ",";
}
_local7 = _local7 + _local11;
}
}
var _local9 = getRowCount();
node.appendChild(new XML().createElement("recordset"));
node.lastChild.attributes.rowCount = _local9;
node.lastChild.attributes.fieldNames = _local7;
var _local3 = true;
_local4 = 0;
while (_local3 && (_local4 < _local8.length)) {
var _local5 = _local8[_local4];
node.lastChild.appendChild(new XML().createElement("field"));
node.lastChild.lastChild.attributes.name = _local5;
var _local2 = 0;
while (_local3 && (_local2 < _local9)) {
_local3 = serializer.serializeValue(this[_local5][_local2], node.lastChild.lastChild);
_local2++;
}
_local4++;
}
return(_local3);
}
var preserveFieldCase = null;
}
Symbol 496 MovieClip [__Packages.com.neodelight.mdm.MdmFile] Frame 0
class com.neodelight.mdm.MdmFile
{
var bufferPath, bufferOut, f;
function MdmFile (action, path, data) {
if (!(action === "append")) {
} else {
_root.stdout = _root.stdout + "worker..\n";
bufferPath = path;
bufferOut = data;
delayedAppend.parent = this;
_global.mdm.fileexists(path, delayedAppend);
}
}
static function save(path, data) {
data = com.neodelight.std.XString.replace(",", "@c@", data);
_global.mdm.savetofile(path, data);
}
static function append(path, dat) {
_root.stdout = _root.stdout + "append()\n";
dat = com.neodelight.std.XString.replace(",", "@c@", dat);
var _local3 = new com.neodelight.mdm.MdmFile("append", path, dat);
}
function delayedAppend(fileExists) {
var _local4 = f.parent.bufferPath;
var _local5 = f.parent.bufferOut;
_root.stdout = _root.stdout + ((((((" delayedAppend(): fileExists=" + fileExists) + ", bufferPath=") + _local4) + ", bufferOut=") + _local5) + newline);
_root.stdout = _root.stdout + com.neodelight.std.XString.dump(this, {depth:2});
if (fileExists == "true") {
_global.mdm.appendtofile(_local4, _local5);
} else {
_global.mdm.savetofile(_local4, _local5);
}
}
}
Symbol 497 MovieClip [__Packages.com.neodelight.std.Timer] Frame 0
class com.neodelight.std.Timer
{
var config, t, msPerFrame, smoothing;
function Timer (config) {
_global.dt = 1;
this.config = config;
t = getTimer();
msPerFrame = (this.config.timerFps ? (1000 / this.config.timerFps) : 33.3333333333333);
smoothing = Math.min(1, Math.max(0, com.neodelight.std.XMath.toNumber(this.config.timerSmoothing)));
}
function update() {
var _local3 = getTimer();
_global.dt = (smoothing * _global.dt) + (((1 - smoothing) * (_local3 - t)) / msPerFrame);
t = _local3;
}
}
Symbol 498 MovieClip [__Packages.com.neodelight.std.Inputs] Frame 0
class com.neodelight.std.Inputs
{
static var hookMc, vMouseA, vMouseVMax, vMouseXMin, vMouseXMax, vMouseYMin, vMouseYMax;
function Inputs () {
}
static function init() {
if (!inited) {
inited = true;
var _local6 = com.neodelight.std.Blueprint.getBlueprint("inputs");
if (_local6) {
var _local3 = _local6.inputsKeys;
if (_local3) {
var _local2 = _local3.length;
while (_local2--) {
define(_local3[_local2][0], _local3[_local2][1]);
}
}
}
Mouse.addListener(com.neodelight.std.Inputs);
}
if (!hookMc) {
var _local5 = (hookMc = _root.createEmptyMovieClip(com.neodelight.std.Unique.getKey(), _root.getNextHighestDepth()));
_local5.onEnterFrame = function () {
com.neodelight.std.Inputs.updateInputs();
if (com.neodelight.std.Inputs.isDown("mouse_click")) {
com.neodelight.std.Inputs.hookMc.onMouseDown();
}
if (com.neodelight.std.Inputs.isTriggeredUp("mouse_click")) {
com.neodelight.std.Inputs.hookMc.onMouseUp();
}
};
_local5.onMouseDown = function () {
var _local2 = com.neodelight.std.Inputs.listeners;
var _local1 = _local2.length;
while (_local1--) {
if (_local2[_local1].onVMouseDown) {
_local2[_local1].onVMouseDown();
}
}
};
_local5.onMouseUp = function () {
var _local2 = com.neodelight.std.Inputs.listeners;
var _local1 = _local2.length;
while (_local1--) {
if (_local2[_local1].onVMouseUp) {
_local2[_local1].onVMouseUp();
}
}
};
}
}
static function define(id, key) {
init();
trace(((("define: \"" + key) + "\" as \"") + id) + "\"");
switch (typeof(key)) {
case "string" :
var _local2 = String(key).length;
while (_local2--) {
define(id, String(key).charCodeAt(_local2));
}
break;
case "number" :
if (!inputs[id]) {
inputs[id] = {isDown:false, triggerDown:false, triggerUp:false, keys:new Array()};
}
inputs[id].keys.push(key);
break;
default :
_global.bin.syslog("Inputs", "define(): unknown variable type: " + typeof(key), 2);
}
}
static function setVirtual(id, isDown) {
vKeysDown[id] = isDown;
}
static function triggerVirtual(id, sustain) {
vKeysDown[id] = true;
vKeysReset.push({id:id, sustain:int(sustain)});
}
static function addListener(listener) {
init();
var _local2 = listeners;
var _local3 = false;
var _local1 = _local2.length;
while (_local1--) {
if (_local2[_local1] == listener) {
_local3 = true;
break;
}
}
if (!_local3) {
_local2.push(listener);
}
}
static function removeListener(listener) {
var _local2 = listeners;
var _local4 = false;
var _local1 = _local2.length;
while (_local1--) {
if (_local2[_local1] == listener) {
_local2.splice(_local1, 1);
break;
}
}
}
static function updateInputs() {
var _local9 = inputs;
var _local7 = vKeysReset;
var _local8 = vKeysDown;
for (var _local10 in _local9) {
var _local3 = _local9[_local10];
var _local2 = false;
var _local5 = _local3.keys;
var _local4 = _local5.length;
while (_local4--) {
var _local1 = _local5[_local4];
if (_local1 < 256) {
if (Key.isDown(_local1)) {
_local2 = true;
break;
}
} else if (_local8[_local1]) {
_local2 = true;
break;
}
}
_local3.triggerDown = (!_local3.isDown) && (_local2);
_local3.triggerUp = _local3.isDown && (!_local2);
_local3.isDown = _local2;
}
var _local6 = _local7.length;
while (_local6--) {
if ((--_local7[_local6].sustain) <= 0) {
_local8[Number(_local7[_local6].id)] = false;
_local7.splice(_local6, 1);
}
}
}
static function isDown(id) {
return((!locked) && (inputs[id].isDown));
}
static function isTriggeredDown(id) {
return((!locked) && (inputs[id].triggerDown));
}
static function isTriggeredUp(id) {
return((!locked) && (inputs[id].triggerUp));
}
static function getMousePos(mc) {
var _local6;
if (vMouse) {
var _local2 = vMouseV;
var _local3 = vMousePos;
var _local4 = vMouseReal;
if ((_local4.x != int(_root._xmouse)) || (_local4.y != int(_root._ymouse))) {
_local4.x = (_local3.x = int(_root._xmouse));
_local4.y = (_local3.y = int(_root._ymouse));
} else {
if (isDown("mouse_right")) {
_local2.x = Math.max(0, _local2.x + vMouseA);
} else if (isDown("mouse_left")) {
_local2.x = Math.min(0, _local2.x - vMouseA);
} else {
_local2.x = 0;
}
if (isDown("mouse_down")) {
_local2.y = Math.max(0, _local2.y + vMouseA);
} else if (isDown("mouse_up")) {
_local2.y = Math.min(0, _local2.y - vMouseA);
} else {
_local2.y = 0;
}
if ((_local2.x != 0) || (_local2.y != 0)) {
var _local5 = Math.min(vMouseVMax, Math.max(Math.abs(_local2.x), Math.abs(_local2.y)));
if (_local2.x != 0) {
if (_local2.x > 0) {
_local2.x = _local5;
} else {
_local2.x = _local5 * -1;
}
}
if (_local2.y != 0) {
if (_local2.y > 0) {
_local2.y = _local5;
} else {
_local2.y = _local5 * -1;
}
}
}
_local3.x = Math.max(vMouseXMin, Math.min(vMouseXMax, _local3.x + _local2.x));
_local3.y = Math.max(vMouseYMin, Math.min(vMouseYMax, _local3.y + _local2.y));
}
_local6 = new com.neodelight.std.Vector(_local3.x, _local3.y);
mc.globalToLocal(_local6);
} else {
_local6 = new com.neodelight.std.Vector(mc._xmouse, mc._ymouse);
}
return(_local6);
}
static function initVMouse(cfg) {
vMouseReal.x = (vMousePos.x = int(_root._xmouse));
vMouseReal.y = (vMousePos.y = int(_root._ymouse));
vMouseA = (cfg.acc ? (com.neodelight.std.XMath.toNumber(cfg.acc)) : 1);
vMouseVMax = (cfg.vMax ? (com.neodelight.std.XMath.toNumber(cfg.vMax)) : 10);
vMouseXMin = (cfg.xMin ? (com.neodelight.std.XMath.toNumber(cfg.xMin)) : 0);
vMouseXMax = (cfg.xMax ? (com.neodelight.std.XMath.toNumber(cfg.xMax)) : 550);
vMouseYMin = (cfg.yMin ? (com.neodelight.std.XMath.toNumber(cfg.yMin)) : 0);
vMouseYMax = (cfg.yMax ? (com.neodelight.std.XMath.toNumber(cfg.yMax)) : 400);
vMouse = true;
init();
}
static function onMouseDown() {
setVirtual(MOUSE_BUTTON, true);
}
static function onMouseUp() {
setVirtual(MOUSE_BUTTON, false);
}
static var inputs = new Object();
static var listeners = new Array();
static var locked = false;
static var vKeysDown = new Object();
static var vKeysReset = new Array();
static var vMouse = false;
static var vMouseKeys = new Object();
static var vMousePos = new com.neodelight.std.Vector();
static var vMouseV = new com.neodelight.std.Vector(0, 0);
static var vMouseReal = new com.neodelight.std.Vector();
static var inited = false;
static var KEY_BACKSPACE = 8;
static var KEY_CAPSLOCK = 20;
static var KEY_CONTROL = 17;
static var KEY_DELETEKEY = 46;
static var KEY_DOWN = 40;
static var KEY_END = 35;
static var KEY_ENTER = 13;
static var KEY_ESCAPE = 27;
static var KEY_HOME = 36;
static var KEY_INSERT = 45;
static var KEY_LEFT = 37;
static var KEY_PGDN = 34;
static var KEY_PGUP = 33;
static var KEY_RIGHT = 39;
static var KEY_SHIFT = 16;
static var KEY_SPACE = 32;
static var KEY_TAB = 9;
static var KEY_UP = 38;
static var JOY_UP = 400;
static var JOY_DOWN = 401;
static var JOY_LEFT = 402;
static var JOY_RIGHT = 403;
static var JOY_BUTTON0 = 404;
static var JOY_BUTTON1 = 405;
static var MOUSE_BUTTON = 406;
}
Symbol 499 MovieClip [__Packages.com.neodelight.std.Analyzer] Frame 0
class com.neodelight.std.Analyzer
{
var mc, timeStampStepIn;
function Analyzer (smoothing, mode) {
mc = _root.createEmptyMovieClip("Analyzer" + count, _root.getNextHighestDepth());
mc.timestamp = getTimer();
if (isNaN(smoothing)) {
smoothing = 0;
}
mc.smoothing = Math.min(1, Math.max(0, smoothing));
mc.createTextField("my_txt", 1, 50 + (count * 50), 0, 50, 20);
count++;
mc.my_txt.multiline = false;
mc.my_txt.wordWrap = false;
mc.my_txt.type = "dynamic";
mc.my_txt.variable = "anadisplay";
mc.my_txt.selectable = false;
mc.my_txt.border = true;
mc.my_txt.background = true;
mc.counted = 0;
mc.dt = 30;
mc.avgIntime = 0;
mc.sumIntime = 0;
switch (mode) {
case 1 :
mc.onEnterFrame = function () {
if (!this.counted) {
return(undefined);
}
this.sumIntime = this.sumIntime / this.counted;
this.avgIntime = (this.smoothing * this.avgIntime) + ((1 - this.smoothing) * this.sumIntime);
this.sumIntime = 0;
this.anadisplay = ((Math.round(((this.avgIntime / this.dt) * 100) * 100) * 0.01) + "X") + this.counted;
this.counted = 0;
};
break;
default :
mc.onEnterFrame = function () {
var _local2 = getTimer();
this.dt = ((1 - this.smoothing) * (_local2 - this.timestamp)) + (this.smoothing * this.dt);
this.timestamp = _local2;
if (!this.counted) {
return(undefined);
}
this.avgIntime = (this.smoothing * this.avgIntime) + ((1 - this.smoothing) * this.sumIntime);
this.sumIntime = 0;
this.counted = 0;
this.anadisplay = "%" + (Math.round(((this.avgIntime / this.dt) * 100) * 10) * 0.1);
};
}
}
function startCount() {
timeStampStepIn = getTimer();
}
function stopCount() {
mc.sumIntime = mc.sumIntime + (getTimer() - timeStampStepIn);
mc.counted++;
}
static var count = 0;
}
Symbol 500 MovieClip [__Packages.com.neodelight.r2d.R2dLevel] Frame 0
class com.neodelight.r2d.R2dLevel
{
var title, colLine, colFill, skin, groundY, ice, challenge, challengePart, challengePartFrame, startX, startY, xtras, initLookDir, map;
function R2dLevel (config) {
title = config.title;
colLine = config.colLine;
colFill = config.colFill;
skin = int(config.skin);
groundY = config.groundY;
ice = 1;
challenge = (config.challenge ? (config.challenge) : 12000);
challengePart = (config.challengePart ? (config.challengePart) : 4);
challengePartFrame = (config.challengePartFrame ? (config.challengePartFrame) : 2);
startX = int(config.startX);
startY = int(config.startY);
xtras = config.xtras;
initLookDir = ((config.initLookDir == 1) ? 1 : -1);
switch (skin) {
case 0 :
ice = 0;
colLine = 8276760 /* 0x7E4B18 */;
colFill = 11759139 /* 0xB36E23 */;
break;
case 1 :
ice = 1;
colLine = 16449278 /* 0xFAFEFE */;
colFill = 12121084 /* 0xB8F3FC */;
break;
case 2 :
ice = 0;
colLine = 10929199 /* 0xA6C42F */;
colFill = 3355392 /* 0x333300 */;
break;
}
var _local10 = config.map;
for (var _local12 in _local10) {
var _local2 = _local10[_local12];
var _local8 = _local2[0][0];
var _local7 = _local2[0][1];
var _local4 = Number.NEGATIVE_INFINITY;
var _local3 = Number.NEGATIVE_INFINITY;
for (var _local11 in _local2) {
if (_local11 == 0) {
_local2[0][2] = _local4 + _local2[0][0];
_local2[0][3] = _local3 + _local2[0][1];
} else {
if (_local2[_local11][0] > _local4) {
_local4 = _local2[_local11][0];
}
if (_local2[_local11][1] > _local3) {
_local3 = _local2[_local11][1];
}
}
}
var _local6 = Number.POSITIVE_INFINITY;
var _local5 = Number.POSITIVE_INFINITY;
for (var _local11 in _local2) {
if (_local11 == 0) {
_local2[0][0] = _local6 + _local2[0][0];
_local2[0][1] = _local5 + _local2[0][1];
} else {
if (_local2[_local11][0] < _local6) {
_local6 = _local2[_local11][0];
}
if (_local2[_local11][1] < _local5) {
_local5 = _local2[_local11][1];
}
}
}
_local2[0][4] = _local8;
_local2[0][5] = _local7;
}
map = _local10;
}
}
Symbol 501 MovieClip [__Packages.com.neodelight.std.FpsCounter] Frame 0
class com.neodelight.std.FpsCounter
{
var mc;
function FpsCounter (smoothing, x, y) {
if (x == undefined) {
x = 0;
}
if (y == undefined) {
y = 0;
}
mc = _root.createEmptyMovieClip("fpsCounter", _root.getNextHighestDepth());
mc.timestamp = getTimer();
if (isNaN(smoothing)) {
smoothing = 0.9;
}
mc.smoothing = Math.min(1, Math.max(0, smoothing));
mc.createTextField("my_txt", 1, x, y, 30, 20);
mc.my_txt.multiline = false;
mc.my_txt.wordWrap = false;
mc.my_txt.type = "dynamic";
mc.my_txt.variable = "display";
mc.my_txt.selectable = false;
mc.my_txt.border = true;
mc.my_txt.background = true;
mc.onEnterFrame = function () {
var _local2 = getTimer();
var _local3 = 1000 / (_local2 - this.timestamp);
if (isNaN(this.fps)) {
this.fps = _local3;
} else {
this.fps = ((1 - this.smoothing) * _local3) + (this.smoothing * this.fps);
}
this.display = Math.round(this.fps * 10) * 0.1;
this.timestamp = _local2;
};
}
}
Symbol 502 MovieClip [__Packages.com.neodelight.mdm.DirectX] Frame 0
class com.neodelight.mdm.DirectX
{
static var width, height, depth;
function DirectX () {
}
static function setResolution(x, y, d) {
com.neodelight.flanix.Kernel.init();
if ((!((((((x == 320) && (y == 240)) || ((x == 400) && (y == 300))) || ((x == 640) && (y == 480))) || ((x == 800) && (y == 600))) || ((x == 1024) && (y == 768)))) || (!((d == 16) || (d == 32)))) {
_global.bin.syslog("Mdm", (((("DirectX: setResolution(): Illegal Resolution! " + x) + ", ") + y) + ", ") + d, 3);
return(undefined);
}
if (((width == x) && (height == y)) && (depth == d)) {
_global.bin.syslog("Mdm", (((("DirectX: setResolution(): Alread set! " + x) + ", ") + y) + ", ") + d, 1);
return(undefined);
}
_global.bin.syslog("Mdm", (((_root.mdm_display_width + "/") + _root.mdm_display_height) + ":") + _root.mdm_display_depth);
_global.bin.syslog("Mdm", (((("DirectX: setResolution(): " + x) + ", ") + y) + ", ") + d);
_global.mdm.setdxres(x, y, d);
_global.mdm.size(x, y);
width = x;
height = y;
depth = d;
_global.mdm.getresolution("mdm_display_height", "mdm_display_width", "mdm_display_depth");
_global.bin.syslog("Mdm", (((_root.mdm_display_width + "/") + _root.mdm_display_height) + ":") + _root.mdm_display_depth);
_root.onAppChangeFocus = function (focussed) {
if (focussed == "true") {
com.neodelight.mdm.DirectX.restoreResolution();
_global.paused = false;
} else {
_global.bin.syslog("Mdm", "onAppChangeFocus(): lose focus");
_global.paused = true;
}
};
}
static function getResolutionString() {
return((((width + "x") + height) + "x") + depth);
}
static function setFullScreen() {
_global.mdm.size(width, height);
}
static function restoreResolution() {
_global.bin.syslog("Mdm", "onAppChangeFocus(): regain focus -> restore DirectX resolution");
_global.mdm.setdxres(width, height, depth);
}
static var focussed = true;
}
Symbol 503 MovieClip [__Packages.com.neodelight.r2d.R2d] Frame 0
class com.neodelight.r2d.R2d
{
var lvl, worldTileX, worldTileY, worldX, worldY, mc, fx, springs, timeStart, xtras, player, map, lines, linesLen, cameraX, cameraY, freeze, hopSustain, hopLock, hopSoundLock, accTilt, idleTimer, matrix, texture, sndDrive, pushCount;
function R2d () {
_root.engine = this;
var _local12 = (lvl = _global.lib.lvls[_global.game.actLevel]);
worldTileX = Number.NEGATIVE_INFINITY;
worldTileY = Number.NEGATIVE_INFINITY;
worldX = lvl.startX - 275;
worldY = lvl.startY - 250;
_root.createEmptyMovieClip("gameMc", 0);
mc = _root.gameMc;
fx = new com.neodelight.std.ColorFader(mc);
mc.attachMovie("background", "backgroundMc", 0);
mc.createEmptyMovieClip("bg", 2);
mc.attachMovie("wheel", "wheel1", 12, {_x:179, _y:230, _rotation:random(360)});
mc.attachMovie("wheel", "wheel2", 13, {_x:371, _y:230, _rotation:random(360)});
mc.attachMovie("body", "body", 14, {_x:275, _y:250});
mc.createEmptyMovieClip("driver", 15);
mc.driver._visible = false;
mc.createEmptyMovieClip("xtrasMc", 1);
mc.attachMovie("leg1", "leg1b", 8);
mc.leg1b.col = new Color(mc.leg1b);
mc.leg1b.col.setTransform({ra:80, rb:0, ga:80, gb:0, ba:80, bb:0, aa:100, ab:0});
mc.attachMovie("leg2", "leg2b", 9);
mc.leg2b.col = new Color(mc.leg2b);
mc.leg2b.col.setTransform({ra:80, rb:0, ga:80, gb:0, ba:80, bb:0, aa:100, ab:0});
mc.driver.attachMovie("torso", "torso", 10);
mc.driver.attachMovie("leg1", "leg1", 11);
mc.driver.attachMovie("leg2", "leg2", 12);
mc.driver.attachMovie("arm1", "arm1", 14);
mc.driver.attachMovie("arm2", "arm2", 15);
newForce(mc.wheel1, 235, 230);
newForce(mc.wheel2, 315, 230);
var _local6;
mc.anchor0 = {};
_local6 = {x:mc.body.a0._x, y:mc.body.a0._y};
mc.body.localToGlobal(_local6);
newForce(mc.anchor0, _local6.x, _local6.y, true);
mc.anchor1 = {};
_local6 = {x:mc.body.a1._x, y:mc.body.a1._y};
mc.body.localToGlobal(_local6);
newForce(mc.anchor1, _local6.x, _local6.y);
mc.anchor2 = {};
_local6 = {x:mc.body.a2._x, y:mc.body.a2._y};
mc.body.localToGlobal(_local6);
newForce(mc.anchor2, _local6.x, _local6.y, true);
mc.anchor2b = {};
_local6 = {x:mc.body.a2b._x, y:mc.body.a2b._y};
mc.body.localToGlobal(_local6);
newForce(mc.anchor2b, _local6.x, _local6.y, true);
mc.driver0 = {};
_local6 = {x:mc.body.r0._x, y:mc.body.r0._y};
mc.body.localToGlobal(_local6);
newForce(mc.driver0, _local6.x, _local6.y);
mc.driver1 = {};
_local6 = {x:mc.body.r1._x, y:mc.body.r1._y};
mc.body.localToGlobal(_local6);
newForce(mc.driver1, _local6.x, _local6.y);
mc.driver2 = {};
_local6 = {x:mc.body.r2._x, y:mc.body.r2._y};
mc.body.localToGlobal(_local6);
newForce(mc.driver2, _local6.x, _local6.y);
mc.driver2b = {};
_local6 = {x:mc.body.r2b._x, y:mc.body.r2b._y};
mc.body.localToGlobal(_local6);
newForce(mc.driver2b, _local6.x, _local6.y);
mc.driver2b;
springs = [[mc.wheel1, mc.wheel2], [mc.driver0, mc.anchor0], [mc.driver1, mc.anchor0], [mc.driver0, mc.driver1], [mc.anchor1, mc.driver1], [mc.driver0, mc.anchor1], [mc.anchor1, mc.driver2], [mc.anchor1, mc.driver2b], [mc.driver2, mc.anchor2][mc.anchor2b]];
for (var _local7 in springs) {
var _local4 = springs[_local7];
var _local9 = _local4[0].x - _local4[1].x;
var _local8 = _local4[0].y - _local4[1].y;
_local4[2] = int(Math.sqrt((_local9 * _local9) + (_local8 * _local8)) * 100) / 100;
}
mc.attachMovie("hud", "hud", 18);
mc.hud._x = 0;
mc.hud._y = 0;
timeStart = getTimer();
_global.tagCount = 0;
_global.numberOfTags = 0;
xtras = new Array(lvl.xtras.length);
var _local7 = lvl.xtras.length;
while (_local7--) {
var _local5 = lvl.xtras[_local7];
if (_local5[2] == 2) {
_global.numberOfTags++;
}
xtras[_local7] = [_local5[0], _local5[1], _local5[2], null, false, false];
}
var _local11 = (player = {});
_local11.vel = 0;
_local11.dir = 1;
_local11.pedalPos = 0;
_local11.tilt = 0;
_local11.dead = 0;
_local11.ducking = 0;
var _local10 = _root.shared;
mc.driver.torso.head.gotoAndStop(_local10.data.bikeProperties[0]);
mc.driver.torso.gotoAndStop(_local10.data.bikeProperties[1]);
mc.driver.arm1.gotoAndStop(_local10.data.bikeProperties[1]);
mc.driver.arm2.gotoAndStop(_local10.data.bikeProperties[1]);
mc.driver.torso.pants.gotoAndStop(_local10.data.bikeProperties[2]);
mc.driver.leg1.gotoAndStop(_local10.data.bikeProperties[2]);
mc.driver.leg2.gotoAndStop(_local10.data.bikeProperties[2]);
mc.leg1b.gotoAndStop(_local10.data.bikeProperties[2]);
mc.leg2b.gotoAndStop(_local10.data.bikeProperties[2]);
mc.wheel1.gotoAndStop(_local10.data.bikeProperties[3]);
mc.wheel2.gotoAndStop(_local10.data.bikeProperties[3]);
mc.body.gotoAndStop(_local10.data.bikeProperties[4]);
if (!(_local10.data.bikeProperties[4] === 1)) {
} else {
_local11.maxVel = ((1 - _local12.ice) * 10) + (_local12.ice * 5);
_local11.acc1 = ((1 - _local12.ice) * 1.6) + (_local12.ice * 0.8);
_local11.acc2 = 0.4;
_local11.minVel = ((1 - _local12.ice) * -8) + (_local12.ice * -4);
}
map = [];
lines = new Array(200);
_local7 = 0;
while (_local7 < 200) {
lines[_local7] = [0, 0, 0, 0];
_local7++;
}
linesLen = 0;
cameraX = 0;
cameraY = 0;
freeze = 0;
hopSustain = 0;
hopLock = 0;
hopSoundLock = 0;
accTilt = 0.023;
_root.keySpace = true;
mc.backgroundMc.gotoAndStop(lvl.skin + 1);
idleTimer = -1;
_root.inGame = true;
matrix = new flash.geom.Matrix();
texture = flash.display.BitmapData.loadBitmap("texture" + lvl.skin);
sndDrive = _global.snd.channelsById.drive;
_global.snd.playEvent("sndLevelStart", 1);
mc.engine = this;
mc.i = 0;
mc.onEnterFrame = function () {
_root.a.startCount();
this.engine.move();
_root.a.stopCount();
};
fx.fadeTo(com.neodelight.std.ColorFader.FX_BLACK, 0);
fx.fadeTo(com.neodelight.std.ColorFader.FX_NONE, 10);
_root.attachMovie("go", "goMc", _root.getNextHighestDepth());
}
function debug() {
mc.attachMovie("light", "light", 50, {_x:0, _y:20});
}
function verlet(v) {
var _local3 = v.ox;
var _local2 = v.oy;
v.ox = v.x;
v.oy = v.y;
if (v.f > 0) {
v.fx = v.fx / v.f;
}
if (v.f > 0) {
v.fy = v.fy / v.f;
}
v.x = v.x + ((0.99 * (v.x - _local3)) + v.fx);
v.y = v.y + (((0.99 * (v.y - _local2)) + v.fy) + 1.5);
v.fx = (v.fy = (v.f = 0));
}
function zero(n) {
if (n < 10) {
return("0" + n);
}
return(n.toString());
}
function newForce(o, x, y, isAnchor) {
o.x = (o.ox = x);
o.y = (o.oy = y);
o.fx = (o.fy = (o.f = 0));
if (isAnchor) {
o.a = true;
}
}
function drawMap() {
var _local9 = mc;
var _local14 = _local9.bg;
var _local17 = lvl;
var _local18 = _local17.colFill;
var _local16 = map;
var _local11 = worldX;
var _local10 = worldY;
_local14.clear();
_local14.lineStyle(0, 0, 0);
var _local12 = lines;
var _local3 = null;
var _local7 = 0;
var _local6 = 0;
var _local5 = 0;
var _local13 = 0;
var _local8 = 0;
var _local4;
var _local15 = _local16.length;
while (_local15--) {
_local3 = _local16[_local15];
if (!((((_local3[0][0] > (_local11 + 550)) || (_local3[0][2] < _local11)) || (_local3[0][1] > (_local10 + 400))) || (_local3[0][3] < _local10))) {
_local7 = _local3[0][4] - _local11;
_local6 = _local3[0][5] - _local10;
matrix.tx = -_local11;
matrix.ty = -_local10;
_local14.beginBitmapFill(texture, matrix);
_local14.moveTo(_local3[1][0] + _local7, _local3[1][1] + _local6);
_local5 = 2;
_local13 = _local3.length;
_root.a1.startCount();
while (_local5 < _local13) {
_local4 = _local12[_local8];
_local4[0] = _local3[_local5 - 1][0] + _local7;
_local4[1] = _local3[_local5 - 1][1] + _local6;
_local4[2] = _local3[_local5][0] + _local7;
_local4[3] = _local3[_local5][1] + _local6;
_local8++;
_local9.bg.lineTo(_local4[2], _local4[3]);
_local5++;
}
_local4 = _local12[_local8];
_local4[0] = _local3[_local5 - 1][0] + _local7;
_local4[1] = _local3[_local5 - 1][1] + _local6;
_local4[2] = _local3[1][0] + _local7;
_local4[3] = _local3[1][1] + _local6;
_local8++;
_local9.bg.lineTo(_local4[2], _local4[3]);
_local9.bg.endFill();
_root.a1.stopCount();
}
}
linesLen = _local8;
}
function refreshMap() {
var _local8 = int(worldX / 550);
var _local7 = int(worldY / 400);
if ((_local8 != worldTileX) || (_local7 != worldTileY)) {
var _local4 = lvl.map;
worldTileX = _local8;
worldTileY = _local7;
delete map;
map = new Array();
var _local6 = _local8 * 550;
var _local5 = _local7 * 400;
var _local2 = null;
var _local3 = _local4.length;
while (_local3--) {
_local2 = _local4[_local3][0];
if (!((((_local2[0] > (_local6 + 1100)) || (_local2[1] > (_local5 + 800))) || (_local2[2] < _local6)) || (_local2[3] < _local5))) {
map.push(_local4[_local3]);
}
}
}
}
function constraints(v, acc) {
var _local18 = player;
var _local35 = lvl;
var _local40 = mc;
var _local37 = _local40.bg;
var _local17 = Math.sqrt;
var _local22;
var _local20;
var _local12;
var _local21;
var _local19;
var _local29;
var _local26;
var _local14;
var _local13;
var _local7;
v.ground = false;
var _local24 = v == _local40.driver0;
var _local15;
var _local25;
if (_local24) {
_local15 = 11;
_local25 = 100;
} else {
_local15 = 25;
_local25 = 576;
}
if (_local37.hitTest(v.x, v.y, true)) {
if (_local24) {
return(true);
}
_local14 = v.ox - v.x;
_local13 = v.oy - v.y;
_local7 = _local17((_local14 * _local14) + (_local13 * _local13));
_local14 = _local14 / _local7;
_local13 = _local13 / _local7;
do {
v.x = v.x + (_local14 * 20);
v.y = v.y + (_local13 * 20);
} while (_local37.hitTest(v.x, v.y, true));
v.ox = v.x;
v.oy = v.y;
trace("SND cheap collision");
_global.snd.playEvent("sndBump", 1);
}
var _local33;
var _local30;
var _local31;
var _local27;
var _local9;
var _local11;
var _local8;
var _local10;
var _local6;
var _local5;
var _local4;
var _local23;
var _local36;
var _local16;
var _local41;
var _local34 = linesLen;
var _local38 = lines;
var _local32;
var _local28;
while (_local34--) {
_local16 = _local38[_local34];
_local9 = _local16[0];
_local11 = _local16[1];
_local8 = _local16[2];
_local10 = _local16[3];
if (_local9 < _local8) {
_local33 = _local9;
_local30 = _local8;
} else {
_local33 = _local8;
_local30 = _local9;
}
if (_local11 < _local10) {
_local31 = _local11;
_local27 = _local10;
} else {
_local31 = _local10;
_local27 = _local11;
}
if (((((v.x + 30) < _local33) || ((v.x - 30) > _local30)) || ((v.y + 30) < _local31)) || ((v.y - 30) > _local27)) {
continue;
}
_local6 = _local8 - _local9;
_local5 = _local10 - _local11;
_local23 = (_local6 * _local6) + (_local5 * _local5);
_local4 = _local17(_local23);
_local6 = _local6 / _local4;
_local5 = _local5 / _local4;
_local36 = _local6;
_local6 = _local5;
_local5 = -_local36;
_local22 = _local9 - v.x;
_local20 = _local11 - v.y;
_local12 = (_local22 * _local6) + (_local20 * _local5);
_local14 = _local6 * _local12;
_local13 = _local5 * _local12;
_local7 = (_local14 * _local14) + (_local13 * _local13);
if (_local7 < _local25) {
_local21 = (_local9 - v.x) - _local14;
_local19 = (_local11 - v.y) - _local13;
_local29 = (_local8 - v.x) - _local14;
_local26 = (_local10 - v.y) - _local13;
if ((((_local21 * _local21) + (_local19 * _local19)) < _local23) && (((_local29 * _local29) + (_local26 * _local26)) < _local23)) {
_local7 = _local17(_local7);
_local14 = _local14 / _local7;
_local13 = _local13 / _local7;
_local32 = _local14 * (_local15 - _local7);
_local28 = _local13 * (_local15 - _local7);
v.x = v.x - _local32;
v.y = v.y - _local28;
pushCount = pushCount + (_local32 + _local28);
if (_local24) {
return(true);
}
v.ox = v.ox + (((1 - _local35.ice) * (v.x - v.ox)) / (56 - _local7));
v.oy = v.oy + (((1 - _local35.ice) * (v.y - v.oy)) / (56 - _local7));
_local6 = _local8 - _local9;
_local5 = _local10 - _local11;
_local6 = _local6 / _local4;
_local5 = _local5 / _local4;
if (_local8 < _local9) {
_local22 = _local8 - v.x;
_local20 = _local10 - v.y;
}
_local12 = (_local22 * _local21) + (_local20 * _local19);
if (_local12 > 1) {
_local12 = 1;
} else {
_local12 = -1;
}
v.ground = true;
if (acc) {
v.f++;
v.fx = v.fx + ((((_local12 * _local6) * _local18.dir) * _local18.vel) / (25 - _local7));
v.fy = v.fy + ((((_local12 * _local5) * _local18.dir) * _local18.vel) / (25 - _local7));
v.fy = v.fy * 0.5;
}
} else {
_local6 = v.x - _local9;
_local5 = v.y - _local11;
_local4 = (_local6 * _local6) + (_local5 * _local5);
if (_local4 < _local25) {
if (_local24) {
return(true);
}
_local4 = _local17(_local4);
_local6 = _local6 / _local4;
_local5 = _local5 / _local4;
v.x = v.x + (_local6 * (_local15 - _local4));
v.y = v.y + (_local5 * (_local15 - _local4));
v.ox = v.ox + (((v.x - v.ox) * 1) / (56 - _local4));
v.oy = v.oy + (((v.y - v.oy) * 1) / (56 - _local4));
}
_local6 = v.x - _local8;
_local5 = v.y - _local10;
_local4 = (_local6 * _local6) + (_local5 * _local5);
if (_local4 < _local25) {
if (_local24) {
return(true);
}
_local4 = _local17(_local4);
_local6 = _local6 / _local4;
_local5 = _local5 / _local4;
v.x = v.x + (_local6 * (_local15 - _local4));
v.y = v.y + (_local5 * (_local15 - _local4));
v.ox = v.ox + (((v.x - v.ox) * 1) / (56 - _local4));
v.oy = v.oy + (((v.y - v.oy) * 1) / (56 - _local4));
}
}
}
}
if (_local24) {
return(false);
}
}
function quit(win, reason) {
var _local6 = mc;
var _local4 = _root.shared;
_local6.removeMovieClip();
_root.onEnterFrame = function () {
};
_root.inGame = false;
var _local5 = (_root.lastMapTime = getTimer() - timeStart);
_local4.data.totalTime = _local4.data.totalTime + _local5;
var _local9 = !win;
var _local8 = _root.mapId;
if (reason == "quit") {
_root.gotoAndStop("level");
} else if (reason == "win") {
_root.resultTime = Math.max(0, Math.floor(333.99 - ((getTimer() - timeStart) / timeSpeed)));
_root.resultUnlock = ((_global.game.actLevel + 1) < _global.lib.lvls.length) && ((_global.game.actLevel + 1) > _global.game.maxLevel);
_global.game.actLevel = Math.min(_global.game.actLevel + 1, _global.lib.lvls.length - 1);
_global.game.maxLevel = (_local4.data.maxLevel = Math.max(_global.game.maxLevel, _global.game.actLevel));
_local4.flush();
_root.gotoAndStop("levelOver");
} else {
_root.reasonOfDeath = reason;
_root.gotoAndPlay("newGame");
}
}
function move() {
if (freeze) {
freeze--;
if (freeze == 0) {
fx.fadeTo({ra:100, rb:0, ga:33, gb:0, ba:0, bb:0, aa:100, ab:0}, 0);
fx.fadeTo(com.neodelight.std.ColorFader.FX_BLACK, player.deathCount);
} else if (freeze % 2) {
fx.fadeTo({ra:100, rb:0, ga:66, gb:0, ba:0, bb:0, aa:100, ab:0}, 0);
} else {
fx.fadeTo({ra:100, rb:0, ga:33, gb:0, ba:0, bb:0, aa:100, ab:0}, 0);
}
return(undefined);
}
var _local42 = Math.sin;
var _local34 = Math.cos;
var _local19 = Math.atan2;
var _local16 = (Math.PI/180);
var _local20 = Math.sqrt;
var _local4 = mc;
var _local46 = _root.shared;
var _local31 = lvl;
var player = player;
var _local35 = Math.max(0, 333.99 - ((getTimer() - timeStart) / timeSpeed));
if (_local35 == 0) {
timeStart = getTimer() - (333.99 * timeSpeed);
}
var _local38 = Math.floor(_local35);
var _local39 = Math.floor((_local35 - _local38) * 100);
_local4.hud.t.text = (_local4.hud.t1.text = _local38);
_local4.hud.h.text = (_local4.hud.h1.text = zero(_local39));
if (!player.dead) {
if ((_local4.wheel1.y + worldY) > _local31.groundY) {
_global.snd.playEvent("sndAbyss", 1);
death();
}
}
var _local30 = worldX;
var worldY = worldY;
var _local55;
var _local53;
var _local27 = _local30 - 100;
var _local25 = _local30 + 650;
var _local26 = worldY - 100;
var _local24 = worldY + 500;
var _local11 = null;
var _local45 = _local4.wheel1.x + _local30;
var _local58 = _local4.wheel1.y + worldY;
var _local59 = _local4.wheel2.x + _local30;
var _local56 = _local4.wheel2.y + worldY;
var _local12 = {x:0, y:0};
_local12.x = _local4.body.c._x;
_local12.y = _local4.body.c._y;
_local4.body.localToGlobal(_local12);
var _local22 = xtras;
var _local13 = _local22.length;
var _local5;
while (_local13--) {
_local5 = _local22[_local13];
if (_local5[4]) {
continue;
}
_local55 = _local5[0];
_local53 = _local5[1];
if (!((((_local55 < _local27) || (_local55 > _local25)) || (_local53 < _local26)) || (_local53 > _local24))) {
if (!_local5[3]) {
var _local6 = _local4.xtrasMc.getNextHighestDepth();
_local11 = (_local5[3] = _local4.xtrasMc.attachMovie("xtra", "f" + _local6, _local6));
_local11.gotoAndStop(_local5[2]);
}
_local11 = _local5[3];
_local11._x = _local55 - worldX;
_local11._y = _local53 - worldY;
if ((_local5[2] < 4) && (Math.sqrt(Math.pow(_local11._x - _local12.x, 2) + Math.pow(_local11._y - _local12.y, 2)) < 55)) {
var _local14 = false;
switch (_local5[2]) {
case 1 :
timeStart = timeStart + 17600;
_root.attachMovie("titleBonusTime", com.neodelight.std.Unique.getKey(), _root.getNextHighestDepth());
_global.snd.playEvent("sndTime", 1);
_root.mapRedraw();
_local14 = true;
break;
case 2 :
_global.tagCount++;
_root.attachMovie("titleExitUnlocked", com.neodelight.std.Unique.getKey(), _root.getNextHighestDepth());
_global.snd.playEvent("sndKey", 1);
_local14 = true;
break;
case 3 :
if (_global.tagCount == _global.numberOfTags) {
_global.snd.playEvent("sndPortal", 1);
quit(true, "win");
_local14 = true;
}
break;
default :
trace("error: unknown tag type: " + _local5[2]);
}
if (_local14) {
_local5[4] = true;
_local5[3].removeMovieClip();
_local5[3] = null;
}
}
} else if (_local5[3]) {
_local5[3].removeMovieClip();
_local5[3] = null;
}
}
if (Key.isDown(45)) {
trace(((_root._xmouse + worldX) + ",") + (_root._ymouse + worldY));
}
var _local7;
var _local8;
var _local21;
var _local18;
var _local17 = false;
if (!player.dead) {
if (Key.isDown(27)) {
_global.snd.fadeChannel("athmo", -1, 10);
_global.snd.playLoop("sndMusic", 1, undefined, "music");
sndDrive.stop();
quit(false, "quit");
return(undefined);
}
if (Key.isDown(38)) {
player.vel = player.vel + player.acc1;
player.vel = Math.min(player.maxVel, player.vel);
} else if (Key.isDown(40)) {
player.vel = player.vel - player.acc2;
player.vel = Math.max(player.minVel, player.vel);
} else {
player.vel = player.vel * 0.5;
}
if (idleTimer > -1) {
idleTimer++;
if (idleTimer > 80) {
idleTimer = -1;
}
}
if (Key.isDown(32)) {
if (!_root.keySpace) {
_root.keySpace = true;
player.dir = player.dir * -1;
_local4.body._xscale = (_local4.driver.torso._yscale = (_local4.driver.arm1._yscale = (_local4.driver.arm2._yscale = (_local4.driver.leg1._yscale = (_local4.driver.leg2._yscale = (_local4.leg1b._yscale = (_local4.leg2b._yscale = player.dir * 100)))))));
_global.snd.playEvent("sndFlip", 0.1);
_local17 = true;
}
} else {
_root.keySpace = false;
}
if (Key.isDown(37)) {
_local7 = _local4.wheel2.x - _local4.wheel1.x;
_local8 = _local4.wheel2.y - _local4.wheel1.y;
var _local41 = Math.max(0.5, Math.abs(_local34(4.71238898038469 - com.neodelight.std.XMath.vAngle(_local7, _local8))));
var _local37 = com.neodelight.std.XMath.vRotate(new com.neodelight.std.Vector(_local7, _local8), (-accTilt) * _local41);
var fx = (_local37.x - _local7);
var _local40 = _local37.y - _local8;
_local4.wheel2.f++;
_local4.wheel2.fx = _local4.wheel2.fx + fx;
_local4.wheel2.fy = _local4.wheel2.fy + _local40;
player.tilt = player.tilt - 4;
} else if (Key.isDown(39)) {
_local7 = _local4.wheel1.x - _local4.wheel2.x;
_local8 = _local4.wheel1.y - _local4.wheel2.y;
var _local41 = Math.max(0.5, Math.abs(_local34(4.71238898038469 - com.neodelight.std.XMath.vAngle(_local7, _local8))));
var _local37 = com.neodelight.std.XMath.vRotate(new com.neodelight.std.Vector(_local7, _local8), accTilt * _local41);
var fx = (_local37.x - _local7);
var _local40 = _local37.y - _local8;
_local4.wheel1.f++;
_local4.wheel1.fx = _local4.wheel1.fx + fx;
_local4.wheel1.fy = _local4.wheel1.fy + _local40;
player.tilt = player.tilt + 4;
}
hopSustain--;
hopLock--;
hopSoundLock--;
if (Key.isDown(16)) {
hopSustain = 5;
}
if (_local4.wheel1.ground || (_local4.wheel2.ground)) {
if (hopSustain > 0) {
var _local41 = com.neodelight.std.XMath.vAngle(_local4.wheel2.x - _local4.wheel1.x, _local4.wheel2.y - _local4.wheel1.y);
_local8 = Math.sin(_local41) * -10;
_local7 = 0;
_local4.wheel1.fx = _local4.wheel1.fx + _local7;
_local4.wheel1.fy = _local4.wheel1.fy + _local8;
_local4.wheel2.fx = _local4.wheel2.fx + _local7;
_local4.wheel2.fy = _local4.wheel2.fy + _local8;
player.ducking = 10;
if (hopSoundLock <= 0) {
if (Math.random() < 0.66) {
_global.snd.playEvent("sndHep0", 0.22);
} else {
_global.snd.playEvent("sndHep1", 0.22);
}
hopSoundLock = 15;
}
hopLock = 5;
}
}
}
player.tilt = player.tilt * 0.94;
player.ducking = player.ducking * 0.9;
refreshMap();
drawMap();
if (!player.dead) {
_local12 = {x:0, y:0};
_local12.x = _local4.body.a0._x;
_local12.y = _local4.body.a0._y;
_local4.body.localToGlobal(_local12);
_local4.anchor0.x = _local12.x;
_local4.anchor0.y = _local12.y;
var _local32 = _local42(player.pedalPos);
var _local33 = _local34(player.pedalPos);
_local12.x = _local4.body.a2._x + (_local32 * 15);
_local12.y = _local4.body.a2._y - (_local33 * 10);
_local4.body.localToGlobal(_local12);
_local4.anchor2.x = _local12.x;
_local4.anchor2.y = _local12.y;
_local12.x = _local4.body.a2b._x - (_local32 * 15);
_local12.y = _local4.body.a2b._y + (_local33 * 10);
_local4.body.localToGlobal(_local12);
_local4.anchor2b.x = _local12.x;
_local4.anchor2b.y = _local12.y;
_local12.x = _local4.body.a1._x;
_local12.y = _local4.body.a1._y;
_local4.body.localToGlobal(_local12);
_local4.anchor1.x = _local4.anchor1.x + ((_local12.x - _local4.anchor1.x) / (_local17 ? 1 : 6));
_local4.anchor1.y = _local4.anchor1.y + ((_local12.y - _local4.anchor1.y) / (_local17 ? 1 : 6));
if ((player.tilt * player.dir) < 0) {
_local12.x = _local4.body.r0._x - ((player.tilt * 0.5) * player.dir);
_local12.y = (_local4.body.r0._y - Math.abs(player.tilt)) - (player.ducking * 5);
} else {
_local12.x = _local4.body.r0._x - player.tilt;
_local12.y = _local4.body.r0._y - (player.ducking * 5);
}
_local4.body.localToGlobal(_local12);
_local4.driver0.x = _local4.driver0.x + ((_local12.x - _local4.driver0.x) / (_local17 ? 1 : 4));
_local4.driver0.y = _local4.driver0.y + ((_local12.y - _local4.driver0.y) / (_local17 ? 1 : 4));
_local12.x = (_local4.body.r2._x - (_local32 * 10)) + ((Math.max(0, player.tilt) * 0.2) * player.dir);
_local12.y = (_local4.body.r2._y - (_local33 * 10)) + (player.ducking * 0.3);
_local4.body.localToGlobal(_local12);
_local4.driver2.x = _local4.driver2.x + ((_local12.x - _local4.driver2.x) / (_local17 ? 1 : 2));
_local4.driver2.y = _local4.driver2.y + ((_local12.y - _local4.driver2.y) / (_local17 ? 1 : 2));
_local12.x = _local4.body.r2b._x + (_local32 * 10);
_local12.y = _local4.body.r2b._y + (_local33 * 10);
_local4.body.localToGlobal(_local12);
_local4.driver2b.x = _local4.driver2b.x + ((_local12.x - _local4.driver2b.x) / (_local17 ? 1 : 2));
_local4.driver2b.y = _local4.driver2b.y + ((_local12.y - _local4.driver2b.y) / (_local17 ? 1 : 2));
}
var _local23 = verlet;
_local23(_local4.wheel1);
_local23(_local4.wheel2);
_local23(_local4.driver0);
_local23(_local4.driver1);
_local23(_local4.driver2);
_local23(_local4.driver2b);
_local23(_local4.anchor1);
var _local10;
var _local9;
var _local15 = springs;
if (!player.dead) {
_local13 = _local15.length;
while (_local13--) {
_local10 = _local15[_local13][0];
_local9 = _local15[_local13][1];
_local7 = _local9.x - _local10.x;
_local8 = _local9.y - _local10.y;
var _local6 = _local20((_local7 * _local7) + (_local8 * _local8));
_local6 = (_local6 - springs[_local13][2]) / _local6;
if (_local10.a) {
_local9.x = _local9.x - (_local7 * _local6);
_local9.y = _local9.y - (_local8 * _local6);
} else if (_local9.a) {
_local10.x = _local10.x + (_local7 * _local6);
_local10.y = _local10.y + (_local8 * _local6);
} else {
_local10.x = _local10.x + ((_local7 * 0.5) * _local6);
_local10.y = _local10.y + ((_local8 * 0.5) * _local6);
_local9.x = _local9.x - ((_local7 * 0.5) * _local6);
_local9.y = _local9.y - ((_local8 * 0.5) * _local6);
}
}
}
pushCount = 0;
var _local44 = _local4.wheel1.ground;
var _local43 = _local4.wheel2.ground;
constraints(_local4.wheel1, player.dir == 1);
constraints(_local4.wheel2, player.dir == -1);
if (((!_local44) && (_local4.wheel1.ground)) || ((!_local43) && (_local4.wheel2.ground))) {
if (pushCount > 8) {
_global.snd.playEvent("sndBump", (pushCount - 8) * 0.1);
}
}
if (((!player.dead) && (constraints(_local4.driver0))) && (!_global.godMode)) {
death();
_global.snd.playEvent("sndDie", 0.8);
}
cameraX = cameraX + (((((_local4.wheel1.x - _local4.wheel1.ox) + _local4.wheel2.x) - _local4.wheel2.ox) + (player.dir * 30)) * 0.5);
cameraY = cameraY + ((((_local4.wheel1.y - _local4.wheel1.oy) + _local4.wheel2.y) - _local4.wheel2.oy) * 0.5);
cameraX = cameraX * 0.7;
cameraY = cameraY * 0.6;
var _local29 = int(((((_local4.wheel1.x + _local4.wheel2.x) / 2) - 275) + cameraX) * 0.6);
var _local28 = int(((((_local4.wheel1.y + _local4.wheel2.y) / 2) - 250) + cameraY) * 0.6);
_local4.backgroundMc._y = 335 + (worldY * -0.3);
_local4.backgroundMc._x = (((_local30 * -0.3) + 5500) % 550) - 550;
worldX = worldX + _local29;
worldY = worldY + _local28;
_local4.wheel1.x = _local4.wheel1.x - _local29;
_local4.wheel1.y = _local4.wheel1.y - _local28;
_local4.wheel1.ox = _local4.wheel1.ox - _local29;
_local4.wheel1.oy = _local4.wheel1.oy - _local28;
_local4.wheel2.x = _local4.wheel2.x - _local29;
_local4.wheel2.y = _local4.wheel2.y - _local28;
_local4.wheel2.ox = _local4.wheel2.ox - _local29;
_local4.wheel2.oy = _local4.wheel2.oy - _local28;
_local7 = _local4.wheel1.x - _local4.wheel1.ox;
_local8 = _local4.wheel1.y - _local4.wheel1.oy;
_local21 = _local20((_local7 * _local7) + (_local8 * _local8));
if (_local21 > 25) {
_local21 = 25;
}
if (_local7 < 0) {
_local21 = _local21 * -1;
}
_local7 = _local4.wheel2.x - _local4.wheel2.ox;
_local8 = _local4.wheel2.y - _local4.wheel2.oy;
_local18 = _local20((_local7 * _local7) + (_local8 * _local8));
if (_local18 > 25) {
_local18 = 25;
}
if (_local7 < 0) {
_local18 = _local18 * -1;
}
_local4.wheel1._x = _local4.wheel1.x;
_local4.wheel1._y = _local4.wheel1.y;
var _local36;
if (player.dir == 1) {
_local21 = ((1 - _local31.ice) * _local21) + (_local31.ice * ((player.vel * 2.7) + (_local21 * 0.4)));
_local36 = (_local21 * _local16) * player.dir;
} else {
_local18 = ((1 - _local31.ice) * _local18) + (_local31.ice * (-((player.vel > 0) ? (Math.max(player.vel * 2.5, _local18)) : (Math.min(player.vel * 2.5, _local18)))));
_local36 = (_local18 * _local16) * player.dir;
}
player.pedalPos = player.pedalPos + _local36;
if (!player.dead) {
sndDrive.fade(Math.pow(_local36, 2) * 2.8, 5);
}
_local4.wheel1._rotation = _local4.wheel1._rotation + _local21;
_local4.wheel2._x = _local4.wheel2.x;
_local4.wheel2._y = _local4.wheel2.y;
_local4.wheel2._rotation = _local4.wheel2._rotation + _local18;
if (player.dead) {
if (!(player.deathCount--)) {
fx.fadeTo(com.neodelight.std.ColorFader.FX_NONE, 0);
quit(false, "col");
}
_local4.body.vy = _local4.body.vy + 1.2;
_local4.body._y = _local4.body._y + _local4.body.vy;
_local4.body._rotation = _local4.body._rotation + _local4.body.vr;
} else {
_local4.body._x = (_local4.wheel1.x + _local4.wheel2.x) / 2;
_local4.body._y = (_local4.wheel1.y + _local4.wheel2.y) / 2;
_local4.body._rotation = _local19(_local4.wheel2.y - _local4.wheel1.y, _local4.wheel2.x - _local4.wheel1.x) / _local16;
}
fx.step();
_local4.driver.torso._x = (_local4.anchor1.x + _local4.driver0.x) / 2;
_local4.driver.torso._y = (_local4.anchor1.y + _local4.driver0.y) / 2;
_local4.driver.torso._rotation = _local19(_local4.driver0.y - _local4.anchor1.y, _local4.driver0.x - _local4.anchor1.x) / _local16;
_local4.driver.arm1._x = (_local4.driver1.x + _local4.anchor0.x) / 2;
_local4.driver.arm1._y = (_local4.driver1.y + _local4.anchor0.y) / 2;
_local4.driver.arm1._rotation = _local19(_local4.anchor0.y - _local4.driver1.y, _local4.anchor0.x - _local4.driver1.x) / _local16;
_local4.driver.arm2._x = (_local4.driver0.x + _local4.driver1.x) / 2;
_local4.driver.arm2._y = (_local4.driver0.y + _local4.driver1.y) / 2;
_local4.driver.arm2._rotation = _local19(_local4.driver1.y - _local4.driver0.y, _local4.driver1.x - _local4.driver0.x) / _local16;
_local4.driver.leg1._x = (_local4.anchor2.x + _local4.driver2.x) / 2;
_local4.driver.leg1._y = (_local4.anchor2.y + _local4.driver2.y) / 2;
_local4.driver.leg1._rotation = _local19(_local4.anchor2.y - _local4.driver2.y, _local4.anchor2.x - _local4.driver2.x) / _local16;
_local4.driver.leg2._x = (_local4.driver2.x + _local4.anchor1.x) / 2;
_local4.driver.leg2._y = (_local4.driver2.y + _local4.anchor1.y) / 2;
_local4.driver.leg2._rotation = _local19(_local4.driver2.y - _local4.anchor1.y, _local4.driver2.x - _local4.anchor1.x) / _local16;
_local4.leg1b._x = (_local4.anchor2b.x + _local4.driver2b.x) / 2;
_local4.leg1b._y = (_local4.anchor2b.y + _local4.driver2b.y) / 2;
_local4.leg1b._rotation = _local19(_local4.anchor2b.y - _local4.driver2b.y, _local4.anchor2b.x - _local4.driver2b.x) / _local16;
_local4.leg2b._x = (_local4.driver2b.x + _local4.anchor1.x) / 2;
_local4.leg2b._y = (_local4.driver2b.y + _local4.anchor1.y) / 2;
_local4.leg2b._rotation = _local19(_local4.driver2b.y - _local4.anchor1.y, _local4.driver2b.x - _local4.anchor1.x) / _local16;
_local4.body.pedalFront._rotation = player.pedalPos / _local16;
_local4.body.pedalFront.pedal._rotation = -_local4.body.pedalFront._rotation;
_local4.body.pedalBack._rotation = (player.pedalPos / _local16) + 180;
_local4.body.pedalBack.pedal._rotation = -_local4.body.pedalBack._rotation;
_local4.driver._visible = true;
}
function death() {
_root.attachMovie("ouch", "ouch", _root.getNextHighestDepth());
freeze = 10;
player.dead = 1;
sndDrive.fade(0, 10);
player.deathCount = 45;
player.vel = 0;
mc.body.vy = 0;
mc.body.vr = (Math.random() - 0.5) * 10;
}
var timeSpeed = 400;
}
Symbol 24 MovieClip Frame 1
var flashVersion = int(System.capabilities.version.split(" ").pop().split(",").shift());
if (flashVersion < _root.requiredFlashVersion) {
this.msg = ("<font color=\"red\">Please upgrade to Flash Player " + _root.requiredFlashVersion) + "</font>";
this.percentageDisplay = "";
this.onEnterFrame = function () {
this.gotoAndStop(1);
};
} else {
this.msg = ("<center><a href=\"http://www.neodelight.com/?ref=" + _global.config.gameName) + "\">designed by neodelight.com</a></center>";
this.onEnterFrame = function () {
var _local4 = (_root.getBytesLoaded() / _root.getBytesTotal()) * 100;
this.percentageDisplay = ((("Loading '" + _global.config.gameTitle) + "'.. ") + Math.min(100, Math.floor(_local4))) + "%";
this.bar._xscale = Math.max(1, Math.min(100, Math.floor(_local4)));
if ((_local4 == 100) && (_root._currentframe == 4)) {
this.onEnterFrame = undefined;
_root.gotoAndStop("init");
}
};
}
Symbol 29 Button
on (release) {
if (_url.indexOf("neodelight.com") == -1) {
getURL (("http://www.neodelight.com?ref=" + _root.gameName) + "&ref_loc=intro", "_BLANK");
}
}
Symbol 43 MovieClip Frame 1
startFrame = _parent._currentframe;
Symbol 43 MovieClip Frame 2
vol = (1 - ((_parent._currentFrame - startFrame) / (_parent._totalFrames - startFrame))) * 100;
if (vol < 0) {
vol = 0;
}
_parent.snd.setVolume(vol);
Symbol 43 MovieClip Frame 3
gotoAndPlay ("loop");
Symbol 44 MovieClip Frame 1
snd = new Sound(this);
snd.setVolume(100);
_parent.stop();
Symbol 44 MovieClip Frame 123
stop();
_root.play();
Symbol 47 MovieClip Frame 1
snd = new Sound(this);
snd.setVolume(100);
_parent.stop();
Symbol 47 MovieClip Frame 123
stop();
_root.play();
Symbol 108 MovieClip [titleBonusTime] Frame 43
this.removeMovieClip();
Symbol 112 MovieClip [go] Frame 43
this.removeMovieClip();
Symbol 116 MovieClip [ouch] Frame 48
this.removeMovieClip();
Symbol 120 MovieClip [titleExitUnlocked] Frame 43
this.removeMovieClip();
Symbol 137 MovieClip Frame 1
this.onEnterFrame = function () {
_rotation = (_rotation + 6);
};
Symbol 138 MovieClip Frame 1
this.onEnterFrame = function () {
_rotation = (_rotation + 0.1);
};
Symbol 154 MovieClip Frame 1
gotoAndStop(_root.engine.lvl.skin + 2);
this.onEnterFrame = function () {
this.doorMc._visible = _global.tagCount != _global.numberOfTags;
};
Symbol 172 MovieClip Frame 1
_visible = false;
Symbol 183 Button
on (release) {
_root.freshGame = true;
gotoAndStop ("help");
_global.snd.playEvent("sndClick", 1);
}
Symbol 190 Button
on (release) {
getURL (_global.config.urlHighscoresView, _global.config.urlHighscoresViewTarget);
_global.snd.playEvent("sndClick", 1);
}
Symbol 197 Button
on (release) {
getURL (_global.config.urlMoreGames, _global.config.urlMoreGamesTarget);
_global.snd.playEvent("sndClick", 1);
}
Symbol 262 Button
on (release) {
_global.snd.setVolume(0);
nextFrame();
}
Symbol 267 Button
on (release) {
_root.snd.active = 1;
prevFrame();
}
Symbol 269 Button
on (release) {
_global.snd.setVolume(1);
prevFrame();
}
Symbol 270 MovieClip Frame 1
stop();
if (_global.snd.getVolume() == 0) {
nextFrame();
}
Symbol 276 Button
on (release) {
getURL ("http://www.neodelight.com/webmaster", "_blank");
}
Symbol 279 Button
on (release) {
if (_global.config.gameCopyrightLink) {
getURL (_global.config.gameCopyrightLink, "_blank");
}
}
Symbol 284 Button
on (release) {
com.neodelight.mdm.DirectX.setResolution(640, 480, 32);
nextFrame();
}
Symbol 288 Button
on (release) {
com.neodelight.mdm.DirectX.setResolution(800, 600, 16);
nextFrame();
}
Symbol 291 Button
on (release) {
com.neodelight.mdm.DirectX.setResolution(800, 600, 32);
nextFrame();
}
Symbol 294 Button
on (release) {
com.neodelight.mdm.DirectX.setResolution(640, 480, 16);
gotoAndStop (2);
}
Symbol 297 Button
on (release) {
gotoAndStop ("MEDIUM");
}
Symbol 300 Button
on (release) {
gotoAndStop ("HIGH");
}
Symbol 303 Button
on (release) {
gotoAndStop ("BEST");
}
Symbol 306 Button
on (release) {
gotoAndStop ("LOW");
}
Symbol 307 MovieClip Frame 1
if (!_global.mdm) {
gotoAndStop(_quality);
} else {
var res = com.neodelight.mdm.DirectX.getResolutionString();
switch (res) {
case "640x480x16" :
gotoAndStop (2);
break;
case "640x480x32" :
gotoAndStop (3);
break;
case "800x600x16" :
gotoAndStop (4);
break;
case "800x600x32" :
gotoAndStop (5);
}
}
Symbol 307 MovieClip Frame 6
_quality = "LOW";
Symbol 307 MovieClip Frame 7
_quality = "MEDIUM";
Symbol 307 MovieClip Frame 8
_quality = "HIGH";
Symbol 307 MovieClip Frame 9
_quality = "BEST";
Symbol 317 Button
on (release, keyPress "<Space>") {
gotoAndStop ("level");
_global.snd.playEvent("sndClick", 1);
}
Symbol 344 Button
on (release, keyPress "<Left>") {
_root.map.level0pop._visible = false;
if (_root.mapId > 0) {
_root.mapId--;
}
_root.mapRedraw();
}
on (keyPress "<Down>") {
_root.map.level0pop._visible = false;
if (_root.mapId > 0) {
_root.mapId--;
}
_root.mapRedraw();
}
Symbol 348 Button
on (release, keyPress "<Right>") {
_root.map.level0pop._visible = false;
if (_root.mapId < _global.game.maxLevel) {
_root.mapId++;
}
_root.mapRedraw();
}
on (keyPress "<Up>") {
_root.map.level0pop._visible = false;
if (_root.mapId < _global.game.maxLevel) {
_root.mapId++;
}
_root.mapRedraw();
}
Symbol 356 MovieClip Frame 1
if (!inited) {
inited = true;
xOff = _x;
yOff = _y;
v = (Math.random() + 1) * 0.003;
dx = (Math.random() + 1) * 10;
this.onEnterFrame = function () {
this._x = this.xOff + (Math.sin(getTimer() * this.v) * dx);
};
}
Symbol 380 MovieClip Frame 1
var n = int(this._parent._parent._name.substr(-1, 1));
trace((("n: " + n) + " _name: ") + this._parent._parent._name);
var title = _global.lib.lvls[n].title;
Symbol 390 MovieClip Frame 1
var n = int(this._parent._parent._name.substr(-1, 1));
var title = _global.lib.lvls[n].title;
if (_root.scores[n] == 0) {
gotoAndStop (2);
} else {
var score = ("Score: " + com.neodelight.std.XString.numberFormat(_root.scores[n]));
}
stop();
Symbol 391 Button
on (release) {
_root.startLevel(int(this._name.substr(-1, 1)));
}
on (rollOver) {
_root.map.level0pop._visible = false;
}
Symbol 392 Button
on (release) {
_root.startLevel(int(this._name.substr(-1, 1)));
}
on (rollOver) {
_root.map.level0pop._visible = false;
}
Symbol 402 Button
on (release) {
_root.startLevel(int(this._name.substr(-1, 1)));
}
on (rollOver) {
_root.map.level0pop._visible = false;
}
Symbol 403 Button
on (release) {
_root.startLevel(int(this._name.substr(-1, 1)));
}
on (rollOver) {
_root.map.level0pop._visible = false;
}
Symbol 421 Button
on (release) {
_root.startLevel(int(this._name.substr(-1, 1)));
}
on (rollOver) {
_root.map.level0pop._visible = false;
}
Symbol 422 Button
on (release) {
_root.startLevel(int(this._name.substr(-1, 1)));
}
on (rollOver) {
_root.map.level0pop._visible = false;
}
Symbol 429 Button
on (release) {
_root.startLevel(0);
}
Symbol 431 MovieClip Frame 1
var n = 0;
var title = _global.lib.lvls[n].title;
Symbol 433 Button
on (release, keyPress "<Space>") {
_root.startLevel(_root.mapId);
}
Symbol 445 Button
on (release) {
_global.snd.playEvent("sndClick", 1);
_global.config.gameScoreSubmit(_root.score);
if (_global.etc.host == "localhost") {
gotoAndStop ("menu");
}
}
Symbol 448 Button
on (release) {
getURL (_global.config.urlMoreGames, _global.config.urlMoreGamesTarget);
_global.snd.playEvent("sndClick", 1);
}
Symbol 453 Button
on (release) {
_root.startLevel(_root.mapId);
}
Symbol 460 Button
on (release, keyPress "<Enter>") {
gotoAndPlay ("level");
_global.snd.playEvent("sndClick", 1);
}
on (keyPress "<Space>") {
_global.snd.playEvent("sndClick", 1);
gotoAndPlay ("level");
}
Symbol 465 Button
on (release) {
_global.config.gameScoreSubmit(_root.score);
_global.snd.playEvent("sndClick", 1);
if (_global.etc.host == "localhost") {
_root.gotoAndStop("menu");
}
}
Symbol 470 Button
on (release) {
getURL (_global.config.urlMoreGames, _global.config.urlMoreGamesTarget);
_global.snd.playEvent("sndClick", 1);
}