Frame 1
_global.root = this;
nStartLevel = 0;
Frame 2
trace(_url);
var basepath;
if (_level0.basepath != null) {
basepath = _level0.basepath;
} else {
basepath = "../";
}
var splashTime = 0;
var doPerformanceTest = false;
var bytesToLoad = getBytesTotal();
nextFrame();
_level0.eventID = "dc_bawje_9101";
_level0.subject = "Brandy and Mr. Whiskers - Jungle Eggventure";
_level0.playerScore = 0;
_level0.mcRoot = this;
_level0.fsdPlayAgain = function () {
trace("Playing again! " + mcRoot);
_level0.mcRoot.DOGEHolder.unloadMovie();
SSGame.startNewGame();
};
fsd = ((_level0.fsd != null) ? (_level0.fsd) : (basepath + "fsd.swf"));
var cache = new LoadVars();
cache.onData = (cache.onLoad = function () {
delete cache;
});
cache.load(fsd);
Frame 3
var st = (getTimer() + splashTime);
play();
Frame 4
play();
Frame 5
if ((_framesloaded > 14) && (getTimer() > st)) {
delete st;
play();
} else {
prevFrame();
}
Frame 10
function loadDisplay(ratioLoaded) {
mcLoadBar.gotoAndStop(Math.ceil((mcLoadBar._totalframes - 1) * ratioLoaded));
}
function lm(startBytes, totalBytes) {
updateAfterEvent();
var r = ((getBytesLoaded() - startBytes) / totalBytes);
if (r < 1) {
loadDisplay(r);
} else {
loadDisplay(1);
clearInterval(loadID);
delete loadID;
delete lm;
_global.root.gotoAndStop((doPerformanceTest ? "performance" : "process"));
}
}
doPerformanceTest = false;
debug0 = "Loading";
if ((!doPerformanceTest) && (getBytesLoaded() >= bytesToLoad)) {
loadDisplay(1);
debug0 = "LoadDone";
gotoAndStop ("process");
}
var loadID = setInterval(lm, 0, getBytesLoaded(), bytesToLoad - getBytesLoaded());
loadDisplay(0.001);
play();
Frame 11
nextFrame();
Frame 13
prevFrame();
Instance of Symbol 94 MovieClip [Character] in Frame 17
/* no clip actions */
Frame 20
_global.performance = new PerformanceTest(null, function () {
gotoAndStop ("process");
});
stop();
Frame 29
if (_global.processed) {
return(undefined);
}
_global.processed = true;
debug0 = "StartProcess";
var n = DSGeneric;
SSGame.processConfig("<config><styles><s name=\"Floor\" fillColor=\"#970BA0\" offsetX=\"0\" offsetY=\"0\" viewSlope=\"-1,2\"><surface impactSound=\"ground\" ambientColor=\"#692166\" diffuseColor=\"#692166\" specularColor=\"#692166\" sideTexture=\"floorEdge\" sideTextureMode=\"1\" sideTextureLayer=\"100\" sideTexturePoint=\"2\" capSurface=\"2\" endAlign=\"0\" bounciness=\"0\" friction=\".7\" traction=\"1\" /><wall thickness=\"0\" ambientColor=\"#441544\" diffuseColor=\"#441544\" specularColor=\"#441544\" /><empty thickness=\"0\" frontDepth=\"0\" rearDepth=\"0\" /></s><s name=\"Platform\" fillColor=\"#692166\" offsetX=\"0\" offsetY=\"0\" viewSlope=\"-1,2\"><surface impactSound=\"ground\" ambientColor=\"#5D0094\" diffuseColor=\"#5D0094\" specularColor=\"#5D0094\" sideTexture=\"PlatformEdge\" sideTextureMode=\"1\" sideTextureLayer=\"100\" sideTexturePoint=\"2\" bounciness=\"0\" friction=\".7\" traction=\"1\" /><wall thickness=\"0\" ambientColor=\"#420466\" diffuseColor=\"#420466\" specularColor=\"#420466\" /><empty thickness=\"0\" frontDepth=\"0\" rearDepth=\"0\" /></s><s name=\"Water\" fillColor=\"#970BA0\" offsetX=\"0\" offsetY=\"0\" viewSlope=\"-1,2\"><surface water=\"1\" impactSound=\"splashsound\" ambientColor=\"#A2DE01\" diffuseColor=\"#A2DE01\" specularColor=\"#A2DE01\" sideTexture=\"FloorEdge\" sideTextureMode=\"1\" sideTextureLayer=\"100\" sideTexturePoint=\"2\" capSurface=\"1\" endAlign=\"0\" bounciness=\"0\" friction=\".7\" traction=\"1\" /><wall water=\"1\" thickness=\"0\" ambientColor=\"#390928\" diffuseColor=\"#390928\" specularColor=\"#390928\" /><empty water=\"1\" thickness=\"0\" frontDepth=\"0\" rearDepth=\"0\" /></s><s name=\"WaterPlatform\" offsetX=\"0\" offsetY=\"0\" viewSlope=\"-1,2\"><surface water=\"1\" impactSound=\"splashsound\" ambientColor=\"#374ED6\" diffuseColor=\"#374ED6\" specularColor=\"#374ED6\" sideTexture=\"PlatformEdge\" sideTextureMode=\"1\" sideTextureLayer=\"100\" sideTexturePoint=\"2\" capSurface=\"1\" endAlign=\"0\" bounciness=\"0\" friction=\".7\" traction=\"1\" /><wall water=\"1\" thickness=\"0\" ambientColor=\"#420466\" diffuseColor=\"#420466\" specularColor=\"#420466\" /><empty water=\"1\" thickness=\"0\" frontDepth=\"0\" rearDepth=\"0\" /></s><s name=\"Quicksand\" fillColor=\"#970BA0\" offsetX=\"0\" offsetY=\"0\" viewSlope=\"-1,2\"><surface water=\"1\" impactSound=\"splashsound\" ambientColor=\"#DE018B\" diffuseColor=\"#DE018B\" specularColor=\"#DE018B\" sideTexture=\"FloorEdge\" sideTextureMode=\"1\" sideTextureLayer=\"100\" sideTexturePoint=\"2\" capSurface=\"1\" endAlign=\"0\" bounciness=\"0\" friction=\".7\" traction=\"1\" /><wall water=\"1\" thickness=\"0\" ambientColor=\"#390928\" diffuseColor=\"#390928\" specularColor=\"#390928\" /><empty water=\"1\" thickness=\"0\" frontDepth=\"0\" rearDepth=\"0\" /></s><s name=\"QuicksandPlatform\" offsetX=\"0\" offsetY=\"0\" viewSlope=\"-1,2\"><surface water=\"1\" impactSound=\"splashsound\" ambientColor=\"#F1BE45\" diffuseColor=\"#F1BE45\" specularColor=\"#F1BE45\" sideTexture=\"PlatformEdge\" sideTextureMode=\"1\" sideTextureLayer=\"100\" sideTexturePoint=\"2\" capSurface=\"1\" endAlign=\"0\" bounciness=\"0\" friction=\".7\" traction=\"1\" /><wall water=\"1\" thickness=\"0\" ambientColor=\"#420466\" diffuseColor=\"#420466\" specularColor=\"#420466\" /><empty water=\"1\" thickness=\"0\" frontDepth=\"0\" rearDepth=\"0\" /></s><s name=\"Underground\" fillColor=\"#970BA0\" offsetX=\"0\" offsetY=\"0\" viewSlope=\"-1,2\"><surface impactSound=\"ground\" sideTexture=\"CaveEdge\" sideTextureMode=\"1\" sideTextureLayer=\"100\" sideTexturePoint=\"2\" capSurface=\"1\" endAlign=\"1\" bounciness=\"0\" friction=\".7\" traction=\"1\" ambientColor=\"#3E053C\" diffuseColor=\"#3E053C\" specularColor=\"#3E053C\" /><wall thickness=\"0\" ambientColor=\"#3C3009\" diffuseColor=\"#3C3009\" specularColor=\"#3C3009\" /><empty thickness=\"0\" frontDepth=\"0\" rearDepth=\"0\" /></s><s name=\"Invisible\" offsetX=\"0\" offsetY=\"0\" viewSlope=\"-1,2\"><surface thickness=\"0\" impactSound=\"ground\" surfaceTexture=\"InvisTop\" sideTexture=\"InvisEdge\" sideTextureLayer=\"100\" sideTexturePoint=\"2\" capSurface=\"1\" endAlign=\"1\" friction=\".7\" traction=\"1\" /><wall thickness=\"0\" /><empty thickness=\"0\" frontDepth=\"0\" rearDepth=\"0\" /></s></styles><bg><bg name=\"MainBG\"><l z=\"200\" tiles=\"Background\" defaultCell=\"0\" scrollMultiplier=\"1\">5,5|5,5|3,4|1,2|6,6|6,6</l></bg></bg></config>");
SSGame.processLevel("<w version=\"1,0,0,0\" levelName=\"JenLevel\" preProcess=\"preProcess\" background=\"MainBG\" startNode=\"Start\" music=\"simpleLoop\"><objects types=\"GameElement,GameBigPoint,GameCollectDoody,CommandBox,SSShape,GameSpring,Spikes,BouncingObject,WalkingObject,RopeObject,GameSwing,Checkpoint,GameHealth\">0|605|6745|0||||Start||||#1|1895|6540|0|||5|||#2|1710|6450|0|||||||#1|1570|6500|0|greenFruit||1|||#1|1845|6495|0|coconut||4|||#1|1635|6470|0|melon||2|||#1|1780|6465|0|pineapple||3|||#3|10265|6370|0|||||||||end#4|350|6090|0|||||||Invisible|120|20|3|120|680|3|35|680|1|35|20|1#0|430|6790|0|dividerTree|3|2|||||#0|10310|6785|0|homeTree|3||homeTree||||#4|0|6785|0|||||||Floor|4505|0|3|4505|70|1|0|70|1|0|0|0#1|1055|6660|0|melon|||||#1|2330|6460|0|greenfruit|||||#1|1265|6660|0|greenFruit|||||#4|955|6685|0|||||||Platform|410|0|3|410|40|1|0|40|1|0|0|1#5|4265|6510|0||||||||940#6|1475|6770|0|||||||#4|1375|6585|0|||||||Platform|180|0|3|180|40|1|0|40|1|0|0|1#4|1885|6585|0|||||||Platform|345|0|3|345|40|1|0|40|1|0|0|1#7|2320|6660|0|||||||||0.7#4|2705|6585|0|||||||Platform|1140|0|3|1140|45|1|0|45|1|0|0|1#1|1475|6695|0|pineapple|||||#4|2420|6610|0|||||||Platform|140|-25|3|140|15|1|-15|15|1|-15|-25|1#6|1160|6670|0|||||||#1|2635|6450|0|melon|||||#7|2635|6660|0|||||||||#4|2220|6685|0|||||||Platform|525|0|3|525|40|1|0|40|1|0|0|1#1|2530|6760|0|coconut|||||#1|2465|6760|0|melon|||||#1|2405|6760|0|greenfruit|||||#1|2345|6760|0|pineapple|||||#1|2595|6760|0||||||#4|3000|6485|0|||||||Platform|270|0|3|270|40|1|0|40|1|0|0|1#8|3435|6560|0|||||||-0.1||4|150#2|3135|6555|0|||||||#4|4205|6585|0|||||||Platform|135|0|3|135|40|1|-35|40|1|-35|0|1#1|4265|6180|0|pineapple|||||#1|4265|6120|0|pineapple|||||#1|4265|6240|0|pineapple|||||#1|4265|6300|0|pineapple|||||#1|4265|6365|0|pineapple|||||#4|4620|6790|0||1|||||Floor|1810|0|3|1830|65|1|0|65|1|0|0|1#9|4565|6740|0|||||||260#4|5050|6385|0|||||||Platform|1620|0|3|1620|40|1|0|40|1|0|0|1#2|4690|6355|0|||||||#4|4500|6385|0|||||||Platform|260|0|3|260|40|1|0|40|1|0|0|1#5|4830|6710|0||||||||980#7|4340|7035|0|||||||||#2|3600|6665|0|||||||#1|3525|6685|0|melon|||||#1|3465|6720|0|greenfruit|||||#1|3675|6685|0|coconut|||||#1|3735|6720|0||||||#4|3890|6860|0||1|||||Underground|190|-5|0|190|210|1|1295|210|3|1295|-20|1|3425|-15|0|3425|1060|0|-515|1070|0|-515|-5|0#1|4340|6965|0||||||#2|4195|7045|0|||||||#6|4850|7055|0|cavespikes||||||#6|4900|7055|0|cavespikes||||||#1|5085|6945|0|greenfruit|||||#1|5025|6940|0|coconut|||||#1|4960|6945|0|melon|||||#10|6690|6400|0||2||||||||#4|5625|6595|0|||||||Platform|685|0|3|685|40|1|0|40|1|0|0|1#2|6280|6565|0|||||||#1|6220|6565|0||||||#1|6155|6565|0||||||#1|6090|6565|0||||||#1|6025|6565|0||||||#1|5960|6565|0||||||#4|4835|6685|0|||||||Platform|725|5|3|725|45|1|575|45|1|575|5|1#4|6955|6580|0|||||||Platform|455|0|3|455|40|1|0|40|1|0|0|1#4|6475|6810|0||1|||||Water|535|-20|3|545|35|1|-50|40|1|-45|-20|1#4|7010|6790|0||1|||||Floor|4060|-5|3|4055|60|1|0|60|1|0|0|1#5|7275|6505|0|||||||9|1300#4|8175|6385|0|||||||Platform|790|0|3|790|45|1|-265|45|1|-265|0|1#2|7600|5940|0|||||||#5|7860|6710|0||||||||1300#1|5680|6265|0||||||#1|5850|6265|0|greenfruit|||||#1|6025|6265|0|melon|||||#1|6195|6265|0|coconut|||||#1|6370|6265|0|pineapple|||||#2|6540|6265|0|||||||#6|8315|6370|0|||||||#6|8600|6370|0|||||||#6|8875|6370|0|||||||#4|8055|6685|0|||||||Platform|220|0|3|220|40|1|0|40|1|0|0|1#4|8325|6585|0|||||||Platform|180|0|3|180|40|1|0|40|1|0|0|1#0|10660|6785|0|dividerTree|3||||||#2|8940|6355|0|||||||#1|8670|6355|0|melon|||||#1|8740|6355|0|melon|||||#1|8810|6355|0|melon|||||#1|8455|6355|0|pineapple|||||#1|8385|6355|0|pineapple|||||#1|8525|6355|0|pineapple|||||#1|8170|6355|0|greenfruit|||||#1|8240|6355|0|greenfruit|||||#1|8100|6355|0|greenfruit|||||#4|9180|6375|0|||||||Platform|140|15|3|140|55|1|-5|55|1|-5|15|1#10|8945|6420|0||||||||||#2|9265|6575|0|||||||#1|9325|6630|0||||||#1|9365|6700|0||||||#1|3215|6555|0|coconut|||||#1|3055|6555|0|melon|||||#4|9600|6685|0|||||||Platform|215|0|3|215|40|1|0|40|1|0|0|1#4|9785|6585|0|||||||Platform|215|0|3|215|40|1|0|40|1|0|0|1#4|9970|6495|0||3|||||Platform|215|0|3|215|40|1|0|40|0|0|0|1#1|10255|6750|0|melon|||||#1|10195|6750|0|pineapple|||||#1|10135|6750|0|greenfruit|||||#1|10070|6750|0||||||#1|10000|6750|0|coconut|||||#4|10650|5625|0|||||||Invisible|175|-5|0|175|1195|0|-10|1195|0|0|0|1#11|3810|6715|0|||||||#11|3810|6510|0|||||||#11|7010|6530|0|||||||#0|6405|6780|0|waterCap||1|||||#0|6980|6780|0|waterCap||2|||||#4|10260|6420|0||4|||||Invisible|65|10|3|115|-5|3|90|60|0|35|60|0|-5|5|0#12|3135|6455|0|||||||#2|2490|6655|0|||||||#2|7070|6765|0|||||||#2|8165|6600|0|||||||#2|4600|6860|0|||||||#0|6455|6735|0|fish|||||||#4|185|6910|0|||||||Floor|3265|-65|0|3265|1070|0|-190|1010|0|-195|-70|0#4|7720|6975|0|||||||Floor|3345|-140|0|3305|970|0|-425|1000|0|-415|-140|0#12|8415|6500|0|||||||#12|3135|6755|0|||||||#12|4265|6060|0|||||||#12|9250|6355|0|||||||#</objects></w>");
SSGame.processLevel("<w version=\"1,0,0,0\" levelName=\"CourtLevel\" preProcess=\"preProcess\" background=\"MainBG\" startNode=\"Start\" music=\"simpleLoop\"><objects types=\"GameElement,GameBigPoint,GameCollectDoody,CommandBox,SSShape,GameSpring,Spikes,BouncingObject,WalkingObject,GameSwing,Checkpoint,GameHealth\">0|605|6745|0||8||Start||||#1|2160|6900|0|||5|||#2|1040|7160|0|||||||#1|1665|7095|0|greenFruit||1|||#1|1525|7160|0|coconut||4|||#1|1830|7025|0|melon||2|||#1|2000|6965|0|pineapple||3|||#3|10450|6350|0|||||||||end#4|350|6090|0|||||||Invisible|120|20|3|120|680|3|35|680|1|35|20|1#0|430|6790|0|dividerTree|4|2|||||#0|10495|6785|0|homeTree|4||homeTree||||#4|0|6785|0||3|||||Floor|4505|0|3|4505|70|1|0|70|1|0|0|0#1|1315|6270|0|melon|||||#1|1975|6315|0|greenfruit|||||#1|1470|6270|0|greenFruit|||||#4|1390|6685|0|||||||Platform|410|0|3|410|40|1|0|40|1|0|0|1#5|4025|6405|0||||||||1180#6|1825|6030|0|||||||#4|700|6485|0|||||||Platform|180|0|3|180|40|1|0|40|1|0|0|1#4|3730|6485|0|||||||Platform|345|0|3|345|40|1|0|40|1|0|0|1#7|2275|6750|0|||||||||#4|10195|6780|0||3|||||Floor|1140|0|3|1140|95|1|-15|100|1|0|0|1#1|1390|6255|0|pineapple|||||#4|2420|6610|0|||||||Platform|185|-25|3|185|15|1|-15|15|1|-15|-25|1#6|1630|5985|0|||||||#1|2100|6275|0|melon|||||#7|2940|6750|0|||||||||#4|4980|6585|0|||||||Platform|525|0|3|525|40|1|0|40|1|0|0|1#1|3395|6755|0|greenfruit|||||#1|3535|6755|0|greenfruit|||||#1|3140|6755|0|greenfruit|||||#1|3675|6755|0|greenfruit|||||#1|3265|6755|0|greenfruit|||||#4|2810|6485|0|||||||Platform|270|0|3|270|40|1|0|40|1|0|0|1#8|2910|7495|0|||||||-0.1|0|19|150#2|2505|6555|0|||||||#4|6525|6585|0|||||||Platform|135|0|3|135|40|1|-65|40|1|-65|0|1#1|5580|5815|0|pineapple|||||#1|5580|6065|0|pineapple|||||#1|5580|5875|0|pineapple|||||#1|5580|5935|0|pineapple|||||#1|5580|6000|0|pineapple|||||#4|4620|6785|0|||||||Floor|1205|0|3|1205|75|1|0|75|1|0|0|1#4|6040|6385|0|||||||Platform|1620|0|3|1620|40|1|0|40|1|0|0|1#2|4690|6355|0|||||||#4|4465|6385|0|||||||Platform|260|0|3|260|40|1|0|40|1|0|0|1#5|4835|6705|0||||||||980#7|4155|6750|0|||||||||#2|3130|6965|0|||||||#1|3055|6985|0|melon|||||#1|2995|7020|0|greenfruit|||||#1|3205|6985|0|coconut|||||#1|3265|7020|0||||||#1|5510|7260|0||||||#2|5750|6985|0|||||||#6|5590|7275|0|cavespikes||||||#6|5645|7275|0|cavespikes||||||#1|5370|7260|0|greenfruit|||||#1|5440|7260|0|coconut|||||#1|5225|7260|0|melon|||||#9|3405|6160|0||2||||||||#4|5940|6785|0||1|||||Floor|705|0|3|715|95|1|15|95|1|15|0|1#2|6815|6650|0|||||||#1|6675|6280|0||||||#1|6975|6280|0||||||#1|6410|6280|0||||||#1|7235|6275|0||||||#1|4495|6355|0||||||#4|4930|6385|0|||||||Platform|725|5|3|725|45|1|575|45|1|575|5|1#4|6645|6710|0||1|||||Water|335|75|3|335|170|1|0|170|1|0|75|1#4|9660|6800|0|||||||Water|535|-20|3|535|75|1|-55|85|1|-45|-20|1#4|7010|6785|0||1|||||Floor|2605|-5|3|2605|90|1|-35|95|1|-35|0|1#5|10655|6700|0||||||||1300#4|8175|6385|0|||||||Platform|790|0|3|790|45|1|-265|45|1|-265|0|1#2|9925|6370|0|||||||#5|7860|6705|0||||||||1300#1|6640|6710|0||||||#1|6725|6670|0|greenfruit|||||#1|6990|6715|0|melon|||||#1|4595|6350|0|coconut|||||#1|6905|6675|0|pineapple|||||#2|5580|5750|0|||||||#6|7235|6365|0|||||||#6|5230|6765|0|||||||#6|6415|6365|0|||||||#4|8055|6685|0|||||||Platform|220|0|3|220|40|1|0|40|1|0|0|1#4|8325|6585|0|||||||Platform|180|0|3|180|40|1|0|40|1|0|0|1#0|10815|6785|0|dividerTree|5||||||#2|8940|6355|0|||||||#1|10235|6645|0|melon|||||#1|10285|6645|0|melon|||||#1|10340|6645|0|melon|||||#1|10285|6700|0|pineapple|||||#1|10235|6700|0|pineapple|||||#1|10340|6700|0|pineapple|||||#1|10285|6750|0|greenfruit|||||#1|10340|6750|0|greenfruit|||||#1|10235|6750|0|greenfruit|||||#4|9300|6570|0|||||||Platform|215|15|3|215|55|1|-5|55|1|-5|15|1#2|6815|6350|0|||||||#1|9680|6440|0||||||#1|9400|6540|0||||||#1|2315|6375|0|coconut|||||#1|2220|6315|0|pineapple|||||#4|6240|6685|0|||||||Platform|215|0|3|215|40|1|0|40|1|0|0|1#4|9575|6485|0|||||||Platform|215|0|3|215|40|1|0|40|1|0|0|1#4|10060|6485|0||3|||||Platform|215|0|3|215|40|1|0|40|0|0|0|1#1|8100|6340|0|melon|||||#1|8760|6340|0|pineapple|||||#1|8595|6340|0|greenfruit|||||#1|8435|6340|0||||||#1|8265|6340|0|coconut|||||#4|10800|5665|0|||||||Invisible|175|-5|0|175|1195|0|-10|1195|0|0|0|1#10|3895|6710|0|||||||#10|3895|6385|0|||||||#10|7620|6330|0|||||||#0|6620|6775|0|waterCap|4|1|||||#0|6945|6775|0|waterCap|4|2|||||#5|2525|7440|0||||||||1140#1|3145|7275|0|melon|||||#4|4005|6955|0|||||||Underground|690|-15|3|690|70|1|300|70|1|300|-15|1#4|3305|7085|0|||||||Underground|455|10|3|455|100|1|0|100|1|0|10|1#4|5070|7215|0|||||||Underground|610|75|3|610|-200|1|745|-200|3|745|180|1|45|180|1|45|75|1#4|2705|7085|0|||||||Underground|265|15|3|265|105|1|0|105|1|0|15|1#5|5905|7450|0||||||||2200#1|5300|7260|0|pineapple|||||#4|4070|7005|0|||||||Underground|495|300|3|495|100|1|925|100|3|925|385|1|-15|385|1|-15|300|1#4|5200|6990|0|||||||Underground|185|25|3|185|110|1|0|110|1|0|25|1#4|4060|7105|0|||||||Underground|190|0|3|190|85|1|0|85|1|0|0|1#4|2950|7290|0|||||||Underground|425|15|3|425|105|1|-40|105|1|-40|15|1#1|4495|7160|0||||||#1|4320|7160|0||||||#1|4410|7160|0||||||#8|1970|6760|0|||||||||5|150#4|1050|6585|0|||||||Platform|180|0|3|180|45|1|0|45|1|0|0|1#4|1050|6385|0|||||||Platform|180|0|3|180|45|1|0|45|1|0|0|1#4|1560|6385|0|||||||Platform|380|0|3|380|45|1|0|50|1|0|0|1#1|2390|6470|0||||||#1|785|6440|0||||||#1|1135|6550|0|coconut|||||#5|5580|6310|0||||||||1140#1|6815|6480|0|coconut|||||#1|6890|6480|0||||||#1|6735|6480|0|melon|||||#8|8875|6355|0|||||||||10|150#6|6675|6365|0|||||||#6|6975|6365|0|||||||#1|10395|6645|0|melon|||||#1|10395|6700|0|pineapple|||||#1|10395|6750|0|greenfruit|||||#1|10450|6750|0|greenfruit|||||#1|10450|6700|0|pineapple|||||#1|10450|6645|0|melon|||||#11|1455|6650|0|||||||#4|10445|6415|0||6|||||Invisible|65|15|3|110|0|3|90|45|0|30|40|0|5|10|0#10|7625|6735|0|||||||#4|2560|7655|0|||||||Underground|3395|-135|3|3445|420|0|-215|390|0|-145|-130|0#4|6610|7860|0|||||||Underground|1260|-980|0|1240|-365|0|-655|215|0|-655|-980|1#4|7750|6855|0|||||||Underground|1575|-5|0|1665|650|0|-15|755|0|0|0|0#4|9240|6840|0||0|||||Underground|1455|25|0|1615|615|0|-10|770|0|0|0|0#4|10640|6855|0||0|||||Underground|830|10|0|940|530|0|5|715|0|0|0|0#4|75|6855|0||1|||||Underground|925|-15|0|925|600|1|190|595|0|-60|-5|0#4|575|7665|0||1|||||Underground|1010|-475|3|1010|-170|0|410|-135|0|425|-475|0#4|1625|7075|0|||||||Underground|125|50|3|125|355|0|-40|355|0|-40|50|1#4|1750|7055|0|||||||Underground|165|0|3|165|285|0|0|285|0|0|0|1#4|2100|6945|0|||||||Underground|-20|50|3|-20|335|0|-185|335|0|-185|50|1#4|2120|6985|0||1|||||Underground|295|-55|3|295|990|1|-45|990|0|-40|-55|1#0|9595|6770|0|waterCap|2|1|||||#0|10160|6770|0|waterCap|3|2|||||#0|9695|6730|0|fish|8||||||#0|10025|6725|0|fish|5||||||#0|6775|6730|0|fish|2||||||#1|3070|7275|0||||||#1|3215|7275|0||||||#1|2995|7275|0|greenfruit|||||#1|3290|7275|0|greenfruit|||||#11|3145|7215|0|||||||#11|5905|6065|0|||||||#11|5230|6705|0|||||||#2|8415|6550|0|||||||#2|3895|7490|0|||||||#11|4155|7270|0|||||||#</objects></w>");
SSGame.processLevel("<w version=\"1,0,0,0\" levelName=\"name\" preProcess=\"preProcess\" background=\"MainBG\" startNode=\"Start\" music=\"simpleLoop\"><objects types=\"SSShape,GameElement,WalkingObject,Spikes,GameSwing,GameCollectDoody,GameBigPoint,GameSpring,BouncingObject,RopeObject,CommandBox,Checkpoint,GameHealth\">0|5|6790|0||1|||||Floor|2915|0|3|2920|145|1|0|145|1|0|0|0#1|605|6740|0||||Start||||#2|945|6760|0||||||||||#3|1145|6770|0|||||||#3|1185|6770|0|||||||#3|1225|6770|0|||||||#3|1265|6770|0|||||||#3|1305|6770|0|||||||#4|1315|6445|0||||||||||40#3|1345|6770|0|||||||#3|1385|6770|0|||||||#3|1425|6770|0|||||||#3|1460|6770|0|||||||#3|1505|6770|0|||||||#3|1105|6770|0|||||||#3|1965|6770|0|||||||#3|2010|6770|0|||||||#3|2055|6770|0|||||||#3|2095|6770|0|||||||#3|2140|6770|0|||||||#4|2165|6435|0||||||||||40#3|2180|6770|0|||||||#3|2225|6770|0|||||||#3|2270|6770|0|||||||#3|2305|6770|0|||||||#3|2350|6770|0|||||||#5|1735|6770|0|||||||#0|2910|6795|0|||||||Water|1265|-5|3|1265|145|0|5|135|0|5|-5|0#4|3145|6440|0||||||||||40#4|3555|6435|0||||||||2||40#6|3350|6655|0|melon||4|||#6|3765|6660|0|greenFruit||4|||#4|3970|6435|0||||||||||40#6|735|6760|0|coconut||2|||#6|955|6765|0|||3|||#0|4305|6790|0|||||||Floor|3285|0|3|3285|150|1|-130|150|1|-130|0|1#6|2390|6655|0|coconut||5|||#6|2435|6670|0|pineapple||5|||#6|2470|6710|0|||5|||#7|4505|6710|0||||||||460#0|4555|6625|0|||||||Platform|425|0|3|425|45|1|0|45|1|0|0|1#0|5320|6625|0|||||||Platform|410|0|3|410|40|1|0|40|1|0|0|1#5|5150|6530|0|||||||#6|5015|6580|0|greenFruit||1|||#6|5285|6590|0|coconut||4|||#6|5085|6550|0|melon||2|||#6|5220|6555|0|pineapple||3|||#0|5770|6680|0|||||||Platform|135|0|3|135|40|1|0|40|1|0|0|1#4|6145|6430|0||||||||||45#7|6425|6710|0||||||||560#3|6505|6775|0|||||||#3|6345|6775|0|||||||#3|6300|6775|0|||||||#3|6555|6775|0|||||||#3|6605|6775|0|||||||#3|6655|6775|0|||||||#3|6700|6775|0|||||||#3|6255|6775|0|||||||#0|6540|6575|0|||||||Platform|380|0|3|380|40|1|0|40|1|0|0|1#0|7265|6575|0|||||||Platform|310|0|3|310|40|1|0|40|1|0|0|1#3|6210|6775|0|||||||#3|6165|6775|0|||||||#3|6120|6775|0|||||||#5|7110|6480|0|||||||#6|6975|6535|0|||5|||#6|7035|6500|0|pineapple||4|||#6|7185|6505|0|coconut||3|||#6|7250|6535|0|melon||2|||#0|7675|6780|0|||||||Underground|205|70|0|205|275|1|-1605|275|1|-1605|225|1|0|225|3|0|70|1#0|5835|6930|0||1|||||Floor|0|605|1|2245|605|0|2245|-150|1|4415|-150|3|4415|935|0|-245|930|0|-245|0|0|0|0|0#8|7380|6975|0||||||||400|1#8|7200|6975|0||||||||400|1#8|7035|6975|0||||||||400|1#5|7030|6980|0|||||||#6|6860|6980|0|coconut|||||#6|6610|6980|0||||||#6|6400|6975|0|greenFruit|||||#6|6160|6975|0|pineapple|||||#7|6120|7505|0||2|||||37|1660#7|6460|7065|0||1|||||129|840#7|6795|7530|0||2|||||-62|1000#7|6690|7530|0||2|||||44|1460#7|7145|7065|0||1|||||135|1040#3|7575|7525|0|cavespikes||||||#3|7615|7525|0|cavespikes||||||#3|7655|7525|0|cavespikes||||||#3|6635|7525|0|cavespikes||||||#3|6590|7525|0|cavespikes||||||#3|6540|7525|0|cavespikes||||||#3|6490|7525|0|cavespikes||||||#3|6435|7525|0|cavespikes||||||#3|6385|7525|0|cavespikes||||||#3|6330|7525|0|cavespikes||||||#3|6275|7525|0|cavespikes||||||#3|6220|7525|0|cavespikes||||||#3|6165|7525|0|cavespikes||||||#7|8035|7460|0||||||||1580#7|8390|6700|0||||||||1580#5|8905|5995|0|||||||#6|8585|5940|0||||||#6|8565|5885|0||||||#7|8690|6705|0||||||||1580#6|8610|6000|0||||||#6|8875|5940|0||||||#6|8850|5880|0||||||#4|9595|6405|0||||||||||#4|10105|6380|0||||||||2||#4|10610|6350|0||||||||||#0|10915|6520|0|||||||Platform|495|5|3|495|45|1|-30|45|1|-30|5|1#7|11380|6440|0||||||||1180#6|11550|5965|0||||||#6|11580|6015|0||||||#6|11615|6080|0||||||#0|11655|6525|0|||||||Platform|145|0|3|145|45|1|-20|45|1|-20|0|1#7|11720|6450|0||||||||1180#0|11230|6785|0|||||||Floor|840|-5|3|840|80|1|370|80|1|370|680|1|465|670|1|475|680|1|1075|675|1|1160|690|1|1285|690|1|1285|80|1|920|80|1|920|-5|1|1350|-5|3|2045|-5|3|2045|65|1|1720|65|1|1720|690|1|1805|690|0|1830|720|1|2345|740|0|2445|695|1|2515|695|2|2515|65|1|2125|65|1|2125|-5|1|4270|-5|3|4065|815|1|-1075|820|1|-1075|-5|1#5|11645|7395|0|||||||#6|12475|7415|0||||||#6|12995|7445|0||||||#5|13705|7445|0|||||||#9|13705|6855|0|||||||630#9|12990|6845|0|||||||620#9|12475|6865|0|||||||570#9|11640|6860|0|||||||570#9|12110|6665|0|||||||260#9|13315|6670|0|||||||240#0|13815|7030|0|||||||Platform|10|-325|1|285|-325|3|285|-285|1|10|-285|1#0|14155|6640|0|||||||Platform|320|0|3|320|40|1|0|40|1|0|0|1#0|14525|6570|0|||||||Platform|345|0|3|345|40|1|0|40|1|0|0|1#2|14830|6535|0||||||||||#2|14425|6610|0||||||||||#2|14065|6675|0||||||||||#6|11900|5950|0||||||#6|11930|6000|0||||||#5|11960|6050|0|||||||#5|7325|7490|0|||||||#10|14905|6365|0|||||||||end#0|7695|6100|0|||||||Invisible|120|20|3|120|680|3|35|680|1|35|20|1#5|12755|5910|0|||||||#7|12410|6695|0|||||||10|1500#6|12525|6080|0||||||#6|12610|5980|0||||||#6|12895|5975|0||||||#6|13000|6080|0||||||#3|9495|6765|0|||||||#3|9540|6765|0|||||||#3|9585|6765|0|||||||#3|9635|6765|0|||||||#3|9685|6765|0|||||||#3|9730|6765|0|||||||#3|9775|6765|0|||||||#1|7775|6795|0|dividerTree|2|2|||||#9|14855|6370|0|||||||180#1|14950|6785|0|homeTree|||homeTree||||#11|8035|7400|0|||||||#11|4280|6765|0|||||||#11|12420|6640|0|||||||#0|11710|6945|0|||||||Underground|720|-20|3|720|550|1|-30|550|0|-30|-20|1#0|11495|7370|0|||||||Underground|190|80|3|190|100|0|90|100|0|90|80|0#0|12370|7315|0|||||||Underground|155|140|3|155|160|0|55|160|0|55|140|0#0|13185|7030|0|||||||Underground|490|-120|3|490|520|1|-150|520|0|-150|-115|1#0|12895|7440|0|||||||Underground|145|35|3|145|55|0|50|55|0|50|35|0#0|13605|7385|0|||||||Underground|140|95|3|140|105|0|65|105|0|65|95|0#0|5855|7520|0|||||||Underground|2225|15|3|2225|185|0|-20|185|0|-20|15|0#1|4160|6780|0|waterCap|2|2|||||#1|2890|6780|0|waterCap|2|1|||||#1|475|6795|0|dividerTree|2||||||#0|465|6205|0|||||||Invisible|45|0|3|45|585|3|0|585|3|0|0|0#1|15220|6785|0|dividerTree|2||||||#0|15115|6140|0|||||||Invisible|170|20|3|185|630|3|65|630|1|50|25|1#0|14900|6420|0|||||||Invisible|70|10|3|115|-5|3|90|55|0|35|60|0|0|0|0#12|5145|6760|0|||||||#12|7115|6770|0|||||||#0|7590|6790|0||1|||||Floor|290|0|3|290|115|1|85|130|0|85|0|1#12|2645|6760|0|||||||#12|11995|6755|0|||||||#12|14210|6610|0|||||||#12|7855|7490|0|||||||#</objects></w>");
SSGame.processLevel("<w version=\"1,0,0,0\" levelName=\"joshLevel2\" preProcess=\"preProcess\" background=\"MainBG\" startNode=\"Start\" music=\"simpleLoop\"><objects types=\"SSShape,GameElement,GameSwing,RopeObject,Spikes,GameBigPoint,GameCollectDoody,WalkingObject,BouncingObject,GameSpring,CommandBox,GameHealth,Checkpoint\">0|305|6805|0||0|||||Floor|3450|-5|3|3460|280|1|-280|285|1|-280|-5|1#1|620|6735|0||2||Start||||#0|1070|6745|0|||||||Platform|240|-25|3|240|15|1|0|15|1|0|-25|1#2|1565|6370|0||||||||||#0|1845|6555|0|||||||Platform|140|0|3|140|40|1|0|40|1|0|0|1#3|2020|6500|0|||||||280#4|1345|6785|0|||||||#4|1385|6785|0|||||||#4|1430|6785|0|||||||#4|1480|6785|0|||||||#4|1525|6785|0|||||||#4|1575|6785|0|||||||#4|1630|6785|0|||||||#4|1685|6785|0|||||||#4|1735|6785|0|||||||#4|1785|6790|0|||||||#4|1840|6790|0|||||||#0|2080|6485|0|||||||Platform|725|0|3|725|40|1|0|40|1|0|0|1#5|2690|6465|0|melon|||||#5|2755|6465|0|pineapple|||||#5|2635|6465|0|greenFruit|||||#5|2630|6785|0|coconut|||||#5|2695|6785|0||||||#6|2755|6785|0|||||||#0|3885|6730|0||1|||||Water|585|70|3|595|345|1|-145|355|1|-130|70|1#0|3965|6835|0||0|||||Invisible|160|-45|3|160|-10|0|120|-10|1|120|-45|1#0|4750|6595|0|||||||Floor|2355|205|3|2370|535|1|-295|510|1|-280|205|1#0|4865|6720|0|||||||Platform|195|0|3|195|40|1|0|40|1|0|0|1#2|5300|6370|0||||||||||#4|5085|6785|0|||||||#4|5135|6785|0|||||||#4|5190|6785|0|||||||#4|5250|6785|0|||||||#4|5310|6785|0|||||||#4|5365|6785|0|||||||#4|5420|6785|0|||||||#4|5475|6785|0|||||||#4|5525|6785|0|||||||#0|5635|6900|0|||||||Platform|-70|-340|1|150|-340|3|150|-300|1|-70|-300|1#3|5825|6470|0|||||||280#0|5935|6480|0|||||||Platform|695|0|3|695|40|1|-75|40|1|-75|0|1#5|6600|6460|0|melon|||||#5|6515|6460|0|coconut|||||#5|6410|6460|0|greenFruit|||||#5|6405|6780|0|pineapple|||||#5|6515|6780|0||||||#6|6610|6785|0|||||||#0|7105|6800|0|||||||Water|1085|0|3|1085|245|1|-10|245|1|0|0|1#0|7415|6795|0|||||||Invisible|50|0|3|50|20|0|0|20|1|0|0|1#0|7825|6795|0|||||||Invisible|35|0|3|35|20|0|0|20|1|0|0|1#0|8400|6560|0|||||||Floor|445|240|3|445|550|1|-220|550|1|-210|240|1#0|8695|6840|0||0|||||Underground|110|0|1|150|270|1|385|270|3|635|465|3|2085|465|3|2085|360|1|1410|360|1|1555|270|3|2120|270|3|2455|515|3|3040|515|3|3040|360|1|2465|360|1|2345|265|1|3350|265|3|3350|80|1|3600|80|1|3600|900|1|-5|890|1|-270|0|1#5|9795|7095|0|melon|||||#6|9800|7270|0||0|||||#6|10470|7070|0|||||||#5|10720|7270|0|pineapple|||||#6|11695|7315|0|||||||#5|11695|7065|0|coconut|||||#1|3840|6745|0|fish|||||||#1|4275|6745|0|fish|||||||#1|7570|6750|0|fish|2||||||#1|8000|6750|0|fish|2||||||#0|12065|6780|0|||||||Floor|1960|20|3|1960|150|1|-20|150|1|-20|20|1#3|11995|6790|0|||||||280#0|11555|6705|0|||||||Platform|335|0|3|335|45|1|0|45|1|0|0|1#0|10940|6705|0|||||||Platform|535|0|3|535|45|1|0|45|1|0|0|1#7|11610|6775|0|||||||||4|#4|11865|6690|0|||||||#4|11010|6780|0|||||||#0|11500|6615|0|||||||Platform|395|0|3|395|40|1|-305|40|1|-305|0|1#0|10935|6615|0|||||||Platform|185|0|3|185|40|1|5|40|1|5|0|1#7|11230|6675|0|||||||||4|#7|11670|6585|0|||||||||4|#5|11030|6580|0|pineapple||1|||#5|11790|6590|0|coconut||2|||#5|11790|6680|0|||3|||#4|11865|6595|0|||||||#0|11700|6525|0|||||||Platform|195|0|3|195|40|1|-65|40|1|-65|0|1#6|11790|6495|0|||||||#2|10630|6370|0||||||||||40#4|10830|6780|0|||||||#4|10770|6780|0|||||||#4|10705|6780|0|||||||#4|10645|6780|0|||||||#4|10580|6780|0|||||||#4|10520|6780|0|||||||#4|10465|6780|0|||||||#4|10410|6780|0|||||||#0|10190|6705|0|||||||Platform|205|0|3|205|45|1|-775|45|1|-775|0|1#0|9095|6050|0|||||||Invisible|70|90|3|70|745|3|0|745|1|0|90|1#6|10290|6775|0|||||||#0|9415|6615|0|||||||Platform|165|0|3|165|40|1|0|40|1|0|0|1#4|9455|6685|0|||||||#0|9740|6615|0|||||||Platform|575|0|3|575|40|1|-85|40|1|-85|0|1#4|10280|6595|0|||||||#4|9455|6595|0|||||||#0|9415|6520|0|||||||Platform|640|0|3|640|40|1|0|40|1|0|0|1#0|10070|6455|0|||||||Platform|245|65|3|245|105|1|60|105|1|60|65|1#4|10280|6500|0|||||||#8|9795|6575|0||||||||150|0.3#8|9935|6575|0||||||||150|0.3#1|4080|6790|0|submergedLog|||||||#1|3725|6790|0|waterCap|2|1|||||#1|7420|6790|0|submergedLog|2||||||#1|7820|6790|0|submergedLog|2||||||#1|7075|6790|0|waterCap|2|1|||||#1|4445|6790|0|waterCap|2|2|||||#1|8165|6790|0|waterCap|2|2|||||#1|9125|6805|0|dividerTree|3||||||#6|10150|6260|0|||||||#9|9290|6730|0||||||||1300#0|430|6275|0|||||||Invisible|75|-45|3|75|530|3|15|530|0|15|-40|0#1|470|6805|0|dividerTree|2||||||#9|9285|6395|0|||||||77|3140#5|3760|6755|0||||||#5|4000|6700|0||||||#5|4065|6755|0||||||#5|3840|6700|0||||||#5|4145|6755|0|melon|||||#5|4465|6760|0|melon|||||#5|4230|6700|0|melon|||||#5|4380|6705|0|melon|||||#6|4310|6675|0|||||||#5|7115|6750|0|pineapple|||||#5|7395|6750|0|pineapple|||||#5|7185|6705|0|pineapple|||||#5|7320|6705|0|pineapple|||||#5|7250|6675|0|pineapple|||||#5|3920|6670|0||||||#5|7490|6745|0|greenFruit|||||#5|7795|6745|0|greenFruit|||||#5|7570|6700|0|greenFruit|||||#5|7705|6700|0|greenFruit|||||#5|7635|6670|0|greenFruit|||||#5|7885|6745|0|coconut|||||#5|8160|6745|0|coconut|||||#5|7955|6700|0|coconut|||||#5|8080|6700|0|coconut|||||#6|8015|6670|0|||||||#0|12180|6710|0|||||||Platform|250|0|3|250|40|1|0|40|1|0|0|1#0|12475|6615|0|||||||Platform|230|0|3|230|40|1|0|40|1|0|0|1#0|12660|6440|0|||||||Platform|325|75|3|325|115|1|90|115|1|90|75|1#1|13075|6805|0|HomeTree|2||homeTree||||#10|13035|6385|0|||||||||end#0|13335|6210|0|||||||Invisible|75|-40|3|85|590|3|0|590|0|0|-40|1#1|13375|6805|0|dividerTree|2||||||#5|10210|6585|0|melon|||||#5|10210|6480|0|coconut|||||#5|9530|6675|0||||||#0|13020|6445|0|||||||Invisible|70|5|3|120|-10|3|90|55|0|40|55|0|5|-5|0#11|10955|6775|0|||||||#12|8925|6870|0|||||||#12|11935|6725|0|||||||#11|9255|6520|0||1|||||#11|9530|6585|0|||||||#0|9235|6875|0|||||||Floor|2715|-75|3|2715|55|1|-230|55|1|-230|-75|1#0|9235|6950|0||1|||||Underground|1105|-50|1|710|230|1|150|230|1|70|160|1|610|160|3|610|-20|1|0|-20|1|0|-50|1#1|11870|6510|0|spikes|2||||||#5|11085|6775|0|greenfruit|||||#5|11145|6775|0|greenfruit|||||#5|11205|6775|0|greenfruit|||||#5|11270|6775|0|greenfruit|||||#5|11335|6775|0|greenfruit|||||#5|9865|6500|0|pineapple|||||#5|9705|6500|0|greenFruit|||||#</objects></w>");
SSGame.processLevel("<w version=\"1,0,0,0\" levelName=\"joshlevel1\" preProcess=\"preProcess\" background=\"MainBG\" startNode=\"Start\" music=\"simpleLoop\"><objects types=\"SSShape,GameElement,GameSpring,GameBigPoint,Spikes,WalkingObject,GameCollectDoody,RopeObject,BouncingObject,GameSwing,Checkpoint,CommandBox,GameHealth\">0|1070|6785|0|||||||Floor|205|0|3|205|275|1|-1040|275|1|-1040|0|1#0|695|6035|0|||||||Invisible|-210|-410|3|-210|745|3|-290|745|0|-290|-405|0#1|445|6790|0|dividerTree|2||||||#1|905|6720|0||||Start||||#0|510|6690|0|||||||Platform|285|0|3|285|40|1|0|40|1|0|0|1#2|495|6585|0|||||||25|540#0|625|6500|0|||||||Platform|230|0|3|230|40|1|0|40|1|0|0|1#3|770|6655|0||1||||#0|1265|6500|0|||||||Platform|400|0|3|400|40|1|-75|40|1|-70|0|1#4|1300|6485|0|||||||#4|1575|6485|0|||||||#5|1470|6465|0||||||||||40#3|1370|6480|0|coconut|||||#6|1505|6480|0|||||||#3|1025|6390|0||||||#3|950|6415|0||||||#3|1100|6415|0||||||#3|1165|6450|0||||||#3|885|6460|0||||||#0|1270|6870|0|||||||Underground|135|0|3|135|95|1|0|95|1|0|0|1#0|1395|6960|0|||||||Underground|135|0|3|135|175|0|0|175|1|0|0|0#0|1530|7050|0|||||||Underground|115|0|3|115|85|1|-975|85|1|-975|0|1#3|1455|7025|0||1||||#3|1385|7030|0||1||||#3|1320|7030|0||1||||#0|1645|7130|0|||||||Underground|245|5|3|245|195|1|-325|195|1|-325|5|1#0|1475|6775|0|||||||Floor|605|10|3|605|75|1|0|75|1|0|10|1#2|1860|6710|0|||||||8|1560#2|1920|6705|0|||||||-12|1700#2|1930|6175|0|||||||-118|1880#2|1790|6095|0|||||||25|580#0|2035|6350|0|||||||Platform|430|0|3|430|40|1|0|40|1|0|0|1#0|2140|6720|0|||||||Floor|460|65|3|460|330|1|180|330|1|180|145|1|90|145|0|90|295|1|-85|295|1|-85|65|1#0|2060|7130|0||1|||||Underground|260|0|3|260|-105|1|380|-105|1|380|345|0|0|345|1|0|0|1#2|2320|7115|0||1||||||2000#3|2265|6590|0|melon|||||#3|2265|6475|0|melon|||||#3|2265|6530|0|melon|||||#0|2055|7015|0||3|||||Underground|345|-170|0|355|675|0|0|675|0|0|-170|0#0|2070|7450|0|||||||Underground|0|240|1|-1390|240|0|-1390|0|1|0|0|3#0|550|7025|0||1|||||Underground|135|0|0|135|720|1|-485|460|0|-485|0|0#3|2135|7090|0||0||||#3|1800|7090|0||1||||#3|1860|7090|0||1||||#3|2265|6425|0|melon|||||#3|1790|6735|0|greenFruit|||||#3|1730|6705|0|greenFruit|||||#3|1665|6685|0|greenFruit|||||#3|1595|6705|0|greenFruit|||||#3|1530|6740|0|greenFruit|||||#4|1665|6770|0|||||||#0|1250|7235|0|||||||Underground|0|110|1|-140|110|1|-140|20|1|-70|20|3|-65|-35|1|0|-35|3#6|1145|7225|0|||||||#7|1975|7050|0|||||||350#0|735|7355|0|||||||Underground|50|0|3|50|60|1|-55|60|1|-55|0|1#8|760|7420|0||||||||200|#0|830|7240|0|||||||Underground|100|70|3|100|135|1|35|135|1|35|70|1#3|895|7285|0|pineapple|||||#3|760|7330|0|pineapple|||||#0|1000|7285|0|||||||Underground|55|0|3|55|65|1|-10|65|1|-10|0|1#3|1025|7260|0|pineapple|||||#4|1775|7435|0|caveSpikes||||||#4|1600|7435|0|caveSpikes||||||#4|1410|7435|0|caveSpikes||||||#3|1685|7435|0|melon|||||#3|1505|7435|0|coconut|||||#0|2815|6355|0|||||||Platform|105|0|3|105|40|1|-25|40|1|-25|0|1#0|2680|6820|0||3|||||Floor|900|15|3|900|285|1|-5|285|1|-5|15|1#3|2890|6335|0||||||#0|3280|6350|0|||||||Platform|130|0|3|130|35|1|0|35|1|0|0|1#3|3320|6330|0||||||#6|3105|6250|0|||||||#3|3005|6275|0||||||#3|3215|6280|0||||||#0|3585|6335|0||3|||||Platform|520|15|3|520|55|1|135|55|1|135|15|1#9|3320|6385|0||||||||2||45#9|2890|6385|0||||||||||45#5|3480|6805|0||||||||||#5|3330|6800|0||||||||||#5|3090|6800|0||||||||||70#5|2950|6805|0||||||||||#5|2755|6800|0||||||||0||120#5|2850|6800|0||||||||0||#5|3215|6795|0||||||||0|2|100#0|2565|6675|0|||||||Floor|115|110|3|115|430|1|-145|430|1|-110|110|1#6|3105|6555|0|||||||#0|2600|6695|0|||||||Platform|60|0|3|60|40|1|-80|40|1|-80|0|1#0|3490|6600|0|||||||Platform|260|95|3|260|140|1|115|140|1|115|95|1#3|2650|6610|0|coconut|||||#3|3605|6620|0|coconut|||||#0|1760|6970|0||1|||||Underground|305|10|3|305|70|1|-5|70|1|-5|10|1#3|2015|6945|0||||||#3|2015|6895|0|melon|||||#3|1970|6945|0||||||#3|1970|6895|0|melon|||||#3|1925|6945|0||||||#3|1925|6895|0|melon|||||#3|1880|6945|0||||||#3|1880|6895|0|melon|||||#0|3810|6785|0||3|||||Floor|915|0|3|915|120|1|195|120|1|195|55|1|125|55|0|125|485|1|-240|485|1|-240|0|1#0|3935|6970|0|||||||Underground|230|0|3|230|85|1|555|85|3|555|165|1|790|165|3|790|300|1|0|300|1|0|0|1#0|4220|6905|0|||||||Underground|505|0|0|505|160|1|340|160|1|340|75|1|10|75|1|10|0|1#2|3935|6955|0||2||||||1560#6|3955|6415|0|||||||#3|3960|6465|0|coconut|||||#3|3960|6535|0|coconut|||||#3|3960|6605|0|coconut|||||#0|4720|7215|0|||||||Underground|1325|0|3|1325|225|0|0|225|0|0|0|0#3|4455|7015|0||4||||#3|4350|7015|0||4||||#3|4255|7015|0||4||||#3|4145|6950|0||4||||#0|3895|6835|0||3|||||Underground|835|0|0|835|600|0|0|595|0|0|0|0#0|4990|6695|0|||||||Floor|3325|85|3|3325|165|1|-160|150|1|-160|85|1#0|4315|6690|0|||||||Platform|55|0|3|55|50|1|0|50|1|0|0|1#8|4340|6755|0||||||||200|#0|4495|6610|0|||||||Platform|55|0|3|55|40|1|0|40|1|0|0|1#0|4495|6700|0|||||||Platform|50|0|3|50|45|1|0|45|1|0|0|1#8|4520|6665|0||||||||200|#0|4670|6540|0|||||||Platform|50|0|3|50|50|1|0|50|1|0|0|1#0|4670|6635|0|||||||Platform|50|0|3|50|45|1|0|45|1|0|0|1#8|4695|6605|0||||||||200|#0|4840|6475|0|||||||Platform|390|0|3|390|45|1|0|45|1|0|0|1#0|6035|6985|0|||||||Underground|130|-60|3|130|-150|1|370|-140|0|370|450|1|10|450|1|10|-60|1#6|6140|6875|0|||||||#2|5695|7175|0|||||||48|1340#0|5635|6905|0||1|||||Underground|55|-65|0|55|125|1|5|125|1|5|-65|1#0|4985|6920|0|||||||Underground|575|5|3|575|295|1|525|295|0|525|65|1|0|65|1|0|5|1#0|4840|6895|0||1|||||Underground|45|-65|0|45|170|1|585|170|3|585|240|1|-10|240|1|-10|-50|1#7|5470|6985|0|||||||200#7|4940|6840|0|||||||190#7|5595|6845|0|||||||330#8|5205|7025|0||||||||250|#3|5330|7030|0|coconut|||||#3|5070|7030|0|melon|||||#2|4960|6395|0||||||||700#2|5190|6395|0||||||||700#3|5070|6095|0||||||#0|5415|6440|0|||||||Platform|460|35|3|460|55|1|25|55|1|25|35|1#2|5475|6395|0||||||||700#3|5330|6095|0||||||#2|5740|6400|0||||||||700#6|5610|6090|0|||||||#4|5005|6460|0|||||||#4|5050|6460|0|||||||#4|5100|6460|0|||||||#4|5145|6460|0|||||||#4|5530|6460|0|||||||#4|5580|6460|0|||||||#4|5630|6460|0|||||||#4|5685|6460|0|||||||#0|5095|6695|0|||||||Platform|755|0|3|755|40|1|0|40|1|0|0|1#6|5665|6755|0|||||||#3|5570|6755|0|pineapple|||||#3|5465|6755|0|greenFruit|||||#3|5350|6755|0|melon|||||#3|5240|6755|0|coconut|||||#5|5730|6740|0|||||||||4|200#0|6000|6645|0|||||||Platform|590|50|3|590|90|1|-70|90|1|-70|50|1#6|6495|6750|0|||||||#5|6555|6750|0|||||||||4|200#3|6375|6750|0||||||#3|6245|6750|0|coconut|||||#3|6110|6750|0|pineapple|||||#3|5970|6750|0|melon|||||#10|3965|6750|0|||||||#2|5330|6610|0||||||||1420#6|5330|5960|0|||||||#0|6380|6845|0|||||||Underground|1945|-10|0|1930|625|0|-20|590|0|0|-5|0#1|7225|6785|0|homeTree|2||homeTree||||#0|7155|6425|0|||||||Invisible|135|0|3|135|10|0|15|10|0|15|0|0#11|7175|6335|0|||||||||end#0|7560|5825|0|||||||Invisible|220|-85|0|295|915|0|-80|955|0|-80|-40|1#1|7500|6785|0|dividerTree|2||||||#0|7045|6485|0|||||||Platform|130|0|3|130|45|1|-25|45|1|-25|0|1#0|6925|6560|0|||||||Platform|75|0|3|75|40|1|-85|40|1|-85|0|1#0|6780|6625|0|||||||Platform|35|10|3|35|55|1|-120|55|1|-120|10|1#2|6300|6615|0||||||||1420#12|6300|5930|0|||||||#7|4785|6710|0|||||||470#12|4085|6330|0|||||||#12|1285|7255|0|||||||#0|1240|6935|0||8|||||Underground|160|55|0|290|55|0|290|150|0|400|150|0|400|385|0|75|385|0|75|170|0|-710|170|0|-710|-20|0|160|-20|0#0|5555|7265|0|||||||Underground|0|-90|0|0|50|0|-45|50|0|-45|-90|0#</objects></w>");
SSGame.onReady = function () {
_global.root.gotoAndStop("complete");
trace("Ready, root = " + _global.root);
};
SSGame.process();
Instance of Symbol 266 MovieClip "mcIntroLoop" in Frame 35
onClipEvent (load) {
this.snd = new Sound(this);
}
Frame 36
bOnComplete = true;
stop();
mcIntroLoop.play();
Frame 46
SSGame.startNewGame();
Frame 50
prevFrame();
Symbol 26 MovieClip Frame 52
stop();
Symbol 411 MovieClip [__Packages.GDK.Base] Frame 0
class GDK.Base extends MovieClip
{
static var root;
var worlds, useMask, setMask, attachMovie, tabChildren, _xscale, _yscale, _parent, sendEvent, mcMask, mcDead0, engineIntervalID, lastUpdate, onStart, onPause, onResume, onStop, activeWorld, onUpdate, onWorldChanged;
function Base () {
super();
new GDK.EventSubscriber(this);
worlds = new GDK.Collection();
if (useMask) {
setMask(attachMovie("Square", "mcMask", 13421568));
}
root = this;
tabChildren = false;
setSize(Math.round(_xscale), Math.round(_yscale));
_yscale = (_xscale = 100);
previewClip = _parent._name == "contents";
if (!previewClip) {
for (var i in this) {
if (i.indexOf("mcDead") != -1) {
this[i].swapDepths(1048575);
this[i].removeMovieClip();
}
}
}
}
function setSize(w, h, noEvent) {
if ((w == width) && (h == height)) {
return(undefined);
}
halfWidth = w * 0.5;
halfHeight = h * 0.5;
if (noEvent) {
width = w;
height = h;
} else {
sendEvent("Resize", (width = w), (height = h), width, height);
}
if (useMask) {
mcMask._xscale = w;
mcMask._yscale = h;
}
if (mcDead0) {
mcDead0._xscale = w;
mcDead0._yscale = h;
}
}
function start() {
if (engineIntervalID) {
return(undefined);
}
trace("Playback Started");
lastUpdate = getTimer();
engineIntervalID = setInterval(function (o) {
o.update();
}, 0, this);
onStart();
sendEvent("Start");
running = true;
update();
}
function pause() {
trace("Pause Game");
paused = true;
onPause();
sendEvent("Pause");
update();
}
function resume() {
trace("Resume Game");
paused = false;
onResume();
sendEvent("Resume");
update();
}
function stop() {
running = false;
clearInterval(engineIntervalID);
delete engineIntervalID;
onStop();
sendEvent("Stop");
}
function update() {
if (paused) {
lastUpdate = getTimer();
return(undefined);
}
var elapsed = Math.min(maxFrameTime, (lastUpdate - ((lastUpdate = getTimer()))) * -0.001);
var elapsed = (lastElapsed - Math.max(-maxTimeDifference, Math.min(maxTimeDifference, lastElapsed - elapsed)));
activeWorld.update(elapsed);
activeWorld.render(elapsed);
onUpdate();
sendEvent("Update", (lastElapsed = elapsed));
}
function getWorld(name) {
var i = worlds.length;
while ((--i) > -1) {
if (worlds[i].name == name) {
return(worlds[i]);
}
}
return(null);
}
function addWorld(worldObj) {
if (!worlds.addMember(worldObj)) {
trace(("The world (" + worldObj.name) + ") already in this component.");
return(undefined);
}
worldObj.displayNode = this;
worldObj.engine = this;
}
function removeWorld(worldObj) {
var i = worlds.length;
while ((--i) > -1) {
if (worlds[i] == worldObj) {
worlds.splice(i, 1);
}
}
delete worlds[worldObj.name];
worldObj.removeFromScene();
}
function removeAllWorlds() {
activeWorld.removeFromScene();
activeWorld = null;
var i = worlds.length;
while ((--i) > -1) {
worlds[i].removeFromScene();
}
worlds = new GDK.Collection();
}
function setActiveWorld(worldObj) {
if (activeWorld == worldObj) {
return(undefined);
}
activeWorld.removeFromScene();
activeWorld = worldObj;
worldObj.addToScene();
worldObj.update(0.0001);
onWorldChanged();
sendEvent("WorldChanged");
}
function onUnload() {
stop();
sendEvent("Unload");
setActiveWorld(null);
}
var previewClip = false;
var paused = false;
var width = 100;
var height = 100;
var halfWidth = 50;
var halfHeight = 50;
var version = "GDK 1,3,80,0";
var running = false;
var maxFrameTime = 0.05;
var lastElapsed = 0.005;
var maxTimeDifference = 0.005;
}
Symbol 412 MovieClip [__Packages.GDK.EventSubscriber] Frame 0
class GDK.EventSubscriber
{
var mappedEvents;
function EventSubscriber (obj) {
initObject(obj);
}
static function initObject(obj) {
obj.addEvent = GDK.EventSubscriber.prototype.addEvent;
obj.removeEvent = GDK.EventSubscriber.prototype.removeEvent;
obj.sendEvent = GDK.EventSubscriber.prototype.sendEvent;
obj.removeAllEvents = GDK.EventSubscriber.prototype.removeAllEvents;
obj.mappedEvents = {};
}
function addEvent(name, method, target, options) {
if (!target) {
target = this;
}
var a;
if (!((a = mappedEvents[name]))) {
a = (mappedEvents[name] = []);
}
var e = {t:target, fn:method, n:(options & EVENT_NAME_AS_ARGUMENT) > 0};
if ((options & 1) == 0) {
a.push(e);
} else {
a.unshift(e);
}
}
function sendEvent(name) {
var a;
if ((a = mappedEvents[name])) {
var args = arguments.slice(1);
var i = a.length;
while ((--i) > -1) {
a[i].fn.apply(a[i].t, (a[i].n ? (arguments) : (args)));
}
}
}
function removeEvent(name, method, target) {
var a;
if ((name == null) || (!((a = mappedEvents[name])))) {
return(undefined);
}
var i = a.length;
if (!target) {
while ((--i) > -1) {
if (a[i].fn == method) {
a.splice(i, 1);
}
}
} else if (!method) {
while ((--i) > -1) {
if (a[i].t == target) {
a.splice(i, 1);
}
}
} else {
while ((--i) > -1) {
if ((a[i].fn == method) && (a[i].t == target)) {
a.splice(i, 1);
}
}
}
}
function removeAllEvents(target) {
var a;
for (var i in mappedEvents) {
var j = ((a = mappedEvents[i])).length;
while ((--j) > -1) {
if (a[j].t == target) {
a.splice(j);
}
}
}
}
static var CALL_LAST = 1;
static var EVENT_NAME_AS_ARGUMENT = 2;
}
Symbol 413 MovieClip [__Packages.GDK.Collection] Frame 0
class GDK.Collection extends Array
{
var id, push, length, splice;
function Collection () {
super();
Collections[(id = ++created)] = this;
}
static function removeFromAll(obj) {
var o;
if (!((o = obj.__col))) {
return(undefined);
}
for (var i in o) {
Collections[i].removeMember(obj);
}
}
static function removeAll() {
trace("Remove All");
}
function addMember(obj) {
if (obj.__col[id]) {
return(false);
}
push(obj);
if (!obj.__col) {
obj.__col = {count:0};
}
obj.__col[id] = true;
obj.__col.count++;
return(true);
}
function removeMember(obj) {
if (!obj.__col[id]) {
return(false);
}
var i = length;
while ((--i) > -1) {
if (this[i] == obj) {
splice(i, 1);
break;
}
}
if (!(--obj.__col.count)) {
delete obj.__col;
} else {
delete obj.__col[id];
}
delete this[length];
return(true);
}
function update(elapsed) {
var i = length;
while ((--i) > -1) {
this[i].update(elapsed);
}
}
function send(sID) {
var args = arguments.slice(1);
var i = length;
while ((--i) > -1) {
this[i][sID].apply(this[i], args);
}
}
static var Collections = [];
static var created = 0;
}
Symbol 414 MovieClip [__Packages.GDK.Node] Frame 0
class GDK.Node
{
var onAddToWorld, addEvent, onRemoveFromWorld, onAddToScene, onRemoveFromScene, onAddDisplay, onRemoveDisplay, target, sendEvent, world, children, onBeginParent, onEndParent, onAddChild, parent, displayNode, assetID, onCollision, onMove, name;
function Node () {
uniqueID = ++created;
new GDK.EventSubscriber(this);
setRenderable(renderable);
setAffectChildren(affectChildren);
if (onAddToWorld) {
addEvent("addToWorld", onAddToWorld, this);
}
if (onRemoveFromWorld) {
addEvent("removeFromWorld", onRemoveFromWorld, this);
}
if (onAddToScene) {
addEvent("addToScene", onAddToScene, this);
}
if (onRemoveFromScene) {
addEvent("removeFromScene", onRemoveFromScene, this);
}
if (onAddDisplay) {
addEvent("addDisplay", onAddDisplay, this);
}
if (onRemoveDisplay) {
addEvent("removeDisplay", onRemoveDisplay, this);
}
}
function setAngle(angle) {
this.angle = angle;
if (target) {
target._rotation = angle;
}
sendEvent("rotate", angle);
}
function addToScene() {
if (inScene) {
return(undefined);
}
world.addActiveObject(this);
inScene = true;
addDisplay();
sendEvent("addToScene");
if (children) {
var i = children.length;
while ((--i) > -1) {
children[i].addToScene();
}
}
}
function removeFromScene() {
if ((!inScene) || (keepInScene)) {
return(undefined);
}
removeDisplay();
inScene = false;
world.removeActiveObject(this);
sendEvent("removeFromScene");
if (children) {
var i = children.length;
while ((--i) > -1) {
children[i].removeFromScene();
}
}
}
function setAffectChildren(b) {
if (affectChildren == b) {
return(undefined);
}
if ((affectChildren = b)) {
if (children) {
onBeginParent();
}
} else if (children) {
onEndParent();
}
}
function addChild(child, isolated) {
if ((!allowChildren) || (child.parent == this)) {
return(false);
}
child.parent.removeChild(child);
child.parent = this;
if (world && (world != child.world)) {
world.addObject(child, true);
}
if (children == undefined) {
if (affectChildren) {
positionChanged = pv_positionChanged;
}
onBeginParent();
hasChildren = true;
children = [child];
} else {
children.push(child);
}
if (inScene && (!isolated)) {
child.addToScene();
}
onAddChild(child);
return(true);
}
function removeChild(child) {
if ((!children) || (child.parent != this)) {
return(undefined);
}
var i = children.length;
while ((--i) > -1) {
if (children[i] == child) {
children.splice(i, 1);
break;
}
}
child.parent = undefined;
if (!children.length) {
delete positionChanged;
onEndParent();
hasChildren = false;
delete children;
}
}
function addToWorld(newWorld) {
newWorld.addObject(this);
}
function removeFromWorld() {
world.removeObject(this);
}
function detachFromParent() {
parent.removeChild(this);
}
function becomeChildTo(parent) {
parent.addChild(this);
}
function requestDisplaySpace() {
if (!displayNode) {
var t = parent;
while (t) {
if (t.isDisplayNode) {
break;
}
t = t.parent;
}
displayNode = (t ? (t.target) : (world.target));
}
var mc;
if (assetID != null) {
mc = displayNode.attachMovie(assetID, "mc" + uniqueID, 2130690045 - uniqueID);
} else {
mc = displayNode.createEmptyMovieClip("mc" + uniqueID, 2130690045 - uniqueID);
}
return(mc);
}
function addDisplay() {
if ((!renderable) || (target)) {
return(undefined);
}
queueForDisplay();
target = requestDisplaySpace();
sendEvent("addDisplay");
}
function removeDisplay() {
sendEvent("removeDisplay");
target.swapDepths(0);
target.removeMovieClip();
delete target;
}
function setAssetID(newAssetID) {
if (assetID == newAssetID) {
return(undefined);
}
if (inScene) {
removeDisplay();
}
assetID = newAssetID;
if (inScene) {
addDisplay();
}
}
function queueForDisplay() {
if (renderable) {
world.queueForDisplay(this);
}
}
function setRenderable(b) {
if (b) {
delete queueForDisplay;
if (inScene) {
addDisplay();
}
} else if (inScene) {
removeDisplay();
}
}
function checkCollisionList(objects, flag, options, maxCol) {
if (maxCol == null) {
maxCol = 256;
}
if (flag == null) {
return(undefined);
}
stopCol = false;
var count = 0;
var hr;
var i = objects.length;
collisionID++;
var obj;
while ((!stopCol) && ((--i) > -1)) {
if (((((obj = objects[i])) != this) && (collisionID != obj.lastCollisionID)) && ((flag & obj.classID) > 0)) {
obj.lastCollisionID = collisionID;
if ((hr = checkCollision(obj))) {
count++;
}
switch (hr) {
case 1 :
if (onCollision(objects[i], options) == COLLISION_CANCEL) {
return(count);
}
break;
default :
break;
case 2 :
return(count);
}
}
}
return(count);
}
function checkCollision(obj) {
return(false);
}
function moveTo(x, y, z) {
moveBy(x - this.x, y - this.y, z - this.z);
}
function moveBy(x, y, z) {
if ((x || (y)) || (z)) {
this.x = this.x + x;
this.y = this.y + y;
this.z = this.z + z;
positionChanged(x, y, z);
}
}
function moveToGlobally(x, y, z) {
}
function positionChanged(xShift, yShift, zShift) {
onMove(xShift, yShift, zShift);
queueForDisplay();
}
function pv_positionChanged(xShift, yShift, zShift) {
onMove(xShift, yShift, zShift);
var i = children.length;
while ((--i) > -1) {
children[i].moveBy(xShift, yShift, zShift);
}
queueForDisplay();
}
function setDisplay() {
target._x = x;
target._y = y;
}
function getUpdates() {
world.addEvent("update", function (elapsed) {
this.update(elapsed);
}, this);
}
function cancelUpdates() {
world.removeEvent("update", null, this);
}
function timelineUpdate() {
queueForDisplay();
}
function toString() {
return(((className + " #") + uniqueID) + (name ? (("(" + name) + ")") : ""));
}
static var created = 0;
var className = "Node";
var uniqueID = -1;
var x = 0;
var y = 0;
var z = 0;
var isDisplayNode = false;
var angle = 0;
var renderable = true;
static var COLLISION_OK = 1;
static var COLLISION_CANCEL = 2;
static var COLLISION_SKIP_EVENT = 3;
static var collisionID = 0;
var classID = 0;
var collisionMask = 0;
var collisionOverlap = false;
var inScene = false;
var keepInScene = false;
var rogueNode = false;
var affectChildren = true;
var allowChildren = true;
var hasChildren = false;
var stopCol = false;
var editor_isItem = false;
var editor_tool = "CreateObject";
var editor_description = "Description for item";
var editor_name = "Generic Object";
var editor_args_names = [];
var editor_args_values = [];
var editor_args_types = [];
var editor_args_options = [];
var editor_args_descriptions = [];
var editor_args_mode = [];
var editor_args_component = [];
var editor_commands = [];
var editor_canChangeAsset = true;
var editor_canChangeLayer = true;
var editor_canChangeFrame = true;
var editor_nullDefaultsOnSave = true;
var editor_canRotate = false;
var editor_canScale = false;
}
Symbol 415 MovieClip [__Packages.GDK.World] Frame 0
class GDK.World extends GDK.Node
{
var uniqueID, children, objects, displayQueue, activeObjects, references, name, viewport, world, addEvent, removeEvent, engine, target, sendEvent, inScene, addDisplay, onAddToScene, removeChild;
function World (name, viewPort) {
super();
uniqueID = ++worldsCreated;
children = null;
objects = [];
displayQueue = [];
activeObjects = [];
references = {};
this.name = ((name != null) ? (name) : ("World " + uniqueID));
if (viewport) {
addObject(viewport);
} else if (useDefaultCamera) {
addObject((viewport = new GDK.Viewport()));
}
world = this;
}
function addActiveObject(obj) {
if (obj.__a) {
return(undefined);
}
obj.__a = true;
activeObjects.push(obj);
}
function removeActiveObject(obj) {
if ((!obj.__a) || (activeLock)) {
return(undefined);
}
delete obj.__a;
var i = activeObjects.length;
while ((--i) > -1) {
if (activeObjects[i] == obj) {
activeObjects.splice(i, 1);
return(undefined);
}
}
}
function removeAllActive() {
activeLock = true;
var i = activeObjects.length;
while ((--i) > -1) {
delete activeObjects[i].__a;
activeObjects[i].removeFromScene();
}
activeObjects.splice(0);
activeLock = false;
}
function addToUpdateList(obj) {
addEvent("update", obj.update, obj);
}
function removeFromUpdateList(obj) {
removeEvent("update", null, obj);
}
function render(elapsed) {
var i;
if (!((i = displayQueue.length))) {
return(undefined);
}
while ((--i) > -1) {
displayQueue[i].setDisplay(elapsed);
delete displayQueue[i].queueForDisplay;
}
displayQueue = [];
updateAfterEvent();
}
function centerViewport(vertical, horizontal) {
viewport.halfWidth = (target._x = ((viewport.screenWidth = engine.width)) * 0.5);
viewport.halfHeight = (target._y = ((viewport.screenHeight = engine.height)) * 0.5);
}
function queueForDisplay(obj) {
if (!obj.queueForDisplay) {
return(undefined);
}
obj.queueForDisplay = null;
displayQueue.push(obj);
}
function update(elapsed) {
sendEvent("update", elapsed);
render(elapsed);
}
function addObject(obj, isolated) {
if (obj.world == this) {
trace(obj + " already exist in scene");
return(false);
}
if (obj.world) {
obj.world.removeObject(obj);
}
obj.world = this;
obj.uniqueID = ++objectsAdded;
if (obj.children.length) {
var i = obj.children.length;
while ((--i) > -1) {
addObject(obj.children[i], true);
}
}
if (obj.name != null) {
trace((("Reference Set " + obj.name) + " ") + obj);
references[obj.name] = obj;
}
if ((!obj.rogueNode) && (!isolated)) {
super.addChild(obj, true);
}
obj.positionChanged(0, 0, 0);
obj.sendEvent("addToWorld");
return(true);
}
function addToScene() {
if (inScene) {
return(undefined);
}
inScene = true;
addDisplay();
target.swapDepths(uniqueID + 1);
onAddToScene();
if (children) {
var i = children.length;
while ((--i) > -1) {
if (children[i].inScene) {
children[i].removeFromScene();
children[i].addToScene();
}
}
}
}
function removeObject(obj) {
obj.removeFromScene();
removeChild(obj);
if (obj.name != null) {
delete references[obj.name];
}
GDK.Collection.removeFromAll(obj);
removeFromUpdateList(obj);
obj.onRemoveFromWorld();
obj.__proto__ = null;
}
function addChild(obj, isolated) {
super.addChild(obj, true);
}
function timelineUpdate(elapsed) {
render(elapsed);
}
static var worldsCreated = -1;
var assetID = null;
var className = "World";
var useDefaultCamera = true;
var isDisplayNode = true;
var renderable = true;
var affectChildren = false;
var activeLock = false;
var objectsAdded = 0;
}
Symbol 416 MovieClip [__Packages.GDK.Viewport] Frame 0
class GDK.Viewport extends GDK.Node
{
var focusDepth, wTan, hTan;
function Viewport () {
super();
}
function setFieldOfView(angle) {
if (FOV - angle) {
tanFOV = Math.tan(((FOV = angle)) * 0.008726646);
focusDepth = -((wTan = halfWidth / tanFOV));
hTan = halfHeight / tanFOV;
}
}
var screenWidth = 0;
var screenHeight = 0;
var halfWidth = 0;
var halfHeight = 0;
var changed = false;
var className = "Camera";
var renderable = false;
var setDisplay = null;
var FOV = 30;
var tanFOV = 0.577350269189626;
var viewDistance = 100;
var sectorChanged = false;
var assetID = null;
}
Symbol 417 MovieClip [__Packages.CallStack] Frame 0
class CallStack extends Array
{
var push, lastTime, countdowntime, intervalID, onFinish, splice, length;
function CallStack () {
super();
}
static function pauseAll() {
var i = runningStacks.length;
while ((--i) > -1) {
runningStacks[i].pause();
}
return(false);
}
static function unpauseAll() {
var i = runningStacks.length;
while ((--i) > -1) {
runningStacks[i].unpause();
}
}
static function stopAll() {
var i = runningStacks.length;
while ((--i) > -1) {
runningStacks[i].stop();
}
return(false);
}
static function buildCall(target, method) {
var args = arguments.slice(2);
args.target = target;
args.method = method;
return(args);
}
function call(target, method) {
push(buildCall.apply(this, arguments));
}
function wait(seconds) {
call(this, startCountDown, seconds);
}
function startCountDown(seconds) {
lastTime = getTimer() * 0.001;
countdowntime = seconds;
return(countdown);
}
function countdown() {
countdowntime = countdowntime + (lastTime - ((lastTime = getTimer() * 0.001)));
return(countdowntime <= 0);
}
function waitUntilEqual(target, property, targetValue) {
call(target, untilEqual, property, targetValue);
}
function untilEqual(property, targetValue) {
return(this[property] == targetValue);
}
function start() {
if (running) {
return(undefined);
}
trace("Call Stack Started");
running = true;
runningStacks.push(this);
index = 0;
intervalID = setInterval(function (o) {
o.update();
}, updateInterval, this);
}
function stop() {
clearInterval(intervalID);
var i = runningStacks.length;
while ((--i) > -1) {
if (runningStacks[i] == this) {
runningStacks.splice(i, 1);
}
}
running = false;
trace("Call Stack Stopped");
return(false);
}
function finish() {
trace("Call Stack Finished");
onFinish();
stop();
}
function pause() {
paused = true;
return(false);
}
function resume() {
lastTime = getTimer() * 0.001;
paused = false;
}
function update() {
if (paused) {
return(false);
}
var item = this[index];
var res = item.method.apply(item.target, item);
switch (typeof(res)) {
case "function" :
trace("Swap Method");
item.method = res;
break;
case "object" :
if (res.className == "CallStack") {
splice(index, 1, buildCall(res, res.update));
} else if (res.length != null) {
trace("Replace" + res);
splice(index, 1, res);
}
break;
default :
if (res || (res == null)) {
if ((++index) > length) {
finish();
return(true);
}
} else {
if (res != STOP_STACK) {
break;
}
stop();
break;
}
}
return(false);
}
function toString() {
return("Call Stack");
}
static var runningStacks = [];
static var STOP_STACK = Number.MAX_VALUE;
var className = "CallStack";
var updateInterval = 0;
var paused = false;
var running = false;
var index = 0;
}
Symbol 418 MovieClip [__Packages.SSGame] Frame 0
class SSGame extends GDK.Base
{
static var classes, target, player;
var addEvent, worlds, activeWorld;
function SSGame () {
super();
SSInterface.registerGame(this);
GDK.EventSubscriber.initObject(SSGame);
setTargetComponent(this);
classes = [];
registerClass(SSShape);
registerClass(SSZone);
registerClass(GameSpring);
registerClass(GamePoint);
registerClass(GameHealth);
registerClass(GameCharacter);
registerClass(Explosive);
registerClass(Checkpoint);
registerClass(CommandBox);
registerClass(DirectionArrow);
registerClass(GameElement);
registerClass(Spikes);
registerClass(GameLife);
registerClass(GameVehicle);
registerClass(WalkingObject);
registerClass(FlyingObject);
registerClass(RopeObject);
registerClass(GameContainer);
registerClass(GameBigPoint);
registerClass(GameHealthBig);
registerClass(RollingObject);
registerClass(FlyingObject);
registerClass(BouncingObject);
registerClass(GameFuel);
registerClass(GameSwing);
registerClass(VR_HiddenPlatform);
registerClass(VR_EMP);
registerClass(VR_Shield);
registerClass(GameCollectDoody);
registerClass(InvincibleBouncingObject);
registerClass(SSDrawStyle);
addEvent("Pause", onGamePause);
addEvent("Resume", onGameResume);
}
static function setTargetComponent(mc) {
target = mc;
}
static function staticInit() {
processStack.wait(0.1);
}
static function registerClass(cls) {
var n = GDK.Tools.lookupClassName(cls);
if (n == null) {
return(undefined);
}
if (classes[n]) {
return(undefined);
}
cls.className = n;
classes.push((classes[n] = n));
}
static function loadConfig(url) {
processStack.wait(0.01);
var x = new XML();
x.ignoreWhite = true;
x.onLoad = function (success) {
this.loaded = true;
};
x.loaded = false;
processStack.call(SSGame, function (x, url) {
x.load(url);
}, x, url);
processStack.call(x, function () {
return(this.loaded == true);
});
processStack.call(SSGame, processConfig, x);
processStack.call(SSGame, function () {
_root.debug0 = "Loading Config";
});
}
static function processConfig(data) {
_root.debug0 = "Process Config";
if (typeof(data) == "string") {
var data = new XML(data);
}
trace("Configure The Game Engine And Classes");
var a;
var i = -1;
var c = ((a = data.firstChild.childNodes)).length;
while ((++i) < c) {
switch (a[i].nodeName.toLowerCase()) {
case "styles" :
processStyles(a[i]);
break;
case "bg" :
processBackgrounds(a[i]);
break;
case "objects" :
processObjects(a[i]);
}
}
}
static function processBackgrounds(data) {
if (typeof(data) == "string") {
var data = new XML(data);
}
var v;
var n = data.firstChild;
if (!n) {
return(undefined);
}
trace("PROCESS BACKGROUNDS");
var a;
var i;
var layers;
var attr;
var tiles;
var z;
var bg;
do {
var o = ((_global[n.attributes.name] = {layers:(layers = [])}));
i = ((a = n.childNodes)).length;
while ((--i) > -1) {
attr = a[i].attributes;
if ((!((tiles = attr.tiles)).length) || (!((z = Number(attr.z))))) {
continue;
}
var w = Number(attr.w);
var h = Number(attr.h);
if ((!w) || (!h)) {
var mc = _global.root.attachMovie(tiles, "TMPBGTEST", 987700);
if (!mc) {
continue;
}
w = mc._width;
h = mc._height;
mc.removeMovieClip();
}
layers.push((bg = new SSBackground(tiles, z, w, h, Number(attr.scrollMultiplier))));
if (!isNaN((v = Number(attr.offsetX)))) {
bg.offsetX = v;
}
if (!isNaN((v = Number(attr.offsetY)))) {
bg.offsetY = v;
}
bg.stationary = (Number(attr.stationary) || (attr.stationary == "true")) || (attr.stationary == "yes");
var td = a[i].firstChild.nodeValue;
var trim = GDK.Tools.trim;
if (td.length > 0) {
var c;
var row;
var rows = td.split("|");
var w = 0;
var r = rows.length;
while ((--r) > -1) {
if (!((rows[r] = trim(rows[r]))).length) {
rows.splice(r, 1);
continue;
}
rows[r] = rows[r].split(",");
c = ((row = rows[r])).length;
w = Math.max(c, w);
while ((--c) > -1) {
row[c] = parseInt(trim(row[c]));
}
trace("ROW:" + rows[r]);
}
var g = (new GDK.Grid(w, rows.length, (Number(attr.defaultCell) ? (Number(attr.defaultCell)) : 0)));
var r = rows.length;
while ((--r) > -1) {
var c = rows[r].length;
while ((--c) > -1) {
g.setCell(c, r, rows[r][c]);
}
}
bg.setPattern(g);
trace("GRID:" + g);
trace(rows);
}
trace("BG TILE:" + n.childNodes.length);
}
} while ((n = n.nextSibling));
}
static function processObjects(data) {
if (typeof(data) == "string") {
var data = new XML(data);
}
var n = data.firstChild;
if (!n) {
return(undefined);
}
trace("PROCESS OBJECTS");
var attr;
do {
trace(n);
} while ((n = n.nextSibling));
}
static function processStyles(data) {
if (typeof(data) == "string") {
var data = new XML(data);
}
var n = data.firstChild;
if (!n) {
return(undefined);
}
trace("PROCESS STYLES");
var attr;
do {
attr = n.attributes;
if (attr.name == null) {
} else {
trace("Create DS" + n.attributes.name);
var ds = ((_global[attr.name] = function () {
trace("CUSTOM DS!" + this.className);
var a = [];
var o = this.__proto__;
while ((o = o.__proto__)) {
a.push(o);
}
var i = a.length;
while ((--i) > -1) {
a[i].constructor.apply(this);
}
}));
var dsp = ds.prototype;
dsp.__proto__ = _global[attr.using].prototype;
if (dsp.__proto__ == null) {
dsp.__proto__ = SSDrawStyle.prototype;
}
dsp.className = attr.name;
dsp.styleXML = n;
}
} while ((n = n.nextSibling));
}
static function loadLevel(url) {
var i = -1;
var c = arguments.length;
while ((++i) < c) {
var data = new XML();
data.ignoreWhite = true;
var lev = new SSLevel();
processStack.call(SSGame, function (data, url) {
_root.debug0 = "Loading Level " + url;
data.load(url);
}, data, arguments[i]);
processStack.waitUntilEqual(data, "loaded", true);
processStack.call(lev, lev.readXML, data);
processStack.waitUntilEqual(lev, "ready", true);
processStack.call(SSGame, function () {
_root.debug0 = "Loaded Level ";
SSGame.levels.push((SSGame.levels[lev.name] = lev));
}, lev);
}
}
static function processLevel(data) {
trace("Processing Level");
var lev = new SSLevel();
if (typeof(data) == "string") {
data = new XML(data);
}
processStack.call(lev, lev.readXML, data);
processStack.waitUntilEqual(lev, "ready", true);
processStack.call(SSGame, function () {
_root.debug0 = "Process Done";
SSGame.levels.push((SSGame.levels[lev.name] = lev));
}, lev);
}
static function processStyle(data) {
trace("Processing Shape Styles");
}
static function processBackground(data) {
trace("Processing Backgrounds");
}
static function process() {
trace("Processing Game Data");
if (running) {
return(undefined);
}
running = true;
processStack.onFinish = function () {
SSGame.ready = true;
SSGame.onReady();
};
processStack.start();
delete process;
}
function gotoWorld(name, targetNode, char) {
var w = worlds[name];
trace("gotoWorld:" + char);
if (w) {
if (w != activeWorld) {
}
} else {
trace("Generate World");
generateWorld(name, targetNode, char);
}
with (SSInterface.target.mcGetReady) {
_visible = true;
play();
}
}
function generateWorld(name, targetNode, char) {
var lev = levels[String(name)];
trace((("Level " + name) + ":") + levels[String(name)]);
lev.targetNode = targetNode;
trace("generateWorld: " + char);
lev.char = char;
lev.onComplete = function (base, ssw) {
var char = new GameCharacter();
char.keepInScene = false;
ssw.addObject((ssw.character = char));
ssw.addPlayer(SSGame.player);
if (ssw.references[this.targetNode] != null) {
char.setRestorePoint(ssw.references[this.targetNode]);
char.restore();
}
base.setActiveWorld(ssw);
SSGame.player.setControl(char);
SSInterface.watchObject(SSGame.player, function (obj) {
this.watchProp(obj, "score", this.textValue);
this.watchProp(obj, "lives", this.textValue);
this.watchProp(obj, "health", this.meterValue);
this.watchProp(obj, "cEggs", this.textValue);
this.watchProp(obj, "sTime", this.textValue);
this.watchProp(obj, "tempScore", this.textValue);
this.watchProp(obj, "bonus", this.textValue);
});
GameSound.playMusic(this.music, 0.5, true);
base.start();
SSInterface.hide();
};
lev.build(this);
}
function addMaterial() {
}
function addShapeStyle() {
}
static function startNewGame() {
target.activeWorld.removeFromScene();
target.activeWorld = null;
target.removeAllWorlds();
player = new GamePlayer();
player.nCurrTimeLimit = player.nTimeLimit;
SSInterface.hide();
if (_global.root.nStartLevel >= levels.length) {
_global.root.nStartLevel = 0;
}
currentLevel = _global.root.nStartLevel;
trace("Start New Game " + levels[currentLevel].name);
target.gotoWorld(levels[currentLevel].name, levels[currentLevel].startNode);
SSInterface.target.nLevel = 2;
}
static function nextLevel() {
player.newLevelReset();
if ((++currentLevel) >= levels.length) {
winGame();
target.removeAllWorlds();
trace("level loop");
currentLevel = 0;
if (player.nCurrTimeLimit > player.nLowerLimit) {
player.nCurrTimeLimit = player.nCurrTimeLimit - player.nTimeDecrement;
}
}
if (currentLevel == (levels.length - 1)) {
SSInterface.target.nLevel = 1;
} else {
SSInterface.target.nLevel = currentLevel + 2;
}
trace((((("GO TO THE NEXT LEVEL, level length = " + levels) + ", currentLevel:") + currentLevel) + ", level name:") + levels[currentLevel].name);
var c = target.activeWorld.character;
trace("NextLevel:" + c);
target.gotoWorld(levels[currentLevel].name, levels[currentLevel].startNode, c);
}
static function exitLevel() {
}
static function winGame() {
SSInterface.showScreen("WinGame", true);
}
function onGamePause() {
trace("GamePause");
GameSound.pause();
}
function onGameResume() {
trace("GameResume");
GameSound.resume();
}
static var _sinit = staticInit();
static var levels = [];
static var styles = [];
static var backgrounds = [];
static var processStack = new CallStack();
static var running = false;
static var ready = false;
static var currentLevel = 0;
}
Symbol 419 MovieClip [__Packages.SSInterface] Frame 0
class SSInterface extends MovieClip
{
static var currentGame, target, currentObject;
var stop, _quality, gotoAndStop, btnCover;
function SSInterface () {
super();
register(this);
stop();
}
function onUnload() {
unregister(this);
}
function show(frame, noPause) {
_quality = "HIGH";
trace("Show Screen " + frame);
if (!noPause) {
currentGame.pause();
}
(gotoAndStop(frame));// not popped
btnCover.onRelease = function () {
};
btnCover.useHandCursor = false;
}
static function hide() {
target.resume();
}
static function showScreen(screen, noPause) {
target.show(screen, noPause);
}
function resume() {
_quality = "HIGH";
trace("RESUME GAME");
(gotoAndStop(1));// not popped
currentGame.resume();
}
static function register(mc) {
trace("Interface Registered");
target = mc;
}
static function unregister(mc) {
trace("Interface unregistered");
target = null;
}
static function registerGame(game) {
trace("REGISTER GAME");
}
static function unwatchObject() {
if (!currentObject) {
return(undefined);
}
var a;
var i = ((a = watchList)).length;
while ((--i) > -1) {
a[i].t.unwatch(a[i].n);
}
currentObject = null;
}
static function watchObject(obj, initMethod) {
trace("Set watch to " + obj);
currentGame = obj.control.world.engine;
trace(currentGame);
unwatchObject();
initMethod.apply(SSInterface, arguments);
currentObject = obj;
}
static function watchProp(obj, prop, method) {
obj.watch(prop, method);
watchList.push({n:prop, t:obj});
method(prop, obj[prop], obj[prop]);
}
static function textValue(prop, oldValue, newValue) {
target[prop] = newValue;
return(newValue);
}
static function meterValue(prop, oldValue, newValue) {
target[prop].value = newValue;
trace(((((("Meter Value " + target[prop]) + " ") + prop) + " ") + newValue) + ", dammit");
return(newValue);
}
static function invertedMeterValue(prop, oldValue, newValue) {
target[prop].value = 1 - newValue;
return(newValue);
}
static function unwatchProp() {
}
static var watchList = [];
}
Symbol 420 MovieClip [__Packages.SSObject] Frame 0
class SSObject extends GDK.Node
{
var addEvent, velocity, angle, target, frame, z, x, y, world, depth, onDisplay, uniqueID, sectors, inScene, keepInScene, onMove, queueForDisplay, localSounds, sndTransform, getUpdates, motionTime, motionDist, motionVec, motionDir, motionLeft, motionRight, motionTop, motionBottom, collisionData, checkCollisionList, collisionMask, moveBy;
function SSObject () {
super();
addEvent("addDisplay", SSAddDisp, this);
velocity = new Vector();
localTop = (localLeft = -radius);
localBottom = (localRight = radius);
}
function addToScene() {
oz = null;
gdkAddToScene();
}
function removeFromScene() {
oz = null;
gdkRemoveFromScene();
}
function SSAddDisp() {
target._rotation = angle;
target.gotoAndStop(frame);
}
function setDisplay(viewport, elapsed, vdr, vl, vr) {
if ((z - viewport.z) != viewport.wTan) {
var nx = ((screenX = ((viewport.wTan * (x - viewport.x)) / (z - viewport.z)) + viewport.halfWidth));
var ny = ((screenY = ((viewport.wTan * (y - viewport.y)) / (z - viewport.z)) + viewport.halfHeight));
} else {
var nx = ((screenX = (vdr * (viewport.x - x)) + viewport.halfWidth));
var ny = ((screenY = (vdr * (viewport.y - y)) + viewport.halfHeight));
}
target._x = (-world.target._x) + nx;
target._y = (-world.target._y) + ny;
if (oz != ((oz = z - viewport.z))) {
target.swapDepths((depth = calculateDepth()));
target._xscale = (target._yscale = ((viewport.wTan * 1) / (z - viewport.z)) * 100);
}
onDisplay(viewport, elapsed, vdr, vl, vr);
}
function calculateDepth() {
if (z == 0) {
return(((Math.floor(20000 - oz) * 32768) + (depthLayer * 32768)) + uniqueID);
}
if (z < 0) {
return(((Math.floor(20000 - oz) * 32768) + uniqueID) + 524288);
}
return((Math.floor(20000 - oz) * 32768) + uniqueID);
}
function removeFromSectorGrid() {
var s;
var j;
var i = sectors.length;
while ((--i) > -1) {
j = ((s = sectors[i])).length;
while ((--j) > -1) {
if (s[j] == this) {
s.splice(j, 1);
break;
}
}
}
sectors = [];
}
function addToSectorGrid() {
if (sectors.length > 0) {
removeFromSectorGrid();
}
var s = world.sectors;
var w;
var x;
var y;
var i = (((w = (rightSector - leftSector) + 1)) * ((bottomSector - topSector) + 1));
while ((--i) > -1) {
x = leftSector + (i % w);
y = topSector + Math.floor(i / w);
if (s[x]) {
if (s[x][y]) {
s[x][y].push(this);
} else {
s[x][y] = [this];
}
} else {
s[x] = {};
s[x][y] = [this];
}
sectors.push(s[x][y]);
}
}
function updateBounds() {
var lc = (leftSector != ((leftSector = Math.floor(((left = x + localLeft)) / SSGlobal.GRID_SIZE))));
var tc = (topSector != ((topSector = Math.floor(((top = y + localTop)) / SSGlobal.GRID_SIZE))));
var rc = (rightSector != ((rightSector = Math.floor(((right = x + localRight)) / SSGlobal.GRID_SIZE))));
var bc = (bottomSector != ((bottomSector = Math.floor(((bottom = y + localBottom)) / SSGlobal.GRID_SIZE))));
if (((lc || (tc)) || (rc)) || (bc)) {
removeFromSectorGrid();
addToSectorGrid();
var vp = world.viewport;
if ((inScene && (!keepInScene)) && ((((vp.leftSector > rightSector) || (vp.topSector > bottomSector)) || (vp.rightSector < leftSector)) || (vp.bottomSector < topSector))) {
removeFromScene();
}
}
}
function positionChanged(xShift, yShift, zShift) {
world.onObjectMoved(this);
onMove(xShift, yShift, zShift);
if (trackInSectorGrid) {
updateBounds();
}
if (inScene) {
queueForDisplay();
}
}
function createSound(id, linkageID) {
var mc = world.createSound(id, linkageID);
if (!localSounds) {
localSounds = [];
}
localSounds[id] = mc;
localSounds.push(mc);
return(mc);
}
function deleteSound(id) {
world.deleteSound(id);
var mc = localSounds[id];
var i = localSounds.length;
while ((--i) > -1) {
if (localSounds[i] == mc) {
localSounds.splice(i, 1);
break;
}
}
delete localSounds[id];
}
function setupSound(sndObj) {
sndObj.playing = false;
}
function positionSound(sndObj, x, y, bubbleX, bubbleY) {
var vp = world.viewport;
var sy = Math.max(0, 1 - Math.abs((vp.y - y) / bubbleY));
if (sy == 0) {
sndObj.stop();
sndObj.playing = false;
return(undefined);
}
var sl = Math.max(0, 1 - Math.abs((vp.left - x) / bubbleX));
var sr = Math.max(0, 1 - Math.abs((vp.right - x) / bubbleX));
if ((sl == 0) && (sr == 0)) {
sndObj.stop();
sndObj.playing = false;
return(undefined);
}
sndTransform.ll = (sl * sy) * 100;
sndTransform.rr = (sr * sy) * 100;
sndObj.setTransform(sndTransform);
if (!sndObj.playing) {
sndObj.start(0, 1048575);
sndObj.playing = true;
}
}
function setVelocity(vel) {
if (!vel.__get__length()) {
return(undefined);
}
velocity = vel;
getUpdates();
inMotion = inMotionTime;
addEvent("removeFromScene", onAutoMotionLeaveScene);
}
function onAutoMotionLeaveScene() {
if (inMotion) {
world.removeObject(this);
}
}
function calculateMotionData(elapsed) {
motionTime = elapsed;
motionDist = ((motionVec = new Vector(velocity.x * elapsed, velocity.y * elapsed, 0))).length;
motionDir = motionVec.getNormalized();
if (motionVec.x > 0) {
motionLeft = left;
motionRight = right + motionVec.x;
} else {
motionLeft = left + motionVec.x;
motionRight = right;
}
if (motionVec.y > 0) {
motionTop = top;
motionBottom = bottom + motionVec.y;
} else {
motionTop = top + motionVec.y;
motionBottom = bottom;
}
}
function checkCollisions(elapsed) {
collisionData = null;
calculateMotionData(elapsed);
var gs = SSGlobal.GRID_SIZE;
var objs = world.getObjectsInSectors(Math.floor(motionLeft / gs), Math.floor(motionTop / gs), Math.floor(motionRight / gs), Math.floor(motionBottom / gs));
var c = checkCollisionList(objs, collisionMask);
if (collisionData) {
shapeCollision(collisionData);
}
return(c);
}
function update(elapsed) {
updatePosition(elapsed);
}
function shapeCollision(colData) {
}
function updatePosition(elapsed) {
moveBy(velocity.x * elapsed, velocity.y * elapsed, velocity.z * elapsed);
}
static var ArgTypes = [Function, Number, Number, Number];
static var DefaultArgType = Number;
var assetID = null;
var mapIconID = null;
var left = 0;
var top = 0;
var right = 0;
var bottom = 0;
var localLeft = 0;
var localTop = 0;
var localRight = 0;
var localBottom = 0;
var leftSector = 0;
var topSector = 0;
var rightSector = 0;
var bottomSector = 0;
var trackInSectorGrid = true;
var radius = 25;
var depthLayer = 3;
var autoAddToScene = true;
var gdkAddToScene = GDK.Node.prototype.addToScene;
var gdkRemoveFromScene = GDK.Node.prototype.removeFromScene;
var oz = null;
var screenX = 0;
var screenY = 0;
var inMotion = 0;
var inMotionTime = 0.5;
var stopCol = false;
}
Symbol 421 MovieClip [__Packages.Vector] Frame 0
class Vector
{
function Vector (x, y, z) {
if ((x || (y)) || (z)) {
this.x = (x ? (x) : 0);
this.y = (y ? (y) : 0);
this.z = (z ? (z) : 0);
}
}
function loc(x, y, z) {
this.x = x;
this.y = y;
this.z = z;
}
function copy() {
return(new Vector(x, y, z));
}
function copyTo(a) {
a.x = x;
a.y = y;
a.z = z;
}
function copyFrom(a) {
x = a.x;
y = a.y;
z = a.z;
}
function distanceToVector(a) {
var sx = (a.x - x);
var sy = (a.y - y);
var sz = (a.z - z);
return(Math.sqrt(((sx * sx) + (sy * sy)) + (sz * sz)));
}
function distanceToCoordinates(x, y, z) {
var sx = (this.x - x);
var sy = (this.y - y);
var sz = (this.z - z);
return(Math.sqrt(((sx * sx) + (sy * sy)) + (sz * sz)));
}
function get magnitude() {
return(Math.sqrt(((x * x) + (y * y)) + (z * z)));
}
function get length() {
return(Math.sqrt(((x * x) + (y * y)) + (z * z)));
}
function set length(newLength) {
var l = (newLength / Math.sqrt(((x * x) + (y * y)) + (z * z)));
x = x * l;
y = y * l;
z = z * l;
//return(length);
}
function dot(v) {
return(((x * v.x) + (y * v.y)) + (z * v.z));
}
function cross(v) {
if (!v) {
v = VECPZ;
}
return(new Vector((y * v.z) - (z * v.y), (z * v.x) - (x * v.z), (x * v.y) - (y * v.x)));
}
function normalize() {
var l = Math.sqrt(((x * x) + (y * y)) + (z * z));
x = x / l;
y = y / l;
z = z / l;
return(this);
}
function getNormalized() {
var l = Math.sqrt(((x * x) + (y * y)) + (z * z));
return(new Vector(x / l, y / l, z / l));
}
function multiply(scalar) {
x = x * scalar;
y = y * scalar;
z = z * scalar;
}
function divide(scalar) {
if (!scalar) {
x = 0;
y = 0;
z = 0;
return(undefined);
}
x = x / scalar;
y = y / scalar;
z = z / scalar;
}
function reverse() {
x = x * -1;
y = y * -1;
z = z * -1;
}
function getReversed() {
return(new Vector(-x, -y, -z));
}
function toString() {
return(((((("Vector(" + x) + ",") + y) + ",") + z) + ")");
}
static var ZERO = new Vector(0, 0, 0);
static var VECPX = new Vector(1, 0, 0);
static var VECNX = new Vector(-1, 0, 0);
static var VECPY = new Vector(0, 1, 0);
static var VECNY = new Vector(0, -1, 0);
static var VECPZ = new Vector(0, 0, 1);
static var VECNZ = new Vector(0, 0, -1);
var x = 0;
var y = 0;
var z = 0;
}
Symbol 422 MovieClip [__Packages.SSGlobal] Frame 0
class SSGlobal
{
function SSGlobal () {
}
static var DRAW_LIGHT_DIRECTION = new Vector(2, 1, 0).normalize();
static var DRAW_VIEW_DIRECTION = new Vector(-1, 2, 0).normalize();
static var EDGE_GROUPING_MASK = 15;
static var GRID_SIZE = 300;
static var CLSID_ZONE = 65536;
static var CLSID_SHAPE = 131072;
static var CLSID_MAINCHAR = 1048576;
static var CLSID_VEHICLE = 1048832;
static var CLSID_CONTAINER = 67108864;
static var CLSID_OBSTACLE = 16777216;
static var CLSID_MOBILEOBJECT = 33554432;
static var CLSID_OBJECT = 4194304;
static var CLSID_EXPLOSIVE = 4194560;
static var CLSID_KILLBOX = CLSID_OBJECT;
static var CLSID_VENT = 4194816;
static var CLSID_SWING = 4195328;
static var CLSID_COLLECTABLE = 8388608;
static var CLSID_POINT = 8388624;
static var CLSID_HEALTH = 8388640;
static var CLSID_FLAG = 8388672;
static var CLSID_SHIELD = 8388736;
static var CLSID_CHECKPOINT = 8388864;
static var EDGE_SYSTEM_PROPS = 65535;
static var EDGE_USER_PROPS = 4294901760;
static var EDGE_DEFAULT = 0;
static var EDGE_OFF = EDGE_DEFAULT;
static var EDGE_COLLISION = 1;
static var EDGE_CAN_STAND = 65537;
static var GRAVITY = 650;
static var editor_DrawStyles = ["DSNoFill", "DSGeneric"];
static var editor_EdgeDrawStyles = [];
static var ED_OBJ_DELIMETER = "#";
static var ED_OBJ_ATTR_DELIM = "|";
}
Symbol 423 MovieClip [__Packages.SSShape] Frame 0
class SSShape extends SSObject
{
var style, points, drawStyle, world, leftSector, left, localLeft, x, topSector, top, localTop, y, rightSector, right, localRight, bottomSector, bottom, localBottom, removeFromSectorGrid, addToSectorGrid, colEdges, edges, depth, calculateDepth, inScene, removeDisplay, addDisplay, target, normals, instances, shapeObj, props;
function SSShape (style) {
super();
if (isInstance || (arguments.length < 1)) {
return;
}
this.style = (((style != null) && (typeof(style) != "string")) ? (style) : (SSDrawStyle));
var p = arguments.slice(1);
points = [];
var i = p.length;
while ((--i) > -1) {
points.push(new SSShapeVertex(p[--i], p[--i], p[i + 3]));
}
points[0].props = p[2];
points.reverse();
build();
}
function onAddToWorld() {
if (drawStyle.store) {
world.addToCollection(drawStyle.className, this);
}
}
function updateBounds() {
var lc = (leftSector != ((leftSector = Math.floor(((left = x + localLeft)) / SSGlobal.GRID_SIZE))));
var tc = (topSector != ((topSector = Math.floor(((top = y + localTop)) / SSGlobal.GRID_SIZE))));
var rc = (rightSector != ((rightSector = Math.floor(((right = x + localRight)) / SSGlobal.GRID_SIZE))));
var bc = (bottomSector != ((bottomSector = Math.floor(((bottom = y + localBottom)) / SSGlobal.GRID_SIZE))));
if (((lc || (tc)) || (rc)) || (bc)) {
removeFromSectorGrid();
addToSectorGrid();
}
}
function build() {
var i = (points.length - 1);
var l;
var a;
var b;
var left;
var right;
var top;
var bottom;
left = (right = points[i].x);
top = (bottom = points[i].y);
colEdges = [];
edges = [];
edges[i] = new SSShapeEdge(points[i], points[0]);
while ((--i) > -1) {
edges[i] = new SSShapeEdge(points[i], points[i + 1]);
points[i].index = i;
edges[i].next = edges[i + 1];
edges[i + 1].previous = edges[i];
left = Math.min(points[i].x, left);
right = Math.max(points[i].x, right);
top = Math.min(points[i].y, top);
bottom = Math.max(points[i].y, bottom);
}
var i = (edges.length - 1);
edges[i].next = edges[0];
edges[0].previous = edges[i];
localLeft = left;
localRight = right;
localTop = top;
localBottom = bottom;
var i = edges.length;
while ((--i) > -1) {
a = ((l = edges[i])).a;
b = l.b;
l.shape = this;
l.center = new Vector(a.x + ((b.x - a.x) * 0.5), a.y + ((b.y - a.y) * 0.5));
l.radius = 0.5 * ((l.length = ((l.span = new Vector(b.x - a.x, b.y - a.y))).length));
if (a.x > b.x) {
l.left = b.x;
l.right = a.x;
} else {
l.left = a.x;
l.right = b.x;
}
if (a.y > b.y) {
l.top = b.y;
l.bottom = a.y;
} else {
l.top = a.y;
l.bottom = b.y;
}
l.direction = l.span.getNormalized();
l.normal = l.direction.cross();
l.angle = (Math.atan2(l.direction.y, l.direction.x) * 180) / Math.PI;
l.props = a.props;
if (l.props & 1) {
colEdges.push(l);
}
}
var i = edges.length;
while ((--i) > -1) {
l = edges[i];
((l.a.normal = new Vector(l.previous.normal.x + l.normal.x, l.previous.normal.y + l.normal.y))).normalize();
l.a.scale = 1 / l.a.normal.dot(l.normal);
}
((drawStyle = new this.style())).init(points, edges);
if (depthLayer != drawStyle.depthLayer) {
depthLayer = drawStyle.depthLayer;
depth = calculateDepth();
}
if (inScene) {
redraw();
}
}
function redraw() {
removeDisplay();
addDisplay();
}
function onAddDisplay() {
target._visible = !disabled;
if (drawStyle.depthLayer != null) {
depthLayer = Number(drawStyle.depthLayer);
target.swapDepths(calculateDepth());
}
drawStyle.draw(target);
}
function editor_onInit(obj) {
normals = [];
instances = [];
points = [];
var a = obj.props.slice(obj.propNames.length);
obj.propOptions[10] = _global.__drawStyles;
var i = a.length;
while ((--i) > -1) {
points.push(new Vector(Number(a[--i]), Number(a[--i]), Number(a[i])));
}
}
function editor_onDisplay(target, external) {
target.drawClip.removeMovieClip();
var drawClip = target.createEmptyMovieClip("drawClip", 0);
var cn = SSShape;
var obj = ((shapeObj = {}));
obj.__proto__ = cn.prototype;
cn.apply(obj, [_global[props[10]]].concat(props.slice(11)));
obj.drawStyle.showInfo();
obj.drawStyle.draw(drawClip);
var drawClip = target.createEmptyMovieClip("shape", 1);
drawClip.beginFill(13421806, 0);
var i = points.length;
drawClip.moveTo(points[0].x, points[0].y);
while ((--i) > -1) {
drawClip.lineTo(points[i].x, points[i].y);
}
drawClip.endFill();
}
function editor_onSelect() {
trace("SHAPE SELECTED");
}
var isInstance = false;
var disabled = false;
var assetID = null;
var depthLayer = 2;
var className = "Shape";
var setShape = Object.prototype.constructor;
var classID = SSGlobal.CLSID_SHAPE;
var editor_name = "Shape";
var editor_isItem = true;
var editor_tool = "CreateShape";
var editor_args_names = ["style"];
var editor_args_values = ["DSGeneric"];
var editor_args_types = ["string"];
var editor_args_options = [["DSGeneric"]];
var editor_args_descriptions = [];
var editor_args_mode = [0];
var editor_args_component = ["List"];
var editor_commands = ["Reverse"];
var editor_canChangeAsset = false;
var editor_canChangeFrame = false;
var editor_canChangeName = false;
var editor_nullDefaultsOnSave = false;
}
Symbol 424 MovieClip [__Packages.SSDrawing] Frame 0
class SSDrawing
{
var lightDirection, inst, iLayers, setup, define, defineFromXML, prepare, points, edges, __proto__, groups, pickStyle, root, target;
function SSDrawing (obj) {
if (!lightDirection) {
lightDirection = SSGlobal.DRAW_LIGHT_DIRECTION;
}
inst = [];
iLayers = [];
}
function initStyle(force) {
if (!styles[className]) {
trace("INIT STYLE " + this);
setup();
define();
defineFromXML();
prepare();
styles[className] = this;
}
}
function init(points, edges) {
this.points = points;
this.edges = edges;
__proto__.initStyle();
var g;
var lastType;
groups = [];
var i = -1;
var c = edges.length;
while ((++i) < c) {
if (lastType != ((lastType = edges[i].props & edgeGroupMask))) {
groups.push((g = [edges[i]]));
g.mask = lastType;
} else {
g.push(edges[i]);
}
edges[i].attributes = pickStyle(lastType);
}
if (((groups.length > 1) && (g != edges[0])) && (lastType == (edges[0].props & edgeGroupMask))) {
groups[0] = groups.pop().concat(groups[0]);
groups[0].mask = lastType;
}
process();
}
function process() {
showInfo();
}
function calculateLighting(normal, ambient, diffuse, specular) {
var dp;
if (((dp = Math.sin(lightDirection.dot(normal) * 1.570796))) <= 0) {
return(new RGB(diffuse.r - ((specular.r - diffuse.r) * dp), diffuse.g - ((specular.g - diffuse.g) * dp), diffuse.b - ((specular.b - diffuse.b) * dp)));
}
return(new RGB(diffuse.r + ((ambient.r - diffuse.r) * dp), diffuse.g + ((ambient.g - diffuse.g) * dp), diffuse.b + ((ambient.b - diffuse.b) * dp)));
}
function draw(root) {
this.root = (target = root);
target.clear();
created = 0;
var inst = inst;
var i = -1;
var c = inst.length;
while ((++i) < c) {
inst[i][0].apply(this, inst[i][1]);
}
}
function instruction(method) {
inst.push([method, arguments.slice(1)]);
}
function solidShape(color) {
inst.push([_solid, arguments]);
}
function bitmapShape(textureID, p) {
var refTile = _root.attachMovie(textureID, "tmp", 834201);
var w = refTile._width;
var h = refTile._height;
refTile.removeMovieClip();
var i = p.length;
var l;
var t;
var r;
var b;
l = (r = p[0].x);
t = (b = p[0].y);
while ((--i) > 0) {
l = Math.min(p[i].x, l);
t = Math.min(p[i].y, t);
r = Math.max(p[i].x, r);
b = Math.max(p[i].y, b);
}
var tw = Math.ceil((r - l) / w);
var th = Math.ceil((b - t) / h);
inst.push([_bitmapShape, [textureID, p, l, t, w, h, tw, tw * th]]);
}
function gradientShape() {
inst.push([_gradient, arguments]);
}
function assetStrip(linkageID, from, to, tile, skewOnX, skewOnY) {
if (((linkageID == null) || (from == null)) || (to == null)) {
return(undefined);
}
var dir = new Vector(to.x - from.x, to.y - from.y, 0);
if (skewOnX == null) {
skewOnX = true;
}
if (skewOnY == null) {
skewOnY = true;
}
var angle = ((Math.atan2(dir.y, dir.x) * 180) / Math.PI);
inst.push([_assetStrip, [linkageID, from.x, from.y, dir.length, tile, (skewOnX ? (angle) : 0), (skewOnY ? (angle) : 0)]]);
}
function textureStrip(linkageID, from, to, tile, skewX) {
if (((linkageID == null) || (from == null)) || (to == null)) {
return(undefined);
}
var dir = new Vector(to.x - from.x, to.y - from.y, 0);
inst.push([_assetStrip, [linkageID, from.x, from.y, dir.length, tile, (skewX ? (skewX) : 0), (Math.atan2(dir.y, dir.x) * 180) / Math.PI]]);
}
function transform() {
trace("TRANS " + arguments.length);
if (arguments.length) {
inst.push([_transform, arguments]);
}
}
function _transform(x, y, rot) {
trace("TRANS " + arguments);
target._x = x;
target._y = y;
target._rotation = rot;
}
function _assetStrip(linkageID, x, y, len, tile, skewX, skewY) {
var base;
var skewed = (skewX != skewY);
if (skewed) {
var mc = MovieClipSkew.create(target, null, "mc" + created, ++created);
mc.skew(skewX, skewY);
} else {
var mc = target.createEmptyMovieClip("mc" + created, ++created);
mc._rotation = skewX;
}
mc._x = x;
mc._y = y;
var t = mc.attachMovie(linkageID, "m0", 0);
var w = t._width;
var tiles = 1;
if (tile) {
var i = ((tiles = Math.max(1, Math.round(len / w))));
while (--i) {
t = mc.attachMovie(linkageID, "m" + i, i);
t._x = i * w;
}
}
if (skewed) {
mc.asset._xscale = ((len / (tile ? (tiles * w) : (w))) * 100) + 1;
} else {
mc._xscale = (len / (tile ? (tiles * w) : (w))) * 100;
}
}
function createTarget(targetName, depth, linkageID) {
if (linkageID != null) {
inst.push([((linkageID == null) ? (_createEmptyTarget) : (_createAssetTarget)), arguments]);
}
}
function setTarget(targetName) {
inst.push([_setTarget, arguments]);
}
function setLayer(layerNum) {
if (iLayers[layerNum]) {
goRootTarget("mc" + layerNum);
} else {
inst.push([_setLayer, arguments]);
iLayers[layerNum] = true;
}
}
function _setLayer(num) {
target = root.createEmptyMovieClip("mc" + num, num);
}
function goRoot() {
inst.push([_goRoot, arguments]);
}
function goRootTarget() {
inst.push([_goRootTarget, arguments]);
}
function attachAndPlaceMovie() {
inst.push([_attachAndPlaceMC, arguments]);
}
function showInfo() {
inst.push([_showInfo]);
}
function _solid(color, p) {
var mc = target;
mc.beginFill(color);
var i;
if (arguments.length > 2) {
var c = arguments.length;
while (--c) {
i = ((p = arguments[c])).length;
mc.moveTo(p[0].x, p[0].y);
while ((--i) > -1) {
mc.lineTo(p[i].x, p[i].y);
}
}
} else {
i = p.length;
mc.moveTo(p[0].x, p[0].y);
while ((--i) > -1) {
mc.lineTo(p[i].x, p[i].y);
}
}
mc.endFill();
}
function _gradient(type, colors, alphas, ratios, matrix, p) {
var mc = target;
mc.beginGradientFill(type, colors, alphas, ratios, matrix);
var i = p.length;
mc.moveTo(p[0].x, p[0].y);
while ((--i) > -1) {
mc.lineTo(p[i].x, p[i].y);
}
mc.endFill();
}
function _bitmapShape(tileID, p, l, t, w, h, tw, i) {
var tr;
var mc = target.createEmptyMovieClip("_T" + created, ++created);
mc._x = l;
mc._y = t;
while ((--i) > -1) {
tr = mc.attachMovie(tileID, "m" + i, i);
tr._x = (i % tw) * w;
tr._y = Math.floor(i / tw) * h;
}
var mask = target.createEmptyMovieClip("_F" + created, ++created);
mask.beginFill(0);
var i = p.length;
mask.moveTo(p[0].x, p[0].y);
while (--i) {
mask.lineTo(p[i].x, p[i].y);
}
mask.endFill();
mc.setMask(mask);
}
function _createEmptyTarget(name, depth) {
if (name == null) {
name = "CLIP" + created;
} else if (target[name]) {
return(undefined);
}
trace("EMPTY TARGET");
target.createEmptyMovieClip(name, (depth ? (depth) : (created)));
created++;
}
function _createAssetTarget(name, depth, linkageID) {
if (name == null) {
name = "CLIP" + created;
} else if (target[name]) {
return(undefined);
}
trace("ASSET TARGET");
target.attachMovie(linkageID, name, (depth ? (depth) : (created)));
created++;
}
function _createTarget(name, depth, linkageID) {
if (target[name]) {
return(undefined);
}
if (name == null) {
name = "mc" + created;
}
if (linkageID != null) {
target.attachMovie(linkageID, name, (depth ? (depth) : (created)));
} else {
target.createEmptyMovieClip(name, (depth ? (depth) : (created)));
}
created++;
}
function _setTarget(name) {
target = target[name];
}
function _goRoot() {
target = root;
}
function _goRootTarget(name) {
target = root[name];
}
function _attachAndPlaceMC(assetID, depth, x, y) {
var mc = target.attachMovie(assetID, (assetID + "_") + depth, depth);
mc._x = x;
mc._y = y;
}
function _showInfo() {
var i = edges.length;
if (target != root) {
target = root;
}
var target = target.createEmptyMovieClip("info", 65535);
var o;
while ((--i) > -1) {
o = edges[i];
target.lineStyle(0, (((o.props & 1) != 0) ? 16711680 : 13421772));
target.moveTo(o.a.x + o.span.x, o.a.y + o.span.y);
target.lineTo(o.a.x, o.a.y);
target.lineStyle(3, 255);
target.moveTo(o.a.x + (o.span.x * 0.5), o.a.y + (o.span.y * 0.5));
target.lineTo((o.a.x + (o.span.x * 0.5)) + (o.normal.x * 30), (o.a.y + (o.span.y * 0.5)) + (o.normal.y * 30));
target.lineStyle(3, 65280);
target.moveTo(o.a.x, o.a.y);
target.lineTo(o.a.x + (o.a.normal.x * 30), o.a.y + (o.a.normal.y * 30));
}
}
function toString() {
return("DrawStyle " + className);
}
static var GRADIENT_ALPHAS = [100, 100];
static var GRADIENT_RATIOS = [0, 255];
static var styles = {};
var edgeGroupMask = SSGlobal.EDGE_GROUPING_MASK;
var created = 0;
var stylePrepared = false;
var className = "SSDrawStyle";
}
Symbol 425 MovieClip [__Packages.RGB] Frame 0
class RGB extends Number
{
function RGB (r, g, b) {
super();
switch (arguments.length) {
case 3 :
this.r = r;
this.g = g;
this.b = b;
return;
case 0 :
return;
case 1 :
hex(r);
}
}
function hex(i) {
r = i >>> 16;
g = (i - (r << 16)) >>> 8;
b = i % 256;
}
function toHex() {
var c = (((r << 16) + (g << 8)) + b);
var s = "";
var i = 20;
while (i > -1) {
var v = (c >>> i);
s = s + ((v > 9) ? (chr(55 + v)) : (v));
c = c - (v << i);
i = i - 4;
}
return("0x" + s);
}
function addChannel(ir, ig, ib) {
r = r + ir;
g = g + ig;
b = b + ib;
}
function subChannel(ir, ig, ib) {
r = r - ir;
g = g - ig;
b = b - ib;
}
function addColor(v) {
r = r + v.r;
g = g + v.g;
b = b + v.b;
}
function subColor(v) {
r = r - v.r;
g = g - v.g;
b = b - v.b;
}
function valueOf() {
return(((r << 16) + (g << 8)) + b);
}
function toString() {
return(((((("RGB(" + r) + ",") + g) + ",") + b) + ")");
}
var r = 0;
var g = 0;
var b = 0;
}
Symbol 426 MovieClip [__Packages.MovieClipSkew] Frame 0
class MovieClipSkew extends MovieClip
{
var __get___xskew, __get___yskew, skewClip, asset;
function MovieClipSkew () {
super();
}
static function create(parent, linkageID, newName, depth) {
var mc = parent.createEmptyMovieClip(newName, depth);
var tmp = mc.createEmptyMovieClip("skewClip", 0);
if (linkageID == null) {
var tmp = tmp.createEmptyMovieClip("asset", 0);
} else {
var tmp = tmp.attachMovie(linkageID, "asset", 0);
}
tmp._rotation = -45;
mc.__proto__ = MovieClipSkew.prototype;
mc.asset = tmp;
mc.skew(0, 0);
return(mc);
}
function set _xskew(v) {
skew(v, __yskew);
//return(__get___xskew());
}
function get _xkew() {
return(__xskew);
}
function set _yskew(v) {
skew(__xskew, v);
//return(__get___yskew());
}
function get _ykew() {
return(__yskew);
}
function skew(x, y) {
var rx = (x * 0.0174532925199433 /* Math.PI/180 */);
var ry = (y * 0.0174532925199433 /* Math.PI/180 */);
var rot = ((skewClip._rotation = ((((__xskew = x)) + ((__yskew = y))) / 2) + 45));
skewClip._xscale = ((100 * (Math.cos(rx) + Math.sin(ry))) / Math.sin(rot * 0.0174532925199433 /* Math.PI/180 */)) * 0.7071;
skewClip._yscale = ((100 * (Math.sin(rx) + Math.cos(ry))) / Math.sin(rot * 0.0174532925199433 /* Math.PI/180 */)) * 0.7071;
}
function attachMovie() {
return(asset.attachMovie.apply(asset, arguments));
}
var __xskew = 0;
var __yskew = 0;
}
Symbol 427 MovieClip [__Packages.SSDrawStyle] Frame 0
class SSDrawStyle extends SSDrawing
{
var viewSlope, surfaceEdge, wallEdge, emptyEdge, styleXML, lightDirection, viewAngle, points, groups, setLayer, fillTexture, bitmapShape, fillColor, solidShape, transform, calculateLighting, assetStrip, inst;
function SSDrawStyle () {
super();
}
function setup() {
trace(("Setup " + this) + newline);
viewSlope = SSGlobal.DRAW_VIEW_DIRECTION;
surfaceEdge = new SSMaterial();
wallEdge = new SSMaterial();
emptyEdge = new SSMaterial();
}
function define() {
trace("Define " + this);
}
function applyNodeToObject(obj, node) {
var o = node.attributes;
var v;
var type;
for (var i in o) {
if (((type = obj.types[i])) == null) {
type = obj.defaultType;
}
trace(i);
switch (type) {
case "hex" :
v = GDK.Tools.hexToNumber(o[i]);
if (!isNaN(v)) {
obj[i] = v;
}
break;
case "number" :
v = Number(o[i]);
if (!isNaN(v)) {
obj[i] = v;
}
break;
case "string" :
v = o[i];
if (v.length > 0) {
obj[i] = v;
}
break;
case "vector" :
v = o[i].split(",");
v = new Vector(Number(v[0]), Number(v[1]), Number(v[2]));
trace([i, v]);
if (v.length == Number.NaN) {
break;
}
obj[i] = v;
}
}
}
function defineFromXML() {
if (styleXML == null) {
return(undefined);
}
trace("STYLE FROM XML");
trace("Main");
applyNodeToObject(this, styleXML);
var so;
var x;
var a;
var i = ((a = styleXML.childNodes)).length;
while ((--i) > -1) {
if (!((so = this[((x = a[i])).nodeName + "Edge"]))) {
continue;
}
trace(x.nodeName);
applyNodeToObject(so, x);
}
delete styleXML;
}
function prepare() {
trace("Prepare" + this);
viewSlope.normalize();
lightDirection.normalize();
surfaceEdge.prepare();
wallEdge.prepare();
emptyEdge.prepare();
}
function process() {
capEnd = ((viewSlope.x < 0) ? (((viewSlope == 0) ? 0 : -1)) : 1);
viewAngle = Math.atan2(-viewSlope.x, viewSlope.y) * 57.2957795;
mainFill(points);
var i = groups.length;
while ((--i) > -1) {
groupFill(groups[i], groups[i].mask);
}
}
function mainFill(points) {
setLayer(mainFillLayer);
if (fillTexture != null) {
bitmapShape(fillTexture, points);
} else if (fillColor != null) {
setLayer(mainFillLayer);
solidShape(fillColor, points);
}
transform(offsetX, offsetY);
}
function pickStyle(mask) {
if (mask & 1) {
if (mask & 2) {
return(surfaceEdge);
}
return(wallEdge);
}
return(emptyEdge);
}
function createSegment(point, normal, edge, material, scale) {
if (scale == null) {
scale = 1;
}
var viewX = viewSlope.x;
var viewY = viewSlope.y;
var csp = point;
var rsp = ((material.rearDepth > 0) ? (new Vector(csp.x - (material.rearDepth * viewX), csp.y - (material.rearDepth * viewY), 0)) : (csp));
var fsp = ((material.frontDepth > 0) ? (new Vector(csp.x + (material.frontDepth * viewX), csp.y + (material.frontDepth * viewY), 0)) : (csp));
var dp = normal.dot(edge.normal);
if (material.thickness > 0) {
var th = material.thickness;
var tc = (th / dp);
var fbp = new Vector((fsp.x - (normal.x * tc)) + (material.sideExtrude * viewX), (fsp.y - (normal.y * tc)) + (material.sideExtrude * viewY), 0);
var rbp = new Vector((rsp.x - (normal.x * tc)) - (material.sideExtrude * viewX), (rsp.y - (normal.y * tc)) - (material.sideExtrude * viewY), 0);
var mbp = new Vector(csp.x - (normal.x * tc), csp.y - (normal.y * tc), 0);
} else {
var fbp = fsp;
var rbp = rsp;
var mbp = mbp;
}
var cbp = (material.bottomDepth ? (new Vector(fbp.x - (material.bottomDepth * viewX), fbp.y - (material.bottomDepth * viewY), 0)) : (fbp));
var ret = [rsp, csp, fsp, fbp, cbp, mbp, rbp];
((ret.normal = new Vector(normal.x * dp, normal.y * dp, 0))).normalize();
return(ret);
}
function groupFill(edges, mask) {
var material = edges[0].attributes;
if (material == null) {
return(undefined);
}
var surfaceFront = new SSDrawing();
var surfaceRear = new SSDrawing();
var surfaceSide = new SSDrawing();
var surfaceBottom = new SSDrawing();
var looping = (edges[0].previous == edges[edges.length]);
var i = edges.length;
var segments = [];
var segA;
var segB;
var ambient = material.ambientColor;
var diffuse = material.diffuseColor;
var specular = material.specularColor;
if (looping) {
segments[i] = (segments[0] = createSegment(edges[0].a, edges[0].a.normal, edges[0], material));
} else {
switch (material.endAlign) {
case 0 :
default :
segA = (segments[0] = createSegment(edges[0].a, edges[0].normal, edges[0], material));
segB = (segments[i] = createSegment(edges[i - 1].b, edges[i - 1].normal, edges[i - 1], material));
// unexpected jump
case 1 :
segA = (segments[0] = createSegment(edges[0].a, edges[0].a.normal, edges[0], material));
segB = (segments[i] = createSegment(edges[i - 1].b, edges[i - 1].b.normal, edges[i - 1], material));
// unexpected jump
case 2 :
}
segA = (segments[0] = createSegment(edges[0].a, edges[0].previous.direction, edges[0], material));
segB = (segments[i] = createSegment(edges[i - 1].b, edges[i - 1].next.direction, edges[i - 1], material));
if (material.capSurface && (material.thickness > 0)) {
var v = segA.normal.cross(Vector.VECNZ);
if (viewSlope.dot(v) < 0) {
var colorA = calculateLighting(v, ambient, diffuse, specular).valueOf();
surfaceFront.solidShape(colorA, [segA[1], segA[2], segA[3], segA[5]]);
surfaceRear.solidShape(colorA, [segA[0], segA[1], segA[5], segA[6]]);
}
var v = segB.normal.cross(Vector.VECNZ);
if (viewSlope.dot(v) < 0) {
var colorA = calculateLighting(v, ambient, diffuse, specular).valueOf();
surfaceFront.solidShape(colorA, [segB[1], segB[2], segB[3], segB[5]]);
surfaceRear.solidShape(colorA, [segB[0], segB[1], segB[5], segB[6]]);
}
}
}
while (--i) {
segments[i] = createSegment(edges[i].a, edges[i].a.normal, edges[i], material);
}
var texture = (SSMaterial.TEXTURES_ENABLED ? (material.surfaceTexture) : null);
var textureMode = material.surfaceTextureMode;
var sideExtrude = material.sideExtrude;
var smoothing = material.smoothing;
var oneMinusSmooth = (1 - smoothing);
var skewX = (viewSlope.x * 180);
var ratios = material.ratios;
var alphas = material.alphas;
var topThick = (material.frontDepth + material.rearDepth);
var topVis;
var i = edges.length;
segB = segments[i];
var edge;
var a;
var b = edges[i - 1].b;
var edgeNorm;
var aNorm;
var bNorm = segB.normal;
var colors;
var colorA;
var colorB;
var sideColor;
if (!sideExtrude) {
sideColor = calculateLighting(Vector.VECPZ, ambient, diffuse, specular).valueOf();
}
while ((--i) > -1) {
a = edges[i].a;
segA = segments[i];
edgeNorm = ((edge = edges[i])).normal;
aNorm = segA.normal;
if (((topVis = viewSlope.dot(edge.normal) < 0)) && (topThick > 0)) {
if (texture != null) {
surfaceFront.textureStrip(texture, segA[material.surfaceTexturePoint], segB[material.surfaceTexturePoint], material.surfaceTextureMode, viewAngle);
} else if (smoothing != 0) {
if (smoothing == 1) {
colorA = calculateLighting(aNorm, ambient, diffuse, specular).valueOf();
colorB = calculateLighting(bNorm, ambient, diffuse, specular).valueOf();
} else {
colorA = calculateLighting(smoothNormal(edgeNorm, aNorm, smoothing), ambient, diffuse, specular).valueOf();
colorB = calculateLighting(smoothNormal(edgeNorm, bNorm, smoothing), ambient, diffuse, specular).valueOf();
}
switch (material.smoothingQuality) {
case 0 :
default :
var colors = [colorA, colorB];
// unexpected jump
case 1 :
var colors = [colorA, calculateLighting(edgeNorm, ambient, diffuse, specular).valueOf(), colorB];
// unexpected jump
case 2 :
}
var ec = calculateLighting(edgeNorm, ambient, diffuse, specular).valueOf();
var colors = [colorA, ec, ec, colorB];
var el = edge.length;
var fill = new GradientMatrix(edge.center.x, edge.center.y, el, el, (viewSlope.x * el) * 0.5, 0);
surfaceFront.gradientShape("linear", colors, alphas, ratios, fill, [segA[1], segA[2], segB[2], segB[1]]);
surfaceRear.gradientShape("linear", colors, alphas, ratios, fill, [segA[0], segA[1], segB[1], segB[0]]);
} else {
var color = calculateLighting(edgeNorm, ambient, diffuse, specular).valueOf();
surfaceFront.solidShape(color, [segA[1], segA[2], segB[2], segB[1]]);
surfaceRear.solidShape(color, [segA[0], segA[1], segB[1], segB[0]]);
}
} else if ((!topVis) && (material.bottomDepth)) {
var color = calculateLighting(edgeNorm.getReversed(), ambient, diffuse, specular).valueOf();
surfaceBottom.solidShape(color, [segA[3], segA[4], segB[4], segB[3]]);
}
if (sideExtrude && (material.thickness > 0)) {
var v;
var thickness = material.thickness;
((v = new Vector((-edge.normal.x) * thickness, (-edge.normal.y) * thickness, -sideExtrude).cross(edge.direction))).normalize();
sideColor = calculateLighting(v, ambient, diffuse, specular).valueOf();
if (material.sideSmoothing) {
var va;
var vb;
((va = new Vector((-a.normal.x) * thickness, (-a.normal.y) * thickness, -sideExtrude).cross(edge.direction))).normalize();
((vb = new Vector((-b.normal.x) * thickness, (-b.normal.y) * thickness, -sideExtrude).cross(edge.direction))).normalize();
colorA = calculateLighting(smoothNormal(v, va, material.sideSmoothing), ambient, diffuse, specular).valueOf();
colorB = calculateLighting(smoothNormal(v, vb, material.sideSmoothing), ambient, diffuse, specular).valueOf();
var fill = new GradientMatrix((segA[2].x + segB[3].x) / 2, (segA[2].y + segB[3].y) / 2, edge.length, edge.length, (viewSlope.x * el) * 0.5, 0);
switch (material.smoothingQuality) {
case 0 :
default :
var colors = [colorA, colorB];
// unexpected jump
case 1 :
var colors = [colorA, sideColor, colorB];
// unexpected jump
case 2 :
}
var colors = [colorA, sideColor, sideColor, colorB];
surfaceFront.gradientShape("linear", colors, alphas, ratios, fill, [segA[2], segA[3], segB[3], segB[2]]);
} else {
surfaceSide.solidShape(sideColor, [segA[2], segA[3], segB[3], segB[2]]);
}
} else {
surfaceSide.solidShape(sideColor, [segA[2], segA[3], segB[3], segB[2]]);
}
if (material.sideTexture != null) {
setLayer(material.sideTextureLayer);
assetStrip(material.sideTexture, segA[material.sideTexturePoint], segB[material.sideTexturePoint], material.sideTextureMode, material.sideTextureAlign, true);
}
b = a;
bNorm = aNorm;
segB = segA;
}
setLayer(material.bottomSurfaceLayer);
inst.push.apply(inst, surfaceBottom.inst);
setLayer(material.frontSurfaceLayer);
inst.push.apply(inst, surfaceFront.inst);
setLayer(material.sideSurfaceLayer);
inst.push.apply(inst, surfaceSide.inst);
setLayer(material.rearSurfaceLayer);
inst.push.apply(inst, surfaceRear.inst);
}
function smoothNormal(a, b, i) {
return(new Vector((a.x * (1 - i)) + (b.x * i), (a.y * i) + (b.y * i), 0).normalize());
}
var offsetX = 0;
var offsetY = 0;
var mainFillLayer = 20;
var store = false;
var types = {fillTexture:"string", fillColor:"hex", viewSlope:"vector", lightDirection:"vector"};
var defaultType = "number";
var caseSensitive = true;
var capEnd = true;
var className = "SSDrawStyle";
var editor_drawStyle = true;
static var editor_ignore = true;
}
Symbol 428 MovieClip [__Packages.SSMaterial] Frame 0
class SSMaterial
{
var ratios, alphas;
function SSMaterial () {
}
function prepare() {
trace("Preparing Style");
if (layerShift) {
var ls = layerShift;
rearSurfaceLayer = rearSurfaceLayer + ls;
frontSurfaceLayer = frontSurfaceLayer + ls;
sideSurfaceLayer = sideSurfaceLayer + ls;
bottomSurfaceLayer = bottomSurfaceLayer + ls;
sideTextureLayer = sideTextureLayer + ls;
}
if (frontDepth < 0) {
frontDepth = 0;
}
if (rearDepth < 0) {
rearDepth = 0;
}
if (thickness < 0) {
thickness = 0;
}
if (bottomDepth < 0) {
bottomDepth = 0;
}
ambientColor = new RGB(ambientColor);
diffuseColor = new RGB(diffuseColor);
specularColor = new RGB(specularColor);
switch (smoothingQuality) {
case 0 :
default :
ratios = [0, 255];
alphas = [100, 100];
return;
case 1 :
ratios = [0, 128, 255];
alphas = [100, 100, 100];
return;
case 2 :
}
ratios = [0, 96, 159, 255];
alphas = [100, 100, 100, 100];
}
function toString() {
return("SSMaterial");
}
static var LOW_QUALITY = 0;
static var MEDIUM_QUALITY = 1;
static var HIGH_QUALITY = 2;
static var TEXTURES_ENABLED = true;
var initialized = false;
var surfaceTextureMode = 1;
var surfaceTexturePoint = 0;
var sideTextureMode = 1;
var sideTexturePoint = 4;
var sideTextureAlign = false;
var rearSurfaceLayer = 10;
var frontSurfaceLayer = 30;
var sideSurfaceLayer = 32;
var bottomSurfaceLayer = 29;
var sideTextureLayer = 31;
var layerShift = 0;
var ambientColor = 6710886;
var diffuseColor = 10066329;
var specularColor = 15658751;
var smoothing = 0;
var sideSmoothing = 0;
var smoothingQuality = HIGH_QUALITY;
var capSurface = false;
var endAlign = 1;
var segmentLine = true;
var thickness = 10;
var frontDepth = 10;
var rearDepth = 10;
var sideExtrude = 0;
var bottomDepth = 0;
var friction = 0.9;
var traction = 0.5;
var bounciness = 0.1;
var emitDust = false;
var defaultType = "number";
var types = {impactSound:"string", ambientColor:"hex", diffuseColor:"hex", specularColor:"hex", surfaceTexture:"string", sideTexture:"string"};
}
Symbol 429 MovieClip [__Packages.GDK.Tools] Frame 0
class GDK.Tools
{
function Tools () {
}
static function sortArrayOn(a, s, toNew) {
if (flashVersion >= 7) {
a.sortOn(s, Array.NUMERIC);
}
var f = -1;
var b = a.length;
var j;
var lv;
var hv;
var li;
var hi;
var t;
while ((++f) <= (--b)) {
if (((lv = a[(li = f)][s])) > ((hv = a[(j = (hi = b))][s]))) {
t = a[li];
a[li] = a[hi];
a[hi] = t;
lv = a[(li = f)][s];
hv = a[(j = (hi = b))][s];
}
while ((--j) > f) {
if (lv > a[j][s]) {
lv = a[(li = j)][s];
} else if (hv < a[j][s]) {
hv = a[(hi = j)][s];
}
}
if (li != f) {
t = a[f];
a[f] = a[li];
a[li] = t;
}
if (hi != b) {
t = a[b];
a[b] = a[hi];
a[hi] = t;
}
}
}
static function hexToNumber(hexStr) {
if (hexStr.charAt(0) == "#") {
return(Number("0x" + hexStr.substr(1)));
}
if ((hexStr.charAt(1) == "x") || (hexStr.charAt(1) == "X")) {
return(Number(hexStr));
}
return(Number("0x" + hexStr));
}
static function binary(n) {
var s = "";
var i = 32;
var b = 1;
do {
s = String(Number((n & b) != 0)) + s;
b = b * 2;
} while ((--i) > -1);
return(s);
}
static function hex(n, t) {
var s = "";
var h;
var z = 0;
var i = 8;
while ((--i) > -1) {
s = ((((h = n & 15)) < 10) ? (h) : (chr(55 + h))) + s;
if (h > 0) {
z = i;
}
n = n >> 4;
}
return((t ? (s) : (s.substr(z))));
}
static function readHexString(hexStr) {
var size = Number("0x" + hexStr.charAt(0));
var w = Number("0x" + hexStr.substr(1, 3));
var data = hexStr.substr(4);
var i = (data.length / size);
var g = (new GDK.Grid(w, Math.ceil(i / w), 0));
while ((--i) > -1) {
g[i] = Number("0x" + data.substr(i * size, size));
}
return(g);
}
static function lookupClassName(cls) {
var n;
for (var i in _global) {
if (_global[i] == cls) {
return(i);
}
}
trace("Class Not Found");
return(null);
}
static function trim(str) {
var r = str.length;
do {
if ((--r) <= -1) {
break;
}
} while (str.charCodeAt(r) <= 32);
if (r == -1) {
return("");
}
var f = -1;
do {
if ((++f) >= r) {
break;
}
} while (str.charCodeAt(f) <= 32);
return(str.substring(f, r + 1));
}
static var flashVersion = parseInt(_level0.$version.substr(4));
static var flashMinorVersion = Number(_level0.$version.split(",")[2]);
}
Symbol 430 MovieClip [__Packages.GDK.Grid] Frame 0
class GDK.Grid extends Array
{
var length;
function Grid (w, h, defaultValue) {
super();
setSize(((w == null) ? 0 : (w)), ((h == null) ? 0 : (h)), true);
if (defaultValue != null) {
this.defaultValue = defaultValue;
}
}
function get width() {
return(_width);
}
function set width(x) {
setSize(x, _height);
//return(width);
}
function get height() {
return(_height);
}
function set height(x) {
setSize(_width, x);
//return(height);
}
function setSize(w, h, noRebuild) {
if ((w == _width) && (h == _height)) {
return(false);
}
if ((h != null) && (h > 0)) {
_overflow = false;
setCell = setCell2D_Fixed;
getCell = getCell2D_Fixed;
_area = w * h;
if ((!noRebuild) && (_mode == 0)) {
trace("Set to closed all");
}
_mode = 3;
} else {
_overflow = true;
if (x <= 0) {
setCell = setCell2D;
getCell = getCell2D;
if ((!noRebuild) && (_mode == 0)) {
trace("Set to closed all");
}
_mode = 1;
} else {
trace("Warning: Open Grid not functional yet... Width not restricted, Height values will be ignored.");
delete setCell;
delete getCell;
if ((!noRebuild) && (_mode != 0)) {
trace("Set to open all");
}
_mode = 0;
}
}
_width = ((w <= 0) ? 0 : (w));
_height = ((h <= 0) ? 0 : (h));
return(true);
}
function setCell(w, v) {
this[w] = v;
}
function __resolve(v) {
return(defaultValue);
}
function getCell(w) {
trace("Default");
return(((((value = this[w])) != null) ? (value) : (defaultValue)));
}
function setCell2D(w, h, val) {
if ((h != null) && (h < 0)) {
h = Math.floor(w / _width);
} else {
w = w + (h * _width);
}
if (h >= _height) {
_height = h + 1;
}
this[w] = val;
}
function getCell2D(w, h) {
if (h != null) {
return(this[w + (((h < 0) ? (_height + (h % _height)) : (h)) * _width)]);
}
return(this[w] % _width);
}
function setCell2D_Fixed(w, h, val) {
var u;
var v;
this[((((u = w % _width)) < 0) ? (_width + u) : (u)) + (((((v = h % _height)) < 0) ? (_height + v) : (v)) * _width)] = val;
}
function getCell2D_Fixed(x, y) {
if (((!repeatX) && (!((x > -1) && (x < _width)))) || ((!repeatY) && (!((y > -1) && (y < _height))))) {
return(defaultValue);
}
var u;
var v;
return(this[((((u = x % _width)) < 0) ? (_width + u) : (u)) + (((((v = y % _height)) < 0) ? (_height + v) : (v)) * _width)]);
}
function toString() {
var s = "";
var i = length;
var i = length;
while ((--i) > 0) {
s = this[i] + s;
s = (((i % width) == 0) ? ",\n" : ",") + s;
}
if (length > 0) {
s = this[0] + s;
}
return(s);
}
function copyFromArray(a) {
var i = a.length;
while ((--i) > -1) {
this[i] = a[i];
}
}
var _overflow = true;
var defaultValue = null;
var _width = 0;
var _height = 0;
var _area = 0;
var repeatX = true;
var repeatY = true;
var _mode = 0;
}
Symbol 431 MovieClip [__Packages.SSShapeVertex] Frame 0
class SSShapeVertex extends Vector
{
var x, y, z;
function SSShapeVertex (x, y, props) {
super();
this.x = x;
this.y = y;
this.props = props;
}
function toString() {
return(((((("ShapeVert (" + x) + ",") + y) + ",") + z) + ")");
}
var props = SSGlobal.EDGE_DEFAULT;
var scale = 0;
}
Symbol 432 MovieClip [__Packages.SSShapeEdge] Frame 0
class SSShapeEdge
{
var a, b;
function SSShapeEdge (a, b) {
this.a = a;
this.b = b;
}
function toString() {
return((a + " -> ") + b);
}
var radius = 0;
var props = SSGlobal.EDGE_DEFAULT;
var length = 0;
var angle = 0;
}
Symbol 433 MovieClip [__Packages.GradientMatrix] Frame 0
class GradientMatrix extends Object
{
function GradientMatrix (x, y, width, height, hSkew, vSkew) {
super();
g = (x ? (x) : (g));
h = (y ? (y) : (h));
a = (width ? (width) : (a));
e = (height ? (height) : (e));
d = (hSkew ? (hSkew) : (d));
b = (vSkew ? (vSkew) : (b));
}
function set hSkew(v) {
d = v;
//return(hSkew);
}
function get hSkew() {
return(d);
}
function set vSkew(v) {
b = v;
//return(vSkew);
}
function get vSkew() {
return(b);
}
function set width(v) {
a = v;
//return(width);
}
function get width() {
return(a);
}
function set height(v) {
e = v;
//return(height);
}
function get height() {
return(e);
}
function set x(v) {
g = v;
//return(x);
}
function get x() {
return(g);
}
function set y(v) {
h = v;
//return(y);
}
function get y() {
return(h);
}
function set rotation(v) {
b = (d = v);
//return(rotation);
}
function get rotation() {
return((b + d) * 0.5);
}
var a = 1;
var b = 0;
var c = 0;
var d = 0;
var e = 1;
var f = 0;
var g = 50;
var h = 50;
var i = 1;
}
Symbol 434 MovieClip [__Packages.SSZone] Frame 0
class SSZone extends SSObject
{
var localTop, localLeft, localRight, localBottom, radius, onColMethod, owner, args;
function SSZone (type, size, onCollision, ownerObject) {
super();
if (arguments.length) {
init.apply(this, arguments);
}
}
function init(type, size, onCollision, ownerObject) {
if ((boundType = type)) {
if (size) {
localTop = (localLeft = 0);
localRight = size.x;
localBottom = size.y;
} else {
localTop = (localLeft = 0);
localRight = (localBottom = 100);
}
} else {
if (size) {
radius = size;
}
localTop = (localLeft = -((localRight = (localBottom = radius))));
}
if (onCollision) {
onColMethod = onCollision;
}
owner = ownerObject;
args = arguments.slice(4);
}
function onCollision(obj) {
return(onColMethod.call(owner, obj));
}
static var SPHERE = 0;
static var RECT = 1;
var assetID = null;
var boundType = SPHERE;
var classID = SSGlobal.CLSID_ZONE;
var editor_canChangeAsset = false;
var editor_canChangeLayer = false;
var editor_canChangeFrame = false;
}
Symbol 435 MovieClip [__Packages.GameSpring] Frame 0
class GameSpring extends SSObject
{
var addEvent, setAngle, angle, zone, radius, world, direction, x, y, z;
function GameSpring (angle, strength) {
super();
addEvent("rotate", onRotate);
strength = Number(strength);
if (!isNaN(strength)) {
this.strength = strength;
}
setAngle((angle ? (angle) : (this.angle)));
}
function onAddToWorld() {
zone = new SSZone(SSZone.SPHERE, radius, zone_onCollide, this);
world.addObject(zone);
onMove();
}
function onMove() {
zone.moveTo(x + (20 * direction.x), y + (20 * direction.y), z);
}
function onRotate(angle) {
var r = ((angle * Math.PI) / 180);
direction = new Vector(Math.sin(r), -Math.cos(r), 0);
onMove();
}
function zone_onCollide(obj) {
GameSound.playSound("Spring");
obj.jumpTime = 0;
obj.velocity.x = direction.x * (strength + (obj.velocity.x * momentumTransfer));
obj.velocity.y = direction.y * (strength + (obj.velocity.y * momentumTransfer));
return(GDK.Node.COLLISION_CANCEL);
}
function editor_onDisplay(target, external) {
target._rotation = angle;
target.clear();
target.lineStyle(0, 52479);
var d = (strength - (((1 - (Math.log(strength) / 8)) * strength) * 3));
target.lineTo(0, -d);
}
var assetID = "spring";
var strength = 3500;
var momentumTransfer = 0;
var editor_isItem = true;
var editor_name = "Spring";
var editor_canRotate = true;
var editor_args_names = ["angle", "strength"];
var editor_args_values = [0, 1200];
var editor_args_types = ["number", "number"];
var editor_args_options = [[-360, 360, 1], [0, 5000, 20]];
var editor_args_descriptions = ["", ""];
var editor_args_mode = [0, 0];
var editor_args_component = ["NumericStepper", "NumericStepper"];
}
Symbol 436 MovieClip [__Packages.GameSound] Frame 0
class GameSound
{
static var soundBase, self, mainSound;
var target, soundObj;
function GameSound (sndClipID) {
if (sndClipID != null) {
var mc = ((target = soundBase.attachMovie(sndClipID, "sound" + created, ++created)));
} else {
var mc = ((target = soundBase.createEmptyMovieClip("sound" + created, ++created)));
}
mc._visible = false;
mc.stop();
soundObj = new Sound(mc);
soundObj.mc = mc;
trace((("GAME SOUND " + target) + ":") + soundObj);
}
function startSound(linkageID, repeat) {
soundObj.stop();
soundObj.attachSound(linkageID);
soundObj.start(0, (repeat ? 1048575 : 0));
}
static function playMusic(id, fadeTime, repeat) {
if ((id == null) || (id == "")) {
music.soundObj.stop();
return(undefined);
}
music.soundObj.setVolume(musicVolume);
trace("PLAY MUSIC " + arguments);
var mc;
var snd = music.soundObj;
snd.stop();
snd.attachSound(id);
snd.start(0, ((repeat != false) ? 16777215 : 0));
}
static function fadeSound(snd, targetVol, time, onComplete) {
var fn = function (snd, st, t, sVol, oVol) {
var r = Math.min(((getTimer() * 0.001) - st) / t, 1);
snd.setVolume(Math.round(sVol + (r * oVol)));
trace([r, sVol, oVol, sVol + (r * oVol)]);
if (r == 1) {
onComplete(snd);
clearInterval(arguments.callee.id);
}
};
fn.id = setInterval(fn, 0, snd, getTimer() * 0.001, time, snd.getVolume(), targetVol - snd.getVolume());
}
static function stopMusic(fadeTime) {
snd.stop();
return(undefined);
}
static function playSound(name) {
self.target.gotoAndStop(name);
self.target.gotoAndStop(2);
}
static function pause() {
mainSound.setVolume(0);
}
static function resume() {
mainSound.setVolume(100);
}
static function initSound() {
trace("INIT SOUNDS");
trace("_GLOBAL ROOT" + _global.root);
mainSound = new Sound((soundBase = (_global.root ? (_global.root) : (_root)).createEmptyMovieClip("_GlobalSounds", 978944)));
self = new GameSound("GlobalSounds");
music = new GameSound();
return(true);
}
static var created = 0;
static var baseDepth = 978944;
static var musicVolume = 50;
static var music = new GameSound();
static var initialized = initSound();
}
Symbol 437 MovieClip [__Packages.GameCollectable] Frame 0
class GameCollectable extends SSObject
{
var x, y, checkCollisions, moveBy, motionTime, velocity, inMotion, cancelUpdates, motionDir, setCollected;
function GameCollectable () {
super();
}
function updatePosition(elapsed) {
var oX = x;
var oY = y;
checkCollisions(elapsed);
moveBy(velocity.x * motionTime, velocity.y * motionTime, 0);
if ((Math.abs(oX - x) < 0.5) && (Math.abs(oY - y) < 0.5)) {
x = oX;
y = oY;
if (((inMotion = inMotion - elapsed)) <= 0) {
cancelUpdates();
velocity.loc(0, 0, 0);
}
}
}
function checkCollision(obj) {
var o;
switch (obj.classID & 4294901760) {
case SSGlobal.CLSID_SHAPE :
if ((o = SSCollision.sweepSphereToStaticShape(this, obj))) {
var speed = (velocity.__get__length() * bounciness);
var dp = motionDir.dot(o.normal);
velocity.x = (motionDir.x - ((o.normal.x * dp) * 2)) * speed;
velocity.y = (motionDir.y - ((o.normal.y * dp) * 2)) * speed;
x = o.point.x;
y = o.point.y;
}
return;
case SSGlobal.CLSID_MAINCHAR :
if (!SSCollision.sweepSphereToSphere(this, obj, true)) {
break;
}
setCollected(obj);
}
}
var classID = SSGlobal.CLSID_COLLECTABLE;
var collisionMask = SSGlobal.CLSID_SHAPE | SSGlobal.CLSID_MAINCHAR;
var collected = false;
var radius = 15;
var bounciness = 0.5;
}
Symbol 438 MovieClip [__Packages.SSCollision] Frame 0
class SSCollision
{
var point, normal, edge, time;
function SSCollision (point, normal, time, edge) {
this.point = point;
this.normal = normal;
this.edge = edge;
this.time = time;
}
static function sweepSphereToStaticShape(sphere, shape, noData) {
if ((((sphere.motionLeft > shape.right) || (sphere.motionRight < shape.left)) || (sphere.motionTop > shape.bottom)) || (sphere.motionBottom < shape.top)) {
return(undefined);
}
var motionVec = sphere.motionVec;
var motionDir = sphere.motionDir;
var motionDist = sphere.motionDist;
var motionTime = sphere.motionTime;
var radius = sphere.radius;
var collisionNormal;
var collisionPoint;
var collisionEdge;
var collisionTime = 255;
var sOrigin = new Vector(sphere.x - shape.x, sphere.y - shape.y, 0);
var edges = shape.colEdges;
var i = edges.length;
var count = 0;
var edge;
var c;
var q;
while ((--i) > -1) {
if (!(((edge = edges[i])).props & 1)) {
continue;
}
var eNormal = edge.normal;
if (((motionDir.x * eNormal.x) + (motionDir.y * eNormal.y)) >= 0) {
continue;
}
var a = edge.a;
var c = new Vector(edge.center.x - sOrigin.x, edge.center.y - sOrigin.y, 0);
if (((c.length - radius) - motionDist) > edge.radius) {
continue;
}
var localOrigin = new Vector(sOrigin.x - a.x, sOrigin.y - a.y);
var radOrigin = new Vector(localOrigin.x - (edge.normal.x * radius), localOrigin.y - (edge.normal.y * radius));
var edgeDirection = edge.span;
var u = (((motionVec.x * (-radOrigin.y)) - (motionVec.y * (-radOrigin.x))) / ((motionVec.y * edgeDirection.x) - (motionVec.x * edgeDirection.y)));
var d;
if ((u >= 0) && (u <= 1)) {
var p = new Vector((edgeDirection.x * u) + (edge.normal.x * radius), (edgeDirection.y * u) + (edge.normal.y * radius), 0);
var displacement = new Vector(p.x - localOrigin.x, p.y - localOrigin.y);
if (((d = displacement.length)) <= motionDist) {
if (collisionTime < ((d / motionDist) * motionTime)) {
continue;
}
collisionPoint = p;
collisionTime = (d / motionDist) * motionTime;
collisionNormal = edge.normal;
collisionEdge = edge;
if (collisionTime < 0.0001) {
collisionTime = 0;
p.x = localOrigin.x;
p.y = localOrigin.y;
break;
}
if ((++count) >= 2) {
break;
}
var elim = (edge.length * u);
if ((elim > (radius * 2)) && (elim < (edge.length - (radius * 2)))) {
break;
}
}
} else {
var p = ((u > 1) ? (edge.span) : (Vector.ZERO));
c = ((q = new Vector(p.x - localOrigin.x, p.y - localOrigin.y))).length;
var v = ((q.x * motionDir.x) + (q.y * motionDir.y));
d = (radius * radius) - ((c * c) - (v * v));
if ((d > 0) && (((d = v - Math.sqrt(d))) < motionDist)) {
if ((collisionTime < ((d / motionDist) * motionTime)) || ((d / motionDist) < 0)) {
continue;
}
collisionTime = (d / motionDist) * motionTime;
collisionEdge = edge;
var collisionPoint = new Vector(localOrigin.x + (d * motionDir.x), localOrigin.y + (d * motionDir.y), 0);
((collisionNormal = new Vector(collisionPoint.x - p.x, collisionPoint.y - p.y, 0))).normalize();
if (collisionTime < 0.0001) {
collisionPoint.x = localOrigin.x;
collisionPoint.y = localOrigin.y;
break;
}
if ((++count) >= 2) {
break;
}
}
}
}
if (collisionEdge) {
collisionPoint.x = collisionPoint.x + (shape.x + collisionEdge.a.x);
collisionPoint.y = collisionPoint.y + (shape.y + collisionEdge.a.y);
return(new SSCollision(collisionPoint, collisionNormal, collisionTime, collisionEdge));
}
return(null);
}
static function sweepSphereToSphere(obj, sphObj, noData) {
var radius = (obj.radius + sphObj.radius);
var q;
var c;
var v;
var d;
c = ((q = new Vector(sphObj.x - obj.x, sphObj.y - obj.y, 0))).length;
var mDir;
if (c < radius) {
return(true);
}
if (obj.motionDist < (c - radius)) {
return(false);
}
if (((v = (q.x * obj.motionDir.x) + (q.y * obj.motionDir.y))) < 0) {
return(false);
}
if (((((d = (radius * radius) - ((c * c) - (v * v)))) <= 0) || (((d = v - Math.sqrt(d))) > obj.motionDist)) || (d < 0)) {
return(undefined);
}
if (noData) {
return(true);
}
return(false);
}
static function sweepBoundsToBounds(mObj, sObj, noData) {
if ((((mObj.right >= sObj.left) && (mObj.left <= sObj.right)) && (mObj.top <= sObj.bottom)) && (mObj.bottom >= sObj.top)) {
return(undefined);
}
if ((((mObj.motionRight >= sObj.left) && (mObj.motionLeft <= sObj.right)) && (mObj.motionTop <= sObj.bottom)) && (mObj.motionBottom >= sObj.top)) {
return(true);
}
}
}
Symbol 439 MovieClip [__Packages.GamePoint] Frame 0
class GamePoint extends GameCollectable
{
var world;
function GamePoint (value) {
super();
}
function onAddToWorld() {
}
function setCollected(obj) {
if (!obj.shiftScore(value)) {
return(undefined);
}
GameSound.playSound(soundID);
world.removeObject(this);
}
var assetID = "point";
var soundID = "point";
var value = 1;
var editor_isItem = true;
var editor_name = "Point";
}
Symbol 440 MovieClip [__Packages.GameHealth] Frame 0
class GameHealth extends GameCollectable
{
var collected, world;
function GameHealth (value) {
super();
if ((typeof(value) != "string") && (value != null)) {
this.value = value;
}
}
function setCollected(obj) {
collected = true;
obj.shiftHealth(value, this);
GameSound.playSound(soundID);
world.removeObject(this);
}
var assetID = "health";
var soundID = "health";
var value = 0.25;
var classID = SSGlobal.CLSID_HEALTH;
var editor_isItem = true;
var editor_name = "Health";
var editor_args_names = ["value"];
var editor_args_values = [GameHealth.prototype.value];
var editor_args_types = ["number"];
var editor_args_options = [[0, 1, 0.01]];
var editor_args_descriptions = [""];
var editor_args_mode = [0];
var editor_args_component = ["NumericStepper"];
}
Symbol 441 MovieClip [__Packages.GameCharacter] Frame 0
class GameCharacter extends SSObject
{
var acceleration, contactNormal, colorObj, target, world, keepInScene, controller, moveTo, animationFrames, climbing, lastClimbingObject, x, y, contactSurface, onUpdate, carrying, velocity, eOptions, lastContainer, swingDist, checkCollisions, moveBy, motionTime, top, force, collisionData, contactPoint, removeDisplay, stopCol, restorePoint;
function GameCharacter () {
super();
trace("Character Created");
acceleration = new Vector();
contactNormal = new Vector();
}
function initColor() {
if (colorObj) {
var ct = colorObj.getTransform();
}
colorObj = new Color(target);
if (ct) {
colorObj.setTransform(ct);
}
}
function onAddDisplay() {
initColor();
buildAnimationData();
}
function activate() {
trace("MAIN CHARACTER ACTIVATED");
world.viewport.setWatch(this);
lockDisplayState = false;
immune = immuneAtStart;
target._visible = true;
keepInScene = true;
controller.fuel = 0;
controller.cTimer = controller.nTimeLimit;
health = controller.health;
}
function deactivate() {
trace("MAIN CHARACTER DEACTIVATED");
toss();
moveTo(-300, 0, 0);
}
function buildAnimationData() {
animationFrames = [];
var i = animationLabels.length;
while ((--i) > -1) {
target.gotoAndStop(animationLabels[i]);
if (target._currentframe == 1) {
continue;
}
if (target.a) {
animationFrames[i] = Math.floor(target.a._totalframes * 0.5);
}
}
setAnimationState(0, true);
}
function update(elapsed) {
if (!dead) {
controller.updateTime(elapsed);
if (controller.cTimer <= 1) {
controller.cTimer = 0;
controller.lives = 1;
setDead(this);
}
}
if (!keysLocked) {
var vX = (controller.right - controller.left);
var vY = (controller.down - controller.up);
var kJump = ((sp != ((sp = controller.jump))) && (sp));
if (((((canClimb && (!climbing)) && (!swinging)) && (vY)) && (lastClimbingObject)) && ((lastClimbTime + 0.5) < world.time)) {
if ((((x <= lastClimbingObject.right) && (x >= lastClimbingObject.left)) && (y <= lastClimbingObject.bottom)) && (y >= lastClimbingObject.top)) {
climbing = lastClimbingObject;
contactSurface = null;
}
}
} else {
var vX = 0;
var vY = 0;
var kJump = ((sp = 0));
}
if (eTime) {
eTime = Math.max(eTime - elapsed, 0);
dropParticle();
}
if (shield) {
if (((shield = shield - elapsed)) < 0) {
onShieldEnd();
} else {
onShield();
}
} else if (immune) {
if (!((immune = Math.max(immune - elapsed, 0)))) {
target._visible = true;
} else {
target._visible = Boolean(Math.floor(immune / immuneBlink) % 3);
}
}
updatePosition(elapsed, vX, vY, kJump);
if (!lockDisplayState) {
updateDisplay(elapsed, vX, vY, kJump);
}
onUpdate(elapsed);
}
function onShieldEnd() {
immune = (shield = 0);
colorObj.setTransform({rb:0, gb:0, bb:0});
}
function onShield() {
var o = {};
var d = Math.abs(Math.sin(Math.log(shield + 1) * 10));
o.rb = d * shieldCMax.rb;
o.gb = d * shieldCMax.gb;
o.bb = d * shieldCMax.bb;
colorObj.setTransform(o);
}
function setAnimationState(state, force) {
if ((state == dispState) && (!force)) {
return(undefined);
}
dispState = state;
dispTurnFrames = animationFrames[state];
target.gotoAndStop(animationLabels[state]);
target.a.gotoAndStop(((directionX < 0) ? 1 : (target.a._totalframes)));
dispStateChanged = true;
}
function updateDisplay(elapsed, vX, vY, kJump) {
if (swinging) {
target._rotation = (Math.atan2(-swinging.vx, swinging.vy) / Math.PI) * 180;
setAnimationState(8);
} else if (carrying) {
if (jumpTime && (vX)) {
setAnimationState(12);
} else {
setAnimationState(11);
}
} else if (climbing) {
if ((!climbLimit) && (vY < 0)) {
setAnimationState(9);
} else if ((!climbLimit) && (vY > 0)) {
setAnimationState(10);
} else {
setAnimationState(8);
}
} else if (contactSurface) {
if (vX) {
setAnimationState(1);
runTick = runTick + Math.max(0.005, elapsed * (speed / 400));
var mc = target.a.mcAnim;
if (runTick > 0.02) {
runTick = 0;
if (mc._currentframe == mc._totalframes) {
mc.gotoAndStop(1);
} else {
mc.nextFrame();
}
} else {
mc.stop();
}
} else {
setAnimationState(0);
}
} else if (!jumpTime) {
if (velocity.y < 0) {
setAnimationState(2);
} else {
setAnimationState(3);
}
}
if ((dispCanTurn && (vX)) && (vX != dispAxis)) {
directionX = (dispTurn = vX);
}
if (dispStateChanged || (dispTurn)) {
if (dispTurn) {
if (dispTurn > 0) {
if (((dispAxis = Math.min(1, (dispAxis = dispAxis + ((elapsed * 2) / dispTurnTime))))) == 1) {
dispTurn = 0;
}
} else if (((dispAxis = Math.max(-1, (dispAxis = dispAxis - ((elapsed * 2) / dispTurnTime))))) == -1) {
dispTurn = 0;
}
}
dispFrame = (dispTurnFrames + Math.round(dispAxis * dispTurnFrames)) + 1;
target.a.gotoAndStop(dispFrame);
}
dispStateChanged = false;
}
function emitParticle(linkageID, time, options) {
if (linkageID == null) {
eTime = 0;
eLID = null;
return(undefined);
}
eTime = (eTimeTotal = time);
eLID = linkageID;
if (options) {
eOptions = options;
} else {
delete eOptions;
}
}
function dropParticle() {
if (eLast == ((eLast = Math.floor(eTime / eInterval)))) {
return(undefined);
}
var o = new SSParticle(eLID, (eOptions.life ? (eOptions.life) : 1), new Vector(velocity.x * 0.1, (velocity.y * 0.1) - 150, -20), eOptions.spin, eOptions.gravity);
o.x = x;
o.y = y;
o.scale = 150;
world.addObject(o);
}
function updatePosition(elapsed, vX, vY, kJump) {
corrected = false;
var oldX = x;
var oldY = y;
jumpTime = Math.max(jumpTime - elapsed, 0);
if (controller.action) {
if (carrying) {
toss();
} else if (lastContainer) {
pickup(lastContainer);
}
}
if (swinging) {
if (kJump) {
releaseSwing();
} else {
swingDist = swingDist + (((swinging.length - 50) - swingDist) * elapsed);
velocity.x = ((swinging.x + (swinging.vx * swingDist)) - x) / elapsed;
velocity.y = ((swinging.y + (swinging.vy * swingDist)) - y) / elapsed;
}
} else if (climbing) {
if (kJump) {
releaseClimb();
jump(elapsed, vX, vY);
velocity.x = dispAxis * 200;
velocity.y = -300;
} else {
climb(elapsed, vX, vY);
}
} else if ((!inMotion) || (contactSurface)) {
if (kJump) {
jump(elapsed, vX, vY);
} else {
walk(elapsed, vX, vY);
}
} else if (jumpTime && (kJump)) {
jump(elapsed, vX, vY);
} else {
updateInSpace(elapsed, vX, vY);
}
contactSurface = null;
checkCollisions(elapsed);
moveBy(velocity.x * motionTime, velocity.y * motionTime, 0);
if (carrying) {
carrying.moveTo(x, top - carrying.radius, 0);
}
if (((jumpTime && (!vX)) && (Math.abs(oldX - x) < 1)) && (Math.abs(oldY - y) < 1)) {
if (!((inMotion = Math.max((inMotion = inMotion - elapsed), 0)))) {
velocity.x = 0;
velocity.y = 20;
moveTo(oldX, oldY, 0);
}
} else {
inMotion = inMotionTime;
}
}
function onSurfaceContact() {
if (climbing) {
releaseClimb();
} else if (swinging) {
releaseSwing();
}
if (!jumpTime) {
GameSound.playSound(contactSurface.attributes.impactSound);
}
jumpTime = ((contactNormal.y <= 0) ? (allowJumpTime) : 0);
}
function toss() {
if ((carryingTime + 0.2) < world.time) {
trace("TOSS");
carrying.setVelocity(new Vector(velocity.x + (dispAxis * 200), velocity.y - 100, 0));
carryingTime = world.time;
carrying = null;
}
}
function pickup() {
if ((canCarry && (!lastContainer)) || (lastContainer.inMotion)) {
return(undefined);
}
var xs = (lastContainer.x - x);
var ys = (lastContainer.y - y);
if (Math.sqrt((xs * xs) + (ys * ys)) < (lastContainer.radius + radius)) {
carrying = lastContainer;
carrying.beingCarried = true;
carryingTime = world.time;
}
}
function climb(elapsed, vX, vY) {
velocity.x = 0.1;
velocity.y = vY * climbSpeed;
x = climbing.x + (climbing.localRight * 0.5);
lockDisplayState = false;
if (vY) {
if (vY < 0) {
var over = (climbing.top - (top + (velocity.y * elapsed)));
if (over > 0) {
velocity.y = velocity.y * (over / velocity.y);
}
} else if ((climbing.bottom - (top + (velocity.y * elapsed))) < 0) {
releaseClimb();
}
}
}
function startSwing(obj, dist) {
if ((((!canSwing) || (swinging)) || (climbing)) || ((obj.swingRelease + 0.5) > world.time)) {
return(undefined);
}
if (carrying) {
toss();
}
lockDisplayState = false;
obj.holding = this;
swingDist = dist;
swinging = obj;
}
function releaseSwing() {
velocity.x = (-swinging.sx) / swinging.lastElapsed;
velocity.y = (-swinging.sy) / swinging.lastElapsed;
trace("Release swing, velocity:" + velocity);
target._rotation = 0;
swinging.holding = null;
swinging.swingRelease = world.time;
swinging = null;
}
function releaseClimb() {
lastClimbTime = world.time;
climbing = null;
}
function jump(elapsed, vX, vY) {
var vJump = new Vector(contactNormal.x, contactNormal.y - 2, 0);
vJump.normalize();
velocity.x = velocity.x + (vJump.x * jumpStrength);
velocity.y = velocity.y + (vJump.y * jumpStrength);
jumpTime = 0;
GameSound.playSound("jump");
}
function walk(elapsed, vx, vy) {
if (!contactSurface) {
return(undefined);
}
var sAttr = contactSurface.attributes;
if (contactSurface.props & 2) {
var friction = sAttr.friction;
var traction = sAttr.traction;
force = new Vector((((-contactNormal.y) * vx) * maxWalkForce) * traction, (((contactNormal.x * vx) * maxWalkForce) * traction) + (gravity * (vx ? 0.25 : 1)), 0);
} else {
force = new Vector();
var friction = 0;
var traction = 0;
}
var dfX = (((0.004 * velocity.x) * velocity.x) * ((velocity.x >= 0) ? -1 : 1));
var dfY = (((0.004 * velocity.y) * velocity.y) * ((velocity.y >= 0) ? -1 : 1));
var FdotN = contactNormal.dot(force);
var vt = velocity.getNormalized();
vt.x = vt.x * (FdotN * friction);
vt.y = vt.y * (FdotN * friction);
force.x = force.x + (vt.x + dfX);
force.y = force.y + (vt.y + dfY);
if ((!inMotion) && (vx)) {
}
velocity.x = velocity.x + ((force.x * (1 / mass)) * elapsed);
velocity.y = velocity.y + ((force.y * (1 / mass)) * elapsed);
}
function updateInSpace(elapsed, vX, vY) {
acceleration.x = ((-velocity.x) * drag) + (vX * maxAirForce);
acceleration.y = ((-velocity.y) * drag) + gravity;
velocity.x = velocity.x + (acceleration.x * elapsed);
velocity.y = velocity.y + (acceleration.y * elapsed);
}
function checkCollision(obj, flag, options) {
var o;
switch (obj.classID & 4294901760) {
case SSGlobal.CLSID_MOBILEOBJECT :
case SSGlobal.CLSID_MAINCHAR :
if (SSCollision.sweepBoundsToBounds(this, obj)) {
var res = obj.onCollision(this);
collisionData = null;
return(((res != null) ? (res) : true));
}
return;
case SSGlobal.CLSID_CONTAINER :
case SSGlobal.CLSID_OBJECT :
if ((!swinging) && (obj.classID == SSGlobal.CLSID_SWING)) {
var t = Math.min(obj.length, Math.max(0, (obj.vx * (x - obj.x)) + (obj.vy * (y - obj.y))));
var px = (obj.x + (obj.vx * t));
var py = (obj.y + (obj.vy * t));
var sx = (x - px);
var sy = (y - py);
var l = Math.sqrt((sx * sx) + (sy * sy));
if (l < radius) {
startSwing(obj, t);
}
return;
}
case SSGlobal.CLSID_ZONE :
if (obj.boundType) {
if (SSCollision.sweepBoundsToBounds(this, obj)) {
var res = obj.onCollision(this);
collisionData = null;
return(((res != null) ? (res) : true));
}
} else if (SSCollision.sweepSphereToSphere(this, obj, true)) {
var res = obj.onCollision(this);
collisionData = null;
return(((res != null) ? (res) : true));
}
return;
case SSGlobal.CLSID_SHAPE :
if ((!obj.disabled) && ((o = SSCollision.sweepSphereToStaticShape(this, obj)))) {
if (collisionData) {
if (o.time < collisionData.time) {
collisionData = o;
}
return(true);
}
collisionData = o;
return(true);
}
return;
case SSGlobal.CLSID_COLLECTABLE :
if (!(health && (SSCollision.sweepSphereToSphere(this, obj, true)))) {
break;
}
obj.setCollected(this);
}
}
function shapeCollision(o) {
speed = velocity.length;
var bounciness;
if (((bounciness = o.edge.attributes.bounciness)) == null) {
bounciness = 0;
}
if (o.edge.attributes.water != null) {
trace((((((("water hit, center of edge = " + o.edge.center) + ", Character x:") + x) + ", y:") + y) + " o:") + o.edge.shape);
trace((("shape.x:" + o.edge.shape.x) + ", shape.y:") + o.edge.shape.y);
trace((("Edge.a.x:" + o.edge.a.x) + ", edge.a.y:") + o.edge.a.y);
var shape = o.edge.shape;
var a = o.edge.a;
var center = o.edge.center;
var hitCenter = new Vector((shape.x + a.x) + center.x, (shape.y + a.y) + center.y);
shiftHealth(waterDam, hitCenter);
GameSound.playSound("water");
return(undefined);
}
var dp = velocity.dot(o.normal);
var vn = new Vector(dp * o.normal.x, dp * o.normal.y, 0);
var vt = new Vector(velocity.x - vn.x, velocity.y - vn.y, 0);
velocity.x = vt.x - (bounciness * vn.x);
velocity.y = vt.y - (bounciness * vn.y);
motionTime = motionTime - o.time;
moveTo(o.point.x + (o.edge.normal.x * 0.05), o.point.y + (o.edge.normal.y * 0.05), 0);
corrected = true;
contactSurface = o.edge;
contactNormal = o.normal;
contactPoint = o.point;
onSurfaceContact();
checkCollisions(motionTime);
return(true);
}
function doCommand(obj, command) {
trace("command");
switch (command.toLowerCase()) {
case "loselife" :
setDead(obj);
return;
case "end" :
if (controller.cEggs >= controller.nEggReq) {
trace("Got enough eggs");
trace("References: " + target.a);
var endAnim = world.references.homeTree.target.endAnim;
endAnim._visible = true;
endAnim.play();
removeDisplay();
controller.bonus = Math.floor(controller.cTimer * controller.timeBonus);
controller.tempScore = controller.score;
controller.score = controller.score + controller.bonus;
world.viewport.lock();
endLevel(obj);
} else {
trace("End o' level, not enough eggs");
}
return;
case "climb" :
lastClimbingObject = obj;
}
}
function shiftShield(value) {
target._visible = true;
shield = Math.min(shield + value, maxShield);
}
function shiftScore(value, obj) {
if (!health) {
return(false);
}
controller.shiftScore(value);
return(true);
}
function shiftHealth(value, obj) {
if ((value < 0) && (!shield)) {
if (carrying) {
toss();
} else if (climbing) {
releaseClimb();
} else if (swinging) {
releaseSwing();
}
lastClimbTime = world.time;
if (obj) {
jumpTime = 0;
var d;
var oStr;
d = new Vector(((obj.x > x) ? -1 : 1), -1, 0);
if (!((oStr = obj.strength))) {
oStr = 200;
}
velocity.x = d.x * oStr;
velocity.y = d.y * oStr;
stopCol = true;
}
}
if (((immune || (shield)) && (value < 0)) || (health <= 0)) {
return(false);
}
controller.health = (health = Math.max(Math.min(health + value, 1), 0));
if (health <= 0) {
setDead(obj);
} else if (value < 0) {
lockDisplayState = canLockDisplayState;
immune = immuneAllowed;
hurt();
onSurfaceContact = function () {
if ((this.contactSurface.props & 2) == 0) {
return(undefined);
}
this.lockDisplayState = false;
delete this.onSurfaceContact;
this.onSurfaceContact();
};
}
return(true);
}
function hurt() {
setAnimationState(4, true);
}
function setDead(asset, point, hide) {
if (dead) {
return(undefined);
}
if (carrying) {
toss();
}
dead = true;
if (asset != null) {
if (hide) {
moveTo(-1000, 0, 0);
stopCol = true;
}
var o = new SSParticle(asset, 2, new Vector(0, 0, 0));
o.x = point.x;
o.y = point.y;
world.addObject(o);
}
if (health) {
health = 0;
}
world.viewport.lock();
GameSound.playSound("LoseLife");
lockDisplayState = true;
keysLocked = true;
onSurfaceContact = function () {
if ((this.contactSurface.props & 2) == 0) {
return(undefined);
}
this.velocity.x = 0;
this.velocity.y = 1;
this.setAnimationState(5);
delete this.onSurfaceContact;
this.onSurfaceContact();
};
var fnp = ((world.engine.onPause = function () {
arguments.callee.cs.pause();
arguments.callee.obj.target.a.stop();
}));
var fnu = ((world.engine.onResume = function () {
arguments.callee.cs.resume();
arguments.callee.obj.target.a.play();
}));
fnp.obj = (fnu.obj = this);
var cs = ((fnp.cs = (fnu.cs = new CallStack())));
if (contactSurface) {
setAnimationState(5);
} else {
setAnimationState(6);
}
cs.wait(3);
if ((controller.lives = controller.lives - 1)) {
cs.call(this, restore);
} else {
cs.call(this, endGame);
}
cs.call(this, function () {
delete this.world.engine.onResume;
delete this.world.engine.onPause;
delete this.onSurfaceContact;
});
cs.start();
}
function endGame() {
SSInterface.showScreen("GameOver");
}
function endLevel(obj, animated) {
trace("End Level");
immune = 0;
target._visible = true;
GameSound.stopMusic(0.4);
lockDisplayState = true;
keysLocked = true;
var cs = new CallStack();
var fnp = ((world.engine.onPause = function () {
trace("PAUSED");
arguments.callee.cs.pause();
arguments.callee.obj.target.a.stop();
}));
var fnu = ((world.engine.onResume = function () {
trace("RESUMED");
arguments.callee.cs.resume();
arguments.callee.obj.target.a.play();
}));
if (!contactSurface) {
cs.call(this, function () {
return(this.contactSurface != null);
});
}
cs.call(this, function () {
this.velocity.x = this.velocity.x * 0.5;
this.velocity.y = this.velocity.y * 0.5;
this.world.viewport.lock();
this.setAnimationState(7, true);
});
cs.call(this, function () {
delete this.world.engine.onResume;
delete this.world.engine.onPause;
SSInterface.showScreen("WinLevel", false);
});
cs.start();
}
function setRestorePoint(obj, index) {
restorePoint = obj;
}
function restore() {
dead = false;
if (restorePoint) {
moveTo(restorePoint.x, restorePoint.y - radius, 0);
}
setAnimationState(2);
onShieldEnd();
velocity.loc(0, 1, 0);
controller.health = (health = 1);
emitParticle(null);
world.viewport.unlock();
world.viewport.setWatch(this);
lockDisplayState = false;
keysLocked = false;
}
function collectEgg(obj) {
controller.collectEgg(obj);
}
var radius = 22.5;
var jumpStrength = 400;
var gravity = SSGlobal.GRAVITY;
var maxWalkForce = 600;
var maxAirForce = 300;
var mass = 1;
var drag = 0.9;
var classID = SSGlobal.CLSID_MAINCHAR;
var collisionMask = 4294967295;
var assetID = "Character";
var animationLabels = ["idle", "walk", "airUp", "airDown", "hurt", "death", "deathInAir", "end", "climbHold", "climbUp", "climbDown", "carry", "carryWalk"];
var animationLabel = 0;
var active = false;
var keysLocked = false;
var sp = false;
var shieldCMax = {rb:255, gb:192, bb:0};
var depthLayer = 4;
var dispState = 0;
var dispCanTurn = true;
var dispAxis = 1;
var dispTurn = 0;
var dispTurnTime = 0.25;
var dispTurnFrames = 4;
var dispFrame = GameCharacter.prototype.dispTurnFrames;
var dispStateChanged = false;
var runTick = 0;
var eLast = 0;
var eInterval = 0.1;
var eTime = 0;
var eTimeTotal = 0;
var eLID = 0;
var canClimb = true;
var canSwing = true;
var climbLimit = false;
var corrected = false;
var inMotion = 1;
var inMotionTime = 0.25;
var canCarry = true;
var carryingTime = 0;
var jumpTime = 0;
var allowJumpTime = 0.2;
var directionX = 1;
var climbSpeed = 100;
var swinging = null;
var speed = 0;
var waterBounce = 250;
var waterDam = -0.2;
var lastClimbTime = 0;
var multiplier = 1;
var health = 1;
var shield = 0;
var maxShield = 30;
var immune = 0;
var immuneAllowed = 3;
var immuneAtStart = 3;
var immuneBlink = 0.1;
var lockDisplayState = false;
var canLockDisplayState = true;
var dead = false;
}
Symbol 442 MovieClip [__Packages.GamePlayer] Frame 0
class GamePlayer
{
var control, lastKey;
function GamePlayer () {
initialize();
}
function initialize() {
Key.addListener(this);
}
function destroy() {
Key.removeListener(this);
}
function setControl(obj) {
control.deactivate();
control.active = false;
control = obj;
obj.controller = this;
obj.active = true;
obj.activate();
}
function shiftScore(value) {
score = score + value;
}
function collectEgg(obj) {
cEggs++;
trace("Egg collected, cEggs:" + cEggs);
if (cEggs == nEggReq) {
with (SSInterface.target.mcGetEggs) {
_visible = true;
play();
}
}
}
function updateTime(elapsed) {
cTimer = cTimer - elapsed;
parseTime();
}
function parseTime() {
var seconds = String(Math.floor(cTimer % 60));
if (seconds.length == 1) {
seconds = "0" + seconds;
}
var minutes = Math.floor(cTimer / 60);
sTime = (minutes + ":") + seconds;
}
function newLevelReset() {
cEggs = 0;
cTimer = nCurrTimeLimit;
sTime = "";
control.health = 1;
health = 1;
}
function update(elapsed) {
control.update(elapsed);
clearKeys();
}
function onKeyDown() {
if (lastKey == ((lastKey = Key.getCode()))) {
return(undefined);
}
switch (lastKey) {
case 37 :
left = true;
return;
case 38 :
up = true;
return;
case 39 :
right = true;
return;
case 40 :
down = true;
return;
case 32 :
jump = true;
return;
case 68 :
action = true;
}
}
function onKeyUp() {
switch (Key.getCode()) {
case 37 :
left = false;
break;
case 38 :
up = false;
break;
case 39 :
right = false;
break;
case 40 :
down = false;
}
lastKey = 0;
}
function clearKeys() {
jump = false;
action = false;
}
var score = 0;
var tempScore = 0;
var bonus = 0;
var timeBonus = 10;
var health = 1;
var lives = 3;
var shield = 0;
var fuel = 0;
var cEggs = 0;
var nEggReq = 10;
var nTimeLimit = 240;
var nLowerLimit = 120;
var nCurrTimeLimit = 0;
var nTimeDecrement = 30;
var cTimer = 0;
var sTime = "";
var left = false;
var right = false;
var up = false;
var down = false;
var jump = false;
var action = false;
}
Symbol 443 MovieClip [__Packages.SSParticle] Frame 0
class SSParticle extends SSObject
{
var assetID, lifeSpan, life, velocity, world, addToScene, target, getUpdates, z, moveBy;
function SSParticle (asset, life, velocity, rot, grav) {
super();
assetID = asset;
lifeSpan = (this.life = life);
this.velocity = (velocity ? (velocity) : (new Vector()));
if (rot != null) {
spin = rot;
}
if (grav != null) {
gravity = grav;
}
}
function onRemoveFromScene() {
world.removeObject(this);
}
function onAddToWorld() {
addToScene();
}
function onAddToScene() {
if (!target) {
world.removeObject(this);
return(undefined);
}
getUpdates();
}
function onAddTarget() {
if (alpha) {
target._alpha = startAlpha;
}
}
function update(elapsed) {
if ((((life = life - elapsed)) < 0) || (z < (world.viewport.z + 50))) {
target.swapDepths(0);
target.removeMovieClip();
world.removeObject(this);
return(undefined);
}
velocity.y = velocity.y + (gravity * elapsed);
moveBy(velocity.x * elapsed, velocity.y * elapsed, velocity.z * elapsed);
}
function onDisplay(viewport, elapsed) {
var r = (life / lifeSpan);
if (alpha) {
target._alpha = r * 100;
}
if (spin) {
target._rotation = target._rotation + (spin * elapsed);
}
if (scale) {
target._xscale = (target._yscale = target._xscale + (((1 - r) * scale) * (target._xscale / 100)));
}
}
var trackInSectorGrid = false;
var rogueNode = true;
var gravity = 0;
var spin = 0;
var alpha = true;
var scale = 0;
var startAlpha = 100;
}
Symbol 444 MovieClip [__Packages.Explosive] Frame 0
class Explosive extends SSObject
{
var inScene, x, y, world, removeFromScene;
function Explosive (damage, strength, regenerate, camDelay, particle) {
super();
if (damage) {
value = damage;
}
if (strength) {
this.strength = strength;
}
if (regenerate) {
reappear = regenerate;
}
if (camDelay) {
camStallTime = camDelay;
}
if (particle.length) {
this.particle = particle;
}
}
function onCollision(obj) {
if (!inScene) {
return(undefined);
}
var v;
((v = new Vector(obj.x - x, obj.y - y, 0))).normalize();
obj.shiftHealth(value, this);
GameSound.playSound(soundID);
obj.velocity.x = v.x * strength;
obj.velocity.y = (v.y * strength) + 100;
obj.motionTime = 0.0001;
obj.emitParticle(particle, 4);
world.viewport.stall(camStallTime);
world.viewport.shakeCamera(0.1, 8);
if (reappear) {
removeFromScene();
} else {
world.removeObject(this);
}
return(GDK.Node.COLLISION_CANCEL);
}
var classID = SSGlobal.CLSID_OBJECT;
var collisionMask = SSGlobal.CLSID_SHAPE;
var camStallTime = 0.5;
var value = -0.5;
var strength = 1500;
var reappear = false;
var particle = "Smoke";
var assetID = "Explosive";
var soundID = "Bomb";
var editor_isItem = true;
var editor_name = "Explosive";
var editor_args_names = ["damage", "strength", "reappear", "camDelay", "particle"];
var editor_args_values = [Explosive.prototype.value, Explosive.prototype.strength, Explosive.prototype.reappear, Explosive.prototype.camStallTime, Explosive.prototype.particle];
var editor_args_types = ["number", "number", "boolean", "number", "string"];
var editor_args_options = [[-1, 1, 0.01], [20, 10000, 20], null, [0, 1, 0.01], "A-Za-z0-9"];
var editor_args_descriptions = ["", "", "", "", ""];
var editor_args_mode = [0, 0, 0, 0, 0];
var editor_args_component = ["NumericStepper", "NumericStepper", "CheckBox", "NumericStepper", "TextInput"];
}
Symbol 445 MovieClip [__Packages.Checkpoint] Frame 0
class Checkpoint extends SSObject
{
var world, zone, x, y, z, target, angle;
function Checkpoint (id, visible) {
super();
if (id) {
checkpointID = id;
}
}
function onAddToWorld() {
world.addObject((zone = new SSZone(SSZone.SPHERE, 20, zone_onCollide, this)));
zone.moveBy(x, y, z);
}
function zone_onCollide(obj) {
trace("CHECK POINT!");
setCollected(obj);
}
function onAddDisplay() {
if (collected) {
target.gotoAndStop(target._totalframes);
} else {
target.gotoAndStop(1);
}
}
function setCollected(obj) {
if (collected) {
return(undefined);
}
obj.setRestorePoint(this);
collected = true;
target.play();
}
function editor_onDisplay(target, external) {
if ((assetID == null) || (assetID == "")) {
trace("NO ASSET, DRAW IN");
target.clear();
target.lineStyle(0, 4482764);
target.beginFill(13395524, 40);
target.lineTo(-25, -25);
target.lineTo(25, -25);
target.lineTo(25, 25);
target.lineTo(-25, 25);
target.endFill();
target.lineTo(25, 25);
target.moveTo(-25, 25);
target.lineTo(25, -25);
} else {
target._rotation = angle;
}
}
var classID = SSGlobal.CLSID_CHECKPOINT;
var assetID = null;
var soundID = "Checkpoint";
var checkpointID = 0;
var depthLayer = 1;
var collected = false;
var editor_isItem = true;
var editor_name = "Checkpoint";
var editor_args_names = ["id"];
var editor_args_values = [Checkpoint.prototype.checkpointID];
var editor_args_types = ["number"];
var editor_args_options = [[0, 1000, 1]];
var editor_args_descriptions = [""];
var editor_args_mode = [0];
var editor_args_component = ["NumericStepper"];
var editor_canChangeFrame = false;
}
Symbol 446 MovieClip [__Packages.CommandBox] Frame 0
class CommandBox extends SSZone
{
var init, width, height;
function CommandBox (w, h, command) {
super();
if (w) {
localRight = w;
}
if (h) {
localBottom = h;
}
if (command != null) {
this.command = command;
}
init(SSZone.RECT, new Vector(localRight, localBottom, 0));
}
function onCollision(obj) {
return(obj.doCommand(this, command));
}
function onAddDisplay() {
}
function editor_onCreateDisplay(target, external) {
}
function editor_onDisplay(target, external) {
trace("DRAW CREATED");
target.createTextField("t", 20, 0, 0, 100, 48);
var tf = target.t;
var tff = tf.getNewTextFormat();
tff.size = 20;
tff.color = 16777215 /* 0xFFFFFF */;
tff.font = "_sans";
tf.setNewTextFormat(tff);
tf.selectable = false;
tf.text = "Command:\n" + command;
target.clear();
target.lineStyle(0, 16742348);
target.beginFill(16742348, 80);
target.lineTo(width, 0);
target.lineTo(width, height);
target.lineTo(0, height);
target.lineTo(0, 0);
target.endFill();
}
var classID = SSGlobal.CLSID_ZONE;
var value = -1;
var localRight = 100;
var localBottom = 100;
var command = "LoseLife";
var editor_isItem = true;
var editor_name = "CommandBox";
var editor_args_names = ["width", "height", "command"];
var editor_args_values = [CommandBox.prototype.localRight, CommandBox.prototype.localBottom, CommandBox.prototype.command];
var editor_args_types = ["number", "number", "string"];
var editor_args_options = [[100, 4000, 10], [100, 4000, 10], "A-Za-z"];
var editor_args_descriptions = ["", "", ""];
var editor_args_mode = [0, 0, 0];
var editor_args_component = ["NumericStepper", "NumericStepper", "TextInput"];
var editor_canChangeFrame = false;
}
Symbol 447 MovieClip [__Packages.DirectionArrow] Frame 0
class DirectionArrow extends SSObject
{
var target;
function DirectionArrow (angle, pointAngle) {
super();
if (angle) {
this.angle = angle;
}
if (pointAngle) {
this.pointAngle = pointAngle;
}
}
function onAddDisplay() {
target.a._rotation = (-((target._rotation = angle))) + pointAngle;
}
var assetID = "Arrow";
var angle = 0;
var pointAngle = 0;
var editor_isItem = true;
var editor_name = "Arrow";
var editor_args_names = ["angle", "pointAngle"];
var editor_args_values = [DirectionArrow.prototype.angle, DirectionArrow.prototype.pointAngle];
var editor_args_types = ["number", "number"];
var editor_args_options = [[-360, 360, 1], [-360, 360, 1]];
var editor_args_descriptions = ["", ""];
var editor_args_mode = [0, 0];
var editor_args_component = ["NumericStepper", "NumericStepper"];
var editor_canChangeFrame = false;
function editor_onDisplay(target) {
target.a._rotation = (-((target._rotation = angle))) + pointAngle;
}
}
Symbol 448 MovieClip [__Packages.GameElement] Frame 0
class GameElement extends SSObject
{
var target, assetID;
function GameElement (angle, scale) {
super();
if (angle && (angle != "")) {
this.angle = angle;
}
if (scale && (scale != "")) {
this.scale = scale;
}
}
function onAddDisplay() {
target._rotation = angle;
}
function editor_onDisplay(target, external) {
if ((assetID == null) || (assetID == "")) {
trace("NO ASSET, DRAW IN");
target.clear();
target.lineStyle(0, 4482764);
target.beginFill(4482764, 40);
target.lineTo(-25, -25);
target.lineTo(25, -25);
target.lineTo(25, 25);
target.lineTo(-25, 25);
target.endFill();
target.lineTo(25, 25);
target.moveTo(-25, 25);
target.lineTo(25, -25);
} else {
target._rotation = angle;
}
}
var depthLayer = 1;
var radius = 200;
var angle = 0;
var scale = 100;
var editor_isItem = true;
var editor_name = "Element";
var editor_args_names = ["angle"];
var editor_args_values = [0, 1200];
var editor_args_types = ["number"];
var editor_args_options = [[-360, 360, 1]];
var editor_args_descriptions = [""];
var editor_args_mode = [0];
var editor_args_component = ["NumericStepper"];
}
Symbol 449 MovieClip [__Packages.Spikes] Frame 0
class Spikes extends SSObject
{
var x;
function Spikes (value) {
super();
if (value != null) {
this.value = value;
}
}
function onCollision(obj) {
if (!obj.dead) {
if (!obj.immune) {
var d;
((d = new Vector(((obj.x < x) ? -1 : 1), -2, 0))).normalize();
obj.velocity.x = d.x * strength;
obj.velocity.y = d.y * strength;
} else if (obj.dispState != 1) {
obj.velocity.y = -Math.abs(obj.velocity.y);
if (Math.abs(obj.velocity.x) < 10) {
obj.velocity.x = -10;
} else {
obj.velocity.x = obj.velocity.x * 1.2;
}
} else {
var d;
((d = new Vector(((obj.x < x) ? -1 : 1), -2, 0))).normalize();
obj.velocity.x = d.x * strength;
obj.velocity.y = d.y * strength;
}
GameSound.playSound(soundID);
obj.shiftHealth(value);
return(GDK.Node.COLLISION_CANCEL);
}
}
var assetID = "spikes";
var soundID = "spikes";
var value = -0.2;
var radius = 20;
var classID = SSGlobal.CLSID_OBJECT;
var collisionMask = SSGlobal.CLSID_SHAPE;
var strength = 250;
var editor_isItem = true;
var editor_name = "Spikes";
var editor_canRotate = true;
var editor_args_names = ["value"];
var editor_args_values = [0];
var editor_args_types = ["number"];
var editor_args_options = [[-1, 1, 0.01]];
var editor_args_descriptions = [""];
var editor_args_mode = [0];
var editor_args_component = ["NumericStepper"];
}
Symbol 450 MovieClip [__Packages.GameLife] Frame 0
class GameLife extends GameCollectable
{
var world;
function GameLife (value) {
super();
if (value != null) {
this.value = value;
}
}
function setCollected(obj) {
obj.lives = obj.lives + value;
GameSound.playSound(soundID);
world.removeObject(this);
}
var value = 1;
var assetID = "ExtraLife";
var soundID = "ExtraLife";
var editor_isItem = true;
var editor_name = "Life";
var editor_args_names = ["value"];
var editor_args_values = [GameLife.prototype.value];
var editor_args_types = ["number"];
var editor_args_options = [[0, 100, 1]];
var editor_args_descriptions = [""];
var editor_args_mode = [0];
var editor_args_component = ["NumericStepper"];
}
Symbol 451 MovieClip [__Packages.GameVehicle] Frame 0
class GameVehicle extends GameCharacter
{
var owner, velocity, controller, originX, x, originY, y, world, keepInScene, shield, immune, immuneAtStart, setAnimationState, health, target, onShieldEnd, moveTo, dispCanTurn, dispAxis, directionX, dispTurn, contactSurface, dispStateChanged, dispTurnTime, dispFrame, dispTurnFrames, initColor, buildAnimationData;
function GameVehicle () {
super();
}
function onCollision(obj) {
if (canTake && (obj.classID == SSGlobal.CLSID_MAINCHAR)) {
if (obj.jumpTime) {
return(undefined);
}
owner = obj;
obj.controller.setControl(this);
velocity.x = obj.velocity.x * 0.5;
velocity.y = obj.velocity.y * 0.5;
}
}
function shiftFuel(v) {
controller.fuel = (fuel = Math.min(1, fuel + v));
}
function onAddToWorld() {
originX = x;
originY = y;
}
function activate() {
canTake = false;
fuel = 1;
var a;
var i = ((a = world.collections.fuel)).length;
trace("FUEL:" + a);
while ((--i) > -1) {
a[i].setActive(true);
}
keepInScene = true;
trace("ACTIVATE " + owner.shield);
shield = owner.shield;
owner.onShieldEnd();
immune = immuneAtStart;
setAnimationState(1);
world.viewport.setWatch(this);
controller.fuel = fuel;
health = controller.health;
}
function deactivate() {
setAnimationState(0);
owner.moveTo(x, y, 0);
target._visible = true;
owner.shield = shield;
onShieldEnd();
owner.velocity.x = velocity.x * 0.5;
owner.velocity.y = (velocity.y * 0.5) - 300;
keepInScene = false;
var a;
var i = ((a = world.collections.fuel)).length;
while ((--i) > -1) {
a[i].setActive(false);
}
var o = new SSParticle(assetID, 4, new Vector(velocity.x * 0.75, velocity.y * 0.75, -160), ((velocity.x < 0) ? -45 : 45), 600);
o.alpha = false;
o.x = x;
o.y = y;
world.addObject(o);
o.target.a._xscale = o.target.a._xscale * ((velocity.x < 0) ? -1 : 1);
moveTo(originX, originY, 0);
canTake = true;
}
function onUpdate(elapsed) {
fuel = (controller.fuel = Math.max(Math.min(fuel - (elapsed * fuelBurnRate), 1), 0));
if ((!fuel) || (controller.action)) {
controller.setControl(owner);
}
}
function hurt() {
}
function updateDisplay(elapsed, vX, vY, kJump) {
if ((dispCanTurn && (vX)) && (vX != dispAxis)) {
directionX = (dispTurn = vX);
}
if (contactSurface && ((contactSurface.props & 3) == 3)) {
target._rotation = (Math.atan2(contactSurface.normal.x, -contactSurface.normal.y) / Math.PI) * 180;
} else {
target._rotation = target._rotation + ((((((Math.atan2(velocity.y, velocity.x * dispAxis) / Math.PI) * 45) * dispAxis) - target._rotation) * elapsed) * 2);
}
var s = ((velocity.__get__length() * elapsed) * 2);
target.a.mc.frontRim._rotation = (target.a.mc.rearRim._rotation = target.a.mc.rearRim._rotation + s);
if (dispStateChanged || (dispTurn)) {
if (dispTurn) {
if (dispTurn > 0) {
if (((dispAxis = Math.min(1, (dispAxis = dispAxis + ((elapsed * 2) / dispTurnTime))))) == 1) {
dispTurn = 0;
}
} else if (((dispAxis = Math.max(-1, (dispAxis = dispAxis - ((elapsed * 2) / dispTurnTime))))) == -1) {
dispTurn = 0;
}
}
dispFrame = (dispTurnFrames + Math.round(dispAxis * dispTurnFrames)) + 1;
target.a.gotoAndStop(dispFrame);
}
dispStateChanged = false;
}
function onAddDisplay() {
initColor();
target.gotoAndStop(1);
buildAnimationData();
}
function setDead(obj) {
owner.health = (controller.health = 0.01);
controller.setControl(owner);
owner.velocity.x = velocity.x;
owner.velocity.y = velocity.y - 800;
}
function endLevel(obj) {
controller.setControl(owner);
owner.velocity.x = velocity.x * 0.5;
owner.velocity.y = velocity.y * 0.5;
owner.endLevel(obj);
}
var classID = SSGlobal.CLSID_VEHICLE;
var assetID = "ATV";
var canTake = true;
var maxWalkForce = 2000;
var animationLabels = ["static", "idle"];
var canCarry = false;
var canClimb = false;
var canSwing = false;
var canLockDisplayState = false;
var fuel = 1;
var fuelBurnRate = 0.1;
var editor_isItem = true;
var editor_name = "ATV";
}
Symbol 452 MovieClip [__Packages.WalkingObject] Frame 0
class WalkingObject extends SSObject
{
var getUpdates, exitedSceneAt, world, cancelUpdates, currentAnimation, velocity, contact, target, radius, moveBy, angle, checkCollisions, motionDir, x, y;
function WalkingObject (nHealthValue, bWalkLeft, nWalkTime, nSpeed) {
super();
if (nHealthValue != null) {
healthValue = nHealthValue;
}
if (bWalkLeft != null) {
walkLeft = bWalkLeft;
}
if (nWalkTime != null) {
walkTime = nWalkTime;
}
if (nSpeed != null) {
speed = nSpeed;
}
}
function onAddToScene() {
getUpdates();
if (immobilized) {
immobilized = Math.max(immobilized - (world.time - exitedSceneAt), 0);
}
}
function onRemoveFromScene() {
cancelUpdates();
exitedSceneAt = world.time;
}
function onAddDisplay() {
if (!immobilized) {
resetAnimation();
} else {
gotoAndStop(currentAnimation);
}
}
function immobilize() {
velocity.y = -300;
velocity.x = 0;
contact = null;
setAnimation("Immobile" + (walkLeft ? "Left" : "Right"));
immobilized = immobilizeTime;
}
function setAnimation(anim) {
target.gotoAndStop((currentAnimation = anim));
}
function resetAnimation() {
setAnimation("Walk" + (walkLeft ? "Left" : "Right"));
}
function onCollision(obj) {
if ((obj.classID & 4294901760) == SSGlobal.CLSID_MAINCHAR) {
if (immobilized) {
return(undefined);
}
if ((obj.classID == SSGlobal.CLSID_VEHICLE) || (obj.shield)) {
if (obj.active) {
immobilize();
}
return(undefined);
}
if (!obj.active) {
return(undefined);
}
if (!obj.immune) {
var d;
obj.shiftHealth(healthValue, this);
GameSound.playSound(soundID);
}
return(true);
}
}
function checkIfOnEdge(e) {
var pO = e.a;
var pN = e.normal;
var rV = contact.direction;
var rO = this;
var d = ((((pN.x * (rO.x - (pN.x * radius))) + (pN.y * (rO.y - (pN.y * radius)))) - ((pN.x * (pO.x + contact.shape.x)) + (pN.y * (pO.y + contact.shape.y)))) / (-((pN.x * rV.x) + (pN.y * rV.y))));
if ((d * (walkLeft ? -1 : 1)) < (((e.props & 3) == 3) ? 0 : (radius * 2))) {
if ((e.props & 3) == 3) {
var l = Math.abs(d);
moveBy(l * rV.x, l * rV.y, 0);
contact = e;
} else {
flip();
}
target._rotation = (angle = (Math.atan2(contact.normal.x, -contact.normal.y) / Math.PI) * 180);
}
}
function flip() {
walkLeft = !walkLeft;
resetAnimation();
}
function update(elapsed) {
if (immobilized) {
if (!((immobilized = Math.max(0, immobilized - elapsed)))) {
contact = null;
velocity.y = -200;
setAnimation("restore" + (walkLeft ? "Left" : "Right"));
}
}
if (contact) {
cWalkTime = cWalkTime + elapsed;
if (cWalkTime >= walkTime) {
cWalkTime = 0;
flip();
}
if (immobilized) {
velocity.x = (velocity.y = 0);
} else {
velocity.x = (contact.direction.x * speed) * (walkLeft ? -1 : 1);
velocity.y = (contact.direction.y * speed) * (walkLeft ? -1 : 1);
}
checkIfOnEdge((walkLeft ? (contact.previous) : (contact.next)));
} else {
velocity.y = velocity.y + (gravity * elapsed);
}
collision = false;
checkCollisions(elapsed);
if (!collision) {
moveBy(velocity.x * elapsed, velocity.y * elapsed, 0);
}
}
function setContact(edge) {
contact = edge;
}
function checkCollision(obj) {
var o;
switch (obj.classID & 4294901760) {
case SSGlobal.CLSID_SHAPE :
if ((!contact) && ((o = SSCollision.sweepSphereToStaticShape(this, obj)))) {
var speed = velocity.__get__length();
var dp = motionDir.dot(o.normal);
setContact(o.edge);
x = o.point.x;
y = o.point.y;
collision = true;
}
return;
case SSGlobal.CLSID_MAINCHAR :
if (!SSCollision.sweepSphereToSphere(this, obj, true)) {
break;
}
return(onCollision(obj));
}
}
var walkLeft = true;
var walkTime = 3;
var healthValue = -0.2;
var speed = 50;
var soundID = "spikes";
var classID = SSGlobal.CLSID_MOBILEOBJECT;
var collisionMask = SSGlobal.CLSID_SHAPE | SSGlobal.CLSID_MAINCHAR;
var assetID = "WalkingObject";
var gravity = SSGlobal.GRAVITY;
var immobilized = 0;
var immobilizeTime = 5;
var strength = 250;
var maxWalkableAngle = 0.4;
var cWalkTime = 0;
var collision = false;
var editor_isItem = true;
var editor_name = "WalkingObject";
var editor_args_names = ["healthValue", "walkLeft", "walkTime", "speed"];
var editor_args_values = [WalkingObject.prototype.healthValue, WalkingObject.prototype.walkLeft, WalkingObject.prototype.walkTime, WalkingObject.prototype.speed];
var editor_args_types = ["number", "boolean", "number", "number"];
var editor_args_options = [[-1, 1, 0.01], null, [0, 999, 1], [0, 999, 10]];
var editor_args_descriptions = ["", "", "", ""];
var editor_args_mode = [0, 0, 0, 0];
var editor_args_component = ["NumericStepper", "CheckBox", "NumericStepper", "NumericStepper"];
}
Symbol 453 MovieClip [__Packages.FlyingObject] Frame 0
class FlyingObject extends SSObject
{
var getUpdates, cancelUpdates;
function FlyingObject () {
super();
}
function onAddToWorld() {
}
function onAddToScene() {
getUpdates();
}
function onRemoveFromScene() {
cancelUpdates();
}
function update(elapsed) {
}
var assetID = "FlyingObject";
var editor_isItem = true;
var editor_name = "FlyingObject";
}
Symbol 454 MovieClip [__Packages.RopeObject] Frame 0
class RopeObject extends CommandBox
{
var localBottom, init, target, width, height;
function RopeObject (h) {
super();
if (h) {
localBottom = h;
}
init(SSZone.RECT, new Vector(localRight, localBottom, 0));
}
function onAddDisplay() {
target.lineStyle(4, 0);
target.moveTo(11, 0);
target.lineTo(11, localBottom);
}
function editor_onDisplay(target, external) {
trace("DRAW CREATED");
target.createTextField("t", 20, 0, 0, 100, 48);
var tf = target.t;
var tff = tf.getNewTextFormat();
tff.size = 20;
tff.color = 16777215 /* 0xFFFFFF */;
tff.font = "_sans";
tf.setNewTextFormat(tff);
tf.selectable = false;
tf.text = "Command:\n" + command;
target.clear();
target.lineStyle(0, 16742348, 100);
target.beginFill(16742348, 80);
target.lineTo(width, 0);
target.lineTo(width, height);
target.lineTo(0, height);
target.lineTo(0, 0);
target.endFill();
}
var exitTime = 0;
var assetID = null;
var localRight = 20;
var command = "climb";
var editor_isItem = true;
var editor_name = "Rope";
var editor_args_names = ["height"];
var editor_args_values = [CommandBox.prototype.localBottom];
var editor_args_types = ["number"];
var editor_args_options = [[100, 4000, 10]];
var editor_args_descriptions = [""];
var editor_args_mode = [0];
var editor_args_component = ["NumericStepper"];
var editor_canChangeFrame = false;
var editor_canChangeAsset = false;
}
Symbol 455 MovieClip [__Packages.GameContainer] Frame 0
class GameContainer extends SSObject
{
var contents, x, y, velocity, checkCollisions, moveBy, motionTime, inMotion, cancelUpdates, world;
function GameContainer (contents) {
super();
this.contents = contents;
trace(["CONTAINER", arguments]);
}
function onCollision(obj) {
if (obj.classID == SSGlobal.CLSID_VEHICLE) {
shatter();
return(undefined);
}
if (beingCarried) {
return(undefined);
}
obj.lastContainer = this;
trace("CONTAINER COLLISION");
}
function updatePosition(elapsed) {
var oX = x;
var oY = y;
velocity.y = velocity.y + (SSGlobal.GRAVITY * elapsed);
checkCollisions(elapsed);
moveBy(velocity.x * motionTime, velocity.y * motionTime, 0);
if ((Math.abs(oX - x) < 0.5) && (Math.abs(oY - y) < 0.5)) {
x = oX;
y = oY;
if (((inMotion = inMotion - elapsed)) <= 0) {
cancelUpdates();
velocity.loc(0, 0, 0);
}
}
}
function checkCollision(obj) {
var o;
switch (obj.classID & 4294901760) {
case SSGlobal.CLSID_SHAPE :
if ((o = SSCollision.sweepSphereToStaticShape(this, obj))) {
shatter();
}
return;
default :
if (!SSCollision.sweepSphereToSphere(this, obj, true)) {
break;
}
trace(obj.classID);
shatter(obj);
obj.immobilize();
}
}
function shatter() {
trace("SHATTER ");
world.removeObject(this);
}
var classID = SSGlobal.CLSID_CONTAINER;
var collisionMask = (SSGlobal.CLSID_SHAPE | SSGlobal.CLSID_MOBILEOBJECT) | SSGlobal.CLSID_OBJECT;
var assetID = "Vase";
var beingCarried = false;
var editor_isItem = true;
var editor_name = "Vase";
var editor_args_names = ["contents"];
var editor_args_values = [((GameContainer.prototype.contents != null) ? (GameContainer.prototype.contents) : "")];
var editor_args_types = ["string"];
var editor_args_options = ["A-Za-z"];
var editor_args_descriptions = [""];
var editor_args_mode = [0];
var editor_args_component = ["TextInput"];
}
Symbol 456 MovieClip [__Packages.GameBigPoint] Frame 0
class GameBigPoint extends GamePoint
{
function GameBigPoint () {
super();
}
var value = 10;
var assetID = "grape";
var editor_isItem = true;
var editor_name = "BigPoint";
}
Symbol 457 MovieClip [__Packages.GameHealthBig] Frame 0
class GameHealthBig extends GameHealth
{
function GameHealthBig () {
super();
}
var assetID = "BigHealth";
var value = 1;
var editor_name = "HealthFull";
}
Symbol 458 MovieClip [__Packages.RollingObject] Frame 0
class RollingObject extends SSObject
{
var originX, x, originY, y, act2, velocity, getUpdates, cancelUpdates, moveTo, checkCollisions, moveBy, motionTime, radius, inScene, world, removeFromScene;
function RollingObject () {
super();
}
function onAddToWorld() {
originX = x;
originY = y;
}
function onAddToScene() {
trace("Log Added");
act2 = activationDist * activationDist;
velocity.x = (velocity.y = 0);
getUpdates();
}
function onRemoveFromScene() {
trace("Log Removed");
cancelUpdates();
active = false;
moveTo(originX, originY, 0);
contact = null;
}
function update(elapsed) {
if (active) {
if (!contact) {
}
velocity.y = velocity.y + (gravity * elapsed);
collision = false;
checkCollisions(elapsed);
moveBy(velocity.x * elapsed, velocity.y * elapsed, 0);
}
}
function setContact(edge) {
contact = edge;
}
function checkCollision(obj) {
var o;
trace("Rolling obj");
switch (obj.classID & 4294901760) {
case SSGlobal.CLSID_SHAPE :
if ((!contact) && ((o = SSCollision.sweepSphereToStaticShape(this, obj)))) {
var speed = velocity.__get__length();
var dp = ((o.normal.x * velocity.x) + (o.normal.y * velocity.y));
var vnX = (dp * o.normal.x);
var vnY = (dp * o.normal.y);
var vtX = (velocity.x - vnX);
var vtY = (velocity.y - vnY);
var b;
if (!((b = o.edge.attributes.bounciness))) {
b = 0;
}
velocity.x = vtX - (b * vnX);
velocity.y = vtY - (b * vnY);
var rt = (motionTime - o.time);
moveTo((o.point.x + (o.edge.normal.x * 1)) + (velocity.x * rt), (o.point.y + (o.edge.normal.y * 1)) + (velocity.y * rt), 0);
collision = true;
}
return;
case SSGlobal.CLSID_MAINCHAR :
if (active) {
if (SSCollision.sweepSphereToSphere(this, obj, true)) {
return(onCollision(obj));
}
} else {
var totalRadii = (radius + obj.radius);
var nDistX = (obj.x - x);
var nDistY = (obj.y - y);
var totalDist = ((nDistX * nDistX) + (nDistY * nDistY));
_root.nDebug1 = Math.sqrt(totalDist);
if (totalDist > act2) {
break;
}
}
}
}
function onCollision(obj) {
if (!inScene) {
return(undefined);
}
if (obj.active && ((obj.classID & 4294901760) == SSGlobal.CLSID_MAINCHAR)) {
obj.shiftHealth(healthValue, this);
var o = new SSParticle(assetID, 4, new Vector(obj.velocity.x * 0.5, velocity.y * 0.5, -300), 45, SSGlobal.GRAVITY);
o.alpha = false;
o.x = x;
o.y = y;
world.addObject(o);
removeFromScene();
}
trace("CHAR COLLIDE");
}
var classID = SSGlobal.CLSID_MOBILEOBJECT;
var collisionMask = SSGlobal.CLSID_SHAPE | SSGlobal.CLSID_MAINCHAR;
var assetID = "Log";
var healthValue = -0.1;
var minVelocity = 0;
var gravity = SSGlobal.GRAVITY;
var contact = false;
var active = false;
var activationDist = 100;
var collision = false;
var editor_isItem = true;
var editor_name = "RollingObject";
var editor_args_names = ["healthValue"];
var editor_args_values = [RollingObject.prototype.healthValue];
var editor_args_types = ["number"];
var editor_args_options = [[-1, 1, 0.01]];
var editor_args_descriptions = [""];
var editor_args_mode = [0];
var editor_args_component = ["NumericStepper"];
}
Symbol 459 MovieClip [__Packages.BouncingObject] Frame 0
class BouncingObject extends SSObject
{
var gravity, originX, x, originY, y, target, velocity, getUpdates, cancelUpdates, moveTo, contact, checkCollisions, moveBy, inScene;
function BouncingObject (nHealthValue, nJumpStrength, nGravMod) {
super();
trace((("Bouncing enemy created, healthValue = " + nHealthValue) + ", jumpStrength = ") + nJumpStrength);
if (nHealthValue != null) {
healthValue = nHealthValue;
}
if (nJumpStrength != null) {
jumpStrength = nJumpStrength;
}
if (nGravMod != null) {
gravMod = nGravMod;
}
gravity = SSGlobal.GRAVITY * gravMod;
}
function onAddToWorld() {
originX = x;
originY = y;
}
function onAddToScene() {
target.gotoAndStop(currentAnimation);
velocity.x = (velocity.y = 0);
getUpdates();
}
function onRemoveFromScene() {
trace("Log Removed");
cancelUpdates();
moveTo(originX, originY, 0);
contact = null;
}
function update(elapsed) {
if (immobilized) {
if (!((immobilized = Math.max(immobilized - elapsed, 0)))) {
trace("END IMMOBILIZATION");
setAnimation("restore");
}
}
if (!contact) {
velocity.y = velocity.y + (gravity * elapsed);
collision = false;
checkCollisions(elapsed);
moveBy(velocity.x * elapsed, velocity.y * elapsed, 0);
} else if ((!immobilized) && (((contactTime = Math.max(contactTime - elapsed, 0))) == 0)) {
velocity.y = -jumpStrength;
setAnimation("jump");
contact = null;
}
}
function setContact(edge) {
contact = edge;
contactTime = contactTimeAllow;
}
function checkCollision(obj) {
var o;
switch (obj.classID & 4294901760) {
case SSGlobal.CLSID_SHAPE :
if ((!contact) && ((o = SSCollision.sweepSphereToStaticShape(this, obj)))) {
var speed = velocity.__get__length();
if (!immobilized) {
setAnimation("still");
}
var down = new Vector(0, 1, 0);
if (o.edge.normal.dot(down) < 0) {
setContact(o.edge);
velocity.x = 0;
velocity.y = 0;
}
moveTo(o.point.x, o.point.y, 0);
collision = true;
}
return;
case SSGlobal.CLSID_MAINCHAR :
if (!SSCollision.sweepSphereToSphere(this, obj, true)) {
break;
}
return(onCollision(obj));
}
}
function immobilize() {
velocity.y = -100;
velocity.x = 0;
contact = null;
setAnimation("Immobile");
immobilized = immobilizeTime;
}
function setAnimation(anim) {
target.gotoAndStop((currentAnimation = anim));
}
function onCollision(obj) {
if ((!inScene) || (immobilized)) {
return(undefined);
}
if (obj.active && ((obj.classID & 4294901760) == SSGlobal.CLSID_MAINCHAR)) {
if (!immobilized) {
GameSound.playSound(soundID);
obj.shiftHealth(healthValue, this);
}
}
}
var healthValue = -0.2;
var jumpStrength = 300;
var gravMod = 0.5;
var radius = 20;
var soundID = "spikes";
var assetID = "BouncingObject";
var classID = SSGlobal.CLSID_MOBILEOBJECT;
var collisionMask = SSGlobal.CLSID_SHAPE | SSGlobal.CLSID_MAINCHAR;
var vulnerable = false;
var contactTimeAllow = 1;
var contactTime = 0;
var collision = false;
var immobilized = 0;
var immobilizeTime = 5;
var currentAnimation = 1;
var editor_isItem = true;
var editor_name = "BouncingObject";
var editor_args_names = ["healthValue", "jumpStrength", "gravity modifier"];
var editor_args_values = [BouncingObject.prototype.healthValue, BouncingObject.prototype.jumpStrength, BouncingObject.prototype.gravMod];
var editor_args_types = ["number", "number", "number"];
var editor_args_options = [[-1, 1, 0.01], [0, 600, 50], [0, 1, 0.1]];
var editor_args_descriptions = ["", "", ""];
var editor_args_mode = [0, 0, 0];
var editor_args_component = ["NumericStepper", "NumericStepper", "NumericStepper"];
}
Symbol 460 MovieClip [__Packages.GameFuel] Frame 0
class GameFuel extends GameCollectable
{
var world, target;
function GameFuel () {
super();
}
function onAddToWorld() {
world.addToCollection("fuel", this);
}
function onAddToScene() {
if ((!active) || (collected)) {
target._visible = false;
}
}
function setActive(b) {
trace("ACTIVATE FUEL");
if ((active = b)) {
collected = false;
target._visible = true;
} else {
collected = true;
target._visible = false;
}
}
function setCollected(obj) {
if ((active && (!collected)) && (obj.classID == SSGlobal.CLSID_VEHICLE)) {
obj.shiftFuel(value);
active = false;
collected = true;
target._visible = false;
}
}
var assetID = "Fuel";
var value = 1;
var active = false;
var collected = false;
var editor_isItem = true;
var editor_name = "Fuel";
}
Symbol 461 MovieClip [__Packages.GameSwing] Frame 0
class GameSwing extends SSObject
{
var localLeft, localBottom, localRight, zone, getUpdates, cancelUpdates, world, oax, oay, queueForDisplay, lastElapsed, target, holding, d, x, y, sx, sy;
function GameSwing (totalTime, timeOffset, length, maxAngle) {
super();
trace("SWING " + arguments);
if (totalTime) {
this.totalTime = totalTime;
}
if (timeOffset) {
this.timeOffset = timeOffset;
}
if (length) {
this.length = length;
}
if (maxAngle) {
this.maxAngle = maxAngle;
}
localLeft = -this.length;
localBottom = (localRight = this.length);
maxRad = (maxAngle / 180) * Math.PI;
}
function onAddToWorld() {
zone = new SSZone();
}
function onAddToScene() {
getUpdates();
update(0.0001);
}
function onRemoveFromScene() {
cancelUpdates();
}
function update() {
var ct = ((world.time + timeOffset) % totalTime);
var cr = (((Math.PI * ct) / totalTime) * 2);
var va = ((Math.sin(cr) * Math.PI) * (maxAngle / 180));
ltr = va > ang;
ang = va;
oax = ax;
oay = ay;
ax = ((vx = Math.sin(va))) * length;
ay = ((vy = Math.cos(va))) * length;
queueForDisplay();
}
function onCollision(obj) {
}
function onDisplay(vp, elapsed) {
lastElapsed = elapsed;
target.clear();
target.lineStyle(4, 0);
target.moveTo(0, 0);
if (holding) {
d = holding.swingDist * 0.5;
target.curveTo(vx * d, vy * d, holding.x - x, holding.y - y);
sx = oax - ax;
sy = oay - ay;
var l = Math.sqrt((sx * sx) + (sy * sy));
target.lineTo(ax + ((sx / elapsed) * 0.1), ay + ((sy / elapsed) * 0.1));
} else {
target.curveTo(ax * 0.4, ay * 0.6, ax, ay);
}
}
function editor_onDisplay(target, external) {
trace("DRAW CREATED");
var r = (((90 - maxAngle) / 180) * Math.PI);
var cs = Math.cos(r);
var sn = Math.sin(r);
target.clear();
target.lineStyle(0, 0);
target.beginFill(0, 30);
target.lineTo(cs * length, sn * length);
var step = (((Math.PI/2) - r) * 0.2);
var i = 10;
while ((--i) > -1) {
r = r + step;
target.lineTo(Math.cos(r) * length, Math.sin(r) * length);
}
target.lineTo(0, 0);
target.endFill();
}
var classID = SSGlobal.CLSID_SWING;
var length = 300;
var totalTime = 4;
var timeOffset = 0;
var maxAngle = 60;
var maxRad = 0;
var ax = 0;
var ay = 0;
var vx = 0;
var vy = 0;
var ltr = false;
var ang = 0;
var editor_isItem = true;
var editor_name = "Swing";
var editor_args_names = ["totalTime", "timeOffset", "length", "maxAngle"];
var editor_args_values = [GameSwing.prototype.totalTime, GameSwing.prototype.timeOffset, GameSwing.prototype.length, GameSwing.prototype.maxAngle];
var editor_args_types = ["number", "number", "number", "number"];
var editor_args_options = [[1, 30, 1], [0, 10, 0.1], [100, 800, 50], [10, 90, 5]];
var editor_args_descriptions = ["", "", "", ""];
var editor_args_mode = [0, 0, 0];
var editor_args_component = ["NumericStepper", "NumericStepper", "NumericStepper", "NumericStepper"];
var editor_canChangeFrame = false;
}
Symbol 462 MovieClip [__Packages.VR_HiddenPlatform] Frame 0
class VR_HiddenPlatform extends GameCollectable
{
static var activeObj, activeTime;
var world, target, inScene, getUpdates, keepInScene, cancelUpdates;
function VR_HiddenPlatform (time) {
super();
if (time != null) {
totalTime = time;
}
}
function onAddToWorld() {
world.addToCollection("platforms", this);
}
function onAddDisplay() {
if (collected) {
target._visible = false;
}
}
function reset() {
collected = false;
if (inScene) {
target._visible = true;
}
}
function setCollected(obj) {
if (collected) {
return(undefined);
}
if (!activeObj) {
activeObj = this;
getUpdates();
var a;
var i = ((a = world.collections.VR)).length;
while ((--i) > -1) {
a[i].disabled = false;
a[i].target._visible = true;
}
}
target._visible = false;
collected = true;
activeTime = totalTime;
keepInScene = true;
getUpdates();
}
function update(elapsed) {
activeTime = Math.max(activeTime - elapsed, 0);
if (!activeTime) {
cancelUpdates();
activeObj = null;
keepInScene = false;
var a;
var i = ((a = world.collections.VR)).length;
while ((--i) > -1) {
a[i].disabled = true;
a[i].target._visible = false;
}
i = ((a = world.collections.platforms)).length;
while ((--i) > -1) {
a[i].reset();
}
}
}
var assetID = "PlatformToken";
var collected = false;
var totalTime = 20;
var editor_isItem = true;
var editor_name = "VRHiddenPlatform";
var editor_args_names = ["totalTime"];
var editor_args_values = [VR_HiddenPlatform.prototype.totalTime];
var editor_args_types = ["number"];
var editor_args_options = [[10, 60, 5]];
var editor_args_descriptions = [""];
var editor_args_mode = [0];
var editor_args_component = ["NumericStepper"];
}
Symbol 463 MovieClip [__Packages.VR_EMP] Frame 0
class VR_EMP extends GameCollectable
{
var collected, world;
function VR_EMP () {
super();
}
function setCollected(obj) {
if (collected) {
return(undefined);
}
collected = true;
obj.emp = true;
var a;
var i = ((a = world.activeObjects)).length;
while ((--i) > -1) {
a[i].immobilize();
}
world.removeObject(this);
}
var assetID = "EMP";
var editor_isItem = true;
var editor_name = "VR_EMP";
}
Symbol 464 MovieClip [__Packages.VR_Shield] Frame 0
class VR_Shield extends GameCollectable
{
var collected, world;
function VR_Shield () {
super();
}
function setCollected(obj) {
if (collected) {
return(undefined);
}
obj.shiftShield(value);
world.removeObject(this);
}
var assetID = "Shield";
var value = 30;
var editor_isItem = true;
var editor_name = "VRShield";
}
Symbol 465 MovieClip [__Packages.GameCollectDoody] Frame 0
class GameCollectDoody extends GameCollectable
{
var world;
function GameCollectDoody () {
super();
}
function GamePoint(value) {
if ((typeof(value) != "string") && (value != null)) {
this.value = value;
}
}
function setCollected(obj) {
if (!obj.shiftScore(value)) {
return(undefined);
}
GameSound.playSound(soundID);
obj.collectEgg(this);
world.removeObject(this);
}
var assetID = "Doody";
var soundID = "egg";
var value = 250;
var radius = 8.5;
var editor_isItem = true;
var editor_name = "Doody";
var editor_args_names = ["value"];
var editor_args_values = [GameCollectDoody.prototype.value];
var editor_args_types = ["number"];
var editor_args_options = [[0, 1000, 1]];
var editor_args_descriptions = [""];
var editor_args_mode = [0];
var editor_args_component = ["NumericStepper"];
}
Symbol 466 MovieClip [__Packages.InvincibleBouncingObject] Frame 0
class InvincibleBouncingObject extends SSObject
{
var originX, x, originY, y, target, velocity, getUpdates, cancelUpdates, moveTo, contact, checkCollisions, moveBy, inScene;
function InvincibleBouncingObject () {
super();
}
function onAddToWorld() {
originX = x;
originY = y;
}
function onAddToScene() {
target.gotoAndStop(currentAnimation);
velocity.x = (velocity.y = 0);
getUpdates();
}
function onRemoveFromScene() {
trace("Log Removed");
cancelUpdates();
moveTo(originX, originY, 0);
contact = null;
}
function update(elapsed) {
if (immobilized) {
if (!((immobilized = Math.max(immobilized - elapsed, 0)))) {
trace("END IMMOBILIZATION");
setAnimation("restore");
}
}
if (!contact) {
velocity.y = velocity.y + (gravity * elapsed);
collision = false;
checkCollisions(elapsed);
moveBy(velocity.x * elapsed, velocity.y * elapsed, 0);
} else if ((!immobilized) && (((contactTime = Math.max(contactTime - elapsed, 0))) == 0)) {
velocity.y = -jumpStrength;
setAnimation("jump");
contact = null;
}
}
function setContact(edge) {
contact = edge;
contactTime = contactTimeAllow;
}
function checkCollision(obj) {
var o;
switch (obj.classID & 4294901760) {
case SSGlobal.CLSID_SHAPE :
if ((!contact) && ((o = SSCollision.sweepSphereToStaticShape(this, obj)))) {
var speed = velocity.__get__length();
if (!immobilized) {
setAnimation("still");
}
setContact(o.edge);
velocity.x = 0;
velocity.y = 0;
collision = true;
}
return;
case SSGlobal.CLSID_MAINCHAR :
if (!SSCollision.sweepSphereToSphere(this, obj, true)) {
break;
}
return(onCollision(obj));
}
}
function immobilize() {
velocity.y = -100;
velocity.x = 0;
contact = null;
setAnimation("Immobile");
immobilized = immobilizeTime;
}
function setAnimation(anim) {
target.gotoAndStop((currentAnimation = anim));
}
function onCollision(obj) {
if ((!inScene) || (immobilized)) {
return(undefined);
}
if (obj.active && ((obj.classID & 4294901760) == SSGlobal.CLSID_MAINCHAR)) {
if (!immobilized) {
obj.shiftHealth(healthValue, this);
}
}
}
var assetID = "invincispider";
var healthValue = -0.2;
var classID = SSGlobal.CLSID_MOBILEOBJECT;
var collisionMask = SSGlobal.CLSID_SHAPE | SSGlobal.CLSID_MAINCHAR;
var jumpStrength = 300;
var gravity = SSGlobal.GRAVITY * 1;
var vulnerable = false;
var contactTimeAllow = 1;
var contactTime = 0;
var collision = false;
var immobilized = 0;
var immobilizeTime = 5;
var currentAnimation = 1;
var editor_isItem = true;
var editor_name = "InvincibleBouncingObject";
var editor_args_names = ["healthValue", "jumpStrength"];
var editor_args_values = [InvincibleBouncingObject.prototype.healthValue, InvincibleBouncingObject.prototype.jumpStrength];
var editor_args_types = ["number", "number"];
var editor_args_options = [[-1, 1, 0.01], [0, 1000, 50]];
var editor_args_descriptions = ["", ""];
var editor_args_mode = [0, 0];
var editor_args_component = ["NumericStepper", "NumericStepper"];
}
Symbol 467 MovieClip [__Packages.SSBackground] Frame 0
class SSBackground extends SSObject
{
var tileID, z, pattern, target, oz, depth, calculateDepth, world, leftGrid, rightGrid, topGrid, bottomGrid, tiles;
function SSBackground (tileID, depth, tileWidth, tileHeight, scrollMultiplier) {
super();
if (tileID != null) {
this.tileID = tileID;
}
z = (depth ? (depth) : 20);
if (tileWidth) {
this.tileWidth = tileWidth;
}
if (tileHeight) {
this.tileHeight = tileHeight;
}
this.scrollMultiplier = (scrollMultiplier ? (scrollMultiplier) : 1);
}
function queueForDisplay() {
}
function setPattern(g) {
pattern = g;
}
function onAddDisplay() {
if (stationary) {
trace(tileID);
target.attachMovie(tileID, "bg0", 0);
}
}
function setDisplay(viewport) {
if (oz != ((oz = Math.floor(z - viewport.z)))) {
target.swapDepths((depth = calculateDepth()));
}
if (stationary) {
target._x = -world.target._x;
target._y = -world.target._y;
return(undefined);
}
var nx = Math.floor((-world.target._x) - ((x = ((viewport.wTan * (viewport.x * scrollMultiplier)) / (z - viewport.z)) + offsetX)));
var ny = Math.floor((-world.target._y) - ((y = ((viewport.wTan * (viewport.y * scrollMultiplier)) / (z - viewport.z)) + offsetY)));
target._x = nx;
target._y = ny;
left = x;
right = x + viewport.screenWidth;
top = y;
bottom = y + viewport.screenHeight;
var lc = (leftGrid != ((leftGrid = Math.floor(left / tileWidth))));
var rc = (rightGrid != ((rightGrid = Math.ceil(right / tileWidth))));
var tc = (topGrid != ((topGrid = Math.floor(top / tileHeight))));
var bc = (bottomGrid != ((bottomGrid = Math.ceil(bottom / tileHeight))));
if ((((!lc) && (!rc)) && (!tc)) && (!bc)) {
return(undefined);
}
var i = tiles.length;
while ((--i) > -1) {
tiles[i].removeMovieClip();
}
tiles = [];
var w = (rightGrid - leftGrid);
var i = (w * (bottomGrid - topGrid));
var mc;
var x;
var y;
var f = 1;
while ((--i) > -1) {
x = leftGrid + (i % w);
y = (y = topGrid + Math.floor(i / w));
if (pattern && (!((f = pattern.getCell(x, y))))) {
continue;
}
tiles.push((mc = target.attachMovie(tileID, "t" + i, i)));
mc._x = x * tileWidth;
mc._y = y * tileHeight;
mc.gotoAndStop(f);
}
}
var autoAddToScene = false;
var assetID = null;
var className = "BG";
var left = 0;
var right = 0;
var top = 0;
var bottom = 0;
var scrollMultiplier = 1;
var tileWidth = 300;
var tileHeight = 300;
var stationary = false;
var offsetX = 0;
var offsetY = 0;
}
Symbol 468 MovieClip [__Packages.SSLevel] Frame 0
class SSLevel
{
var worldConstructor, objects, name, preProcess, background, music, processID, onReadXMLComplete, lastTime, intervalID, onComplete;
function SSLevel (x) {
worldConstructor = GameWorld;
objects = [];
switch (typeof(x)) {
case "string" :
name = x;
return;
case "object" :
readXML(x);
}
}
function addObject() {
objects.push(arguments);
}
function readXML(xObj) {
ready = false;
var wn = xObj.firstChild;
var attr = wn.attributes;
name = attr.levelName;
preProcess = eval (attr.preProcess);
background = _global[attr.background];
startNode = attr.startNode;
music = attr.music;
var a;
var i = -1;
var c = ((a = wn.childNodes)).length;
while ((++i) < c) {
if (!(a[i].nodeName === "objects")) {
} else {
readObjects(wn.firstChild);
}
}
readXMLComplete();
}
function readObjects(node) {
var types = node.attributes.types.split(",");
var objData = node.firstChild.nodeValue;
var i = types.length;
while ((--i) > -1) {
types[i] = eval (types[i]);
}
var aObjs = objData.split(SSGlobal.ED_OBJ_DELIMETER);
var objAttrDelim = SSGlobal.ED_OBJ_ATTR_DELIM;
var i = -1;
var c = aObjs.length;
while ((++i) < c) {
var a = aObjs[i].split(objAttrDelim);
var j = a.length;
a[0] = types[a[0]];
while (--j) {
var v = a[j];
if (v == "") {
a[j] = null;
continue;
}
var char = v.charAt(0);
if ((char == "\"") || (char == "'")) {
a[j] = v.substring(1, v.length - 1);
continue;
}
v = Number(v);
if (isNaN(v)) {
var tmp = eval (a[j]);
if (tmp != null) {
a[j] = tmp;
}
} else {
a[j] = v;
}
}
addObject.apply(this, a);
}
}
function readXMLStep() {
}
function readXMLComplete() {
clearInterval(processID);
delete processID;
ready = true;
onReadXMLComplete();
}
function build(base) {
trace("Build Level");
ready = false;
var ssw = (new this.worldConstructor(name));
ssw.name = name;
base.addWorld(ssw);
levelLeft = (levelTop = 268435455);
levelRight = (levelBottom = -268435455);
preProcess(base, ssw);
if (typeof(background) == "function") {
background(ssw);
} else {
trace("Background " + background);
var i = background.layers.length;
while ((--i) > -1) {
var o = {};
o.__proto__ = background.layers[i];
ssw.addBackground(o);
}
}
processObjects(base, ssw);
return(ssw);
}
function processObjects(base, ssw) {
lastTime = getTimer();
current = -1;
total = objects.length;
intervalID = setInterval(function (o, base, ssw) {
o.objectsStep(base, ssw);
}, 0, this, base, ssw);
}
function objectsStep(base, ssw) {
var elapsed = Math.abs(getTimer() - ((lastTime = getTimer())));
while ((++current) < total) {
var a = objects[current];
processObject(ssw, a);
}
if (current == total) {
complete(base, ssw);
clearInterval(intervalID);
}
updateAfterEvent();
}
function processObject(ssw, aData) {
var cX = aData[1];
var cY = aData[2];
var cZ = aData[3];
var cn = aData[0];
var asset = aData[4];
var layer = ((aData[5] == null) ? (cn.prototype.depthLayer) : (Number(aData[5])));
var frame = ((aData[6] == null) ? null : (aData[6]));
var name = (((aData[7] == null) || (aData[7] == "")) ? null : (aData[7]));
var args = aData.slice(10);
if (cn == null) {
return(false);
}
var o = {};
o.__proto__ = cn.prototype;
if (cn == SSShapeInstance) {
cn.call(o, ssw.shapes[args[0]]);
} else {
cn.apply(o, args);
}
o.x = cX;
o.y = cY;
o.z = cZ;
if ((asset != "") && (asset != null)) {
o.assetID = asset;
}
if (layer != o.depthLayer) {
o.depthLayer = Number(layer);
}
if (frame != null) {
o.frame = frame;
}
if (name != null) {
o.name = name;
}
ssw.addObject(o);
levelLeft = Math.min(levelLeft, o.left);
levelTop = Math.min(levelTop, o.top);
levelRight = Math.max(levelRight, o.right);
levelBottom = Math.max(levelBottom, o.bottom);
}
function complete(base, ssw) {
trace(("Process Complete " + base) + ssw);
ready = true;
ssw.levelLeft = levelLeft;
ssw.levelTop = levelTop;
ssw.levelRight = levelRight;
ssw.levelBottom = levelBottom;
onComplete(base, ssw);
}
function onStatus() {
}
function toString() {
return("SSLevel " + name);
}
var startNode = "Start";
var startX = 0;
var startY = 0;
var levelLeft = 0;
var levelRight = 0;
var levelTop = 0;
var levelBottom = 0;
var current = 0;
var total = 0;
var pauseTime = 20;
var ready = false;
var editor_docObject = true;
var editor_args_names = ["levelName", "preProcess", "background", "startNode", "music"];
var editor_args_values = ["name", "preProcess", "background", "Start", "music"];
var editor_args_types = ["string", "string", "string", "string", "string"];
var editor_args_options = ["A-Za-z0-9", "A-Za-z", "A-Za-z", "A-Za-z0-9", "A-Za-z0-9"];
var editor_args_descriptions = [];
var editor_args_mode = [0, 0, 0, 0, 0];
var editor_args_component = ["TextInput", "TextInput", "TextInput", "TextInput", "TextInput"];
var editor_commands = [];
}
Symbol 469 MovieClip [__Packages.SSViewport] Frame 0
class SSViewport extends GDK.Viewport
{
var camOffset, setFieldOfView, FOV, wTan, tanFOV, hTan, changed, x, y, sectorChanged, watch, moveTo, tx, ty;
function SSViewport () {
super();
trace("Side Scroll Camera Created");
}
function onAddToWorld() {
halfWidth = screenWidth * 0.5;
halfHeight = screenHeight * 0.5;
camOffset = new Vector();
setFieldOfView(FOV);
focusDepth = -((wTan = halfWidth / tanFOV));
hTan = halfHeight / tanFOV;
}
function onMove() {
changed = true;
right = ((left = x - halfWidth)) + screenWidth;
bottom = ((top = y - halfHeight)) + screenHeight;
var lc = (leftSector != ((leftSector = Math.floor((left / SSGlobal.GRID_SIZE) - 0.5))));
var tc = (topSector != ((topSector = Math.floor((top / SSGlobal.GRID_SIZE) - 0.5))));
var rc = (rightSector != ((rightSector = Math.ceil((right / SSGlobal.GRID_SIZE) + 0.5))));
var bc = (bottomSector != ((bottomSector = Math.ceil((bottom / SSGlobal.GRID_SIZE) + 0.5))));
if (((lc || (tc)) || (rc)) || (bc)) {
sectorChanged = true;
}
}
function setWatch(obj) {
watch = obj;
moveTo((tx = obj.x), (ty = obj.y), focusDepth);
}
function update(elapsed) {
if (!watch) {
return(undefined);
}
var d = watch.velocity.getNormalized();
camOffset.x = camOffset.x + (((d.x * 125) - camOffset.x) * elapsed);
camOffset.y = camOffset.y + (((d.y * 50) - camOffset.y) * elapsed);
moveTo(watch.x, watch.y, focusDepth);
}
var leftSector = 0;
var rightSector = 0;
var topSector = 0;
var bottomSector = 0;
var left = 0;
var right = 0;
var top = 0;
var bottom = 0;
var screenWidth = 0;
var screenHeight = 0;
var halfWidth = 0;
var halfHeight = 0;
var focusDepth = -450;
var hither = 50;
var yon = 20000;
}
Symbol 470 MovieClip [__Packages.GameViewport] Frame 0
class GameViewport extends SSViewport
{
var watch, tx, halfWidth, ty, halfHeight, moveTo, x, y, focusDepth, moveBy;
function GameViewport () {
super();
}
function stall(time) {
trace("Stall Camera");
stallTime = time;
}
function shakeCamera(time, amount) {
shake = time;
strength = amount;
lastShake = 0;
}
function lock() {
trace("Viewport Locked");
locked = true;
}
function unlock() {
trace("Viewport Unlocked");
locked = false;
}
function update(elapsed) {
if (!watch) {
return(undefined);
}
if (stallTime) {
stallTime = Math.max(0, stallTime - elapsed);
} else if (!locked) {
if (watch.swinging) {
var ny = 0;
tx = watch.x + ((((watch.dispAxis * halfWidth) * xLead) + watch.velocity.x) / 4);
ty = watch.y + ((ny + watch.velocity.y) / 4);
} else {
var ny = ((watch.jumpTime || (!watch.inMotion)) ? (((watch.contactNormal.y * halfHeight) * 0.2) + (((watch.dispAxis * watch.contactNormal.x) * halfHeight) * 0.7)) : (Math.min(Math.max(watch.velocity.y * 0.5, -150), 150)));
tx = watch.x + ((((watch.dispAxis * halfWidth) * xLead) + watch.velocity.x) / response);
ty = watch.y + ((ny + watch.velocity.y) / response);
}
moveTo(Math.round((x + (((tx - x) * elapsed) * response)) * 4) / 4, Math.round((y + (((ty - y) * elapsed) * response)) * 4) / 4, focusDepth);
}
if (shake) {
shake = Math.max(0, shake - elapsed);
lastShake = lastShake + 1;
moveBy(0, (((lastShake % 2) == 1) ? -1 : 1) * strength, 0);
}
}
var stallTime = 0;
var lockPos = false;
var response = 1.7;
var xLead = 0.4;
var shake = 0;
var strength = 2;
var lastShake = 0;
var locked = false;
}
Symbol 471 MovieClip [__Packages.SSWorld] Frame 0
class SSWorld extends GDK.World
{
var sectors, players, name, viewport, backgrounds, collections, target, objectsAdded, tick, sendEvent, displayQueue, engine, onSSAddToScene, soundContainer, soundObject, initSound, inScene, objects;
function SSWorld (name, viewport) {
super();
sectors = {};
players = [];
if (name) {
this.name = name;
}
this.viewport = new SSWorld.viewportClass();
backgrounds = new GDK.Collection();
collections = {};
}
function addToCollection(name, obj) {
var a = collections[name];
if (!a) {
a = (collections[name] = [obj]);
} else {
var i = a.length;
while ((--i) > -1) {
if (a[i] == obj) {
return(undefined);
}
}
a.push(obj);
}
}
function removeFromCollection(name, obj) {
var a;
var i = ((a = collections[name])).length;
while ((--i) > -1) {
if (a[i] == obj) {
a.splice(i, 1);
}
}
}
function addBackground(bg) {
bg.world = (bg.parent = this);
bg.displayNode = target;
bg.uniqueID = ++objectsAdded;
backgrounds.addMember(bg);
}
function update(elapsed) {
tick = Math.floor(time) != Math.floor((time = time + elapsed));
var i = players.length;
while ((--i) > -1) {
players[i].update(elapsed);
}
sendEvent("update", elapsed);
updateViewport(elapsed);
if (viewport.sectorChanged) {
cleanScene();
}
render(elapsed);
}
function cleanScene() {
var changed = [];
viewport.sectorChanged = false;
var w = sectorsWide;
var c;
var i = sectorsTotal;
while ((--i) > -1) {
if ((c = sectors[leftSector + (i % w)][topSector + Math.floor(i / w)])) {
c._s = -1;
changed.push(c);
}
}
var i = ((sectorsTotal = ((w = (sectorsWide = ((rightSector = viewport.rightSector)) - ((leftSector = viewport.leftSector))))) * (((bottomSector = viewport.bottomSector)) - ((topSector = viewport.topSector)))));
while ((--i) > -1) {
if ((c = sectors[leftSector + (i % w)][topSector + Math.floor(i / w)])) {
if (!c._s) {
c._s = 1;
changed.push(c);
} else {
c._s = 0;
}
}
}
var i = changed.length;
var objects = [];
var r;
var o;
var a;
var j;
while ((--i) > -1) {
j = ((a = changed[i])).length;
r = a._s;
while ((--j) > -1) {
if (((o = a[j]))._s == null) {
o._s = r;
objects.push(o);
} else if (r > o._s) {
o._s = r;
}
}
delete changed[i]._s;
}
var i = objects.length;
while ((--i) > -1) {
o = objects[i];
if (o._s < 0) {
o.removeFromScene();
} else if (o._s > 0) {
o.addToScene();
}
delete o._s;
}
}
function render(elapsed) {
if (!displayQueue.length) {
return(undefined);
}
if (viewport.changed) {
target._x = Math.floor(-viewport.x);
target._y = Math.floor(-viewport.y);
var i = backgrounds.length;
while ((--i) > -1) {
backgrounds[i].setDisplay(viewport);
}
}
var vdr = ((viewport.wTan * 1) / viewport.focusDepth);
var i = displayQueue.length;
while ((--i) > -1) {
displayQueue[i].setDisplay(viewport, elapsed, vdr);
delete displayQueue[i].queueForDisplay;
}
displayQueue = [];
viewport.changed = false;
updateAfterEvent();
}
function getSectors(l, t, r, b) {
var s = sectors;
var w;
var i = (((w = (r - l) + 1)) * ((b - t) + 1));
var cell;
var r = [];
while ((--i) > -1) {
if ((cell = s[l + (i % w)][t + Math.floor(i / w)])) {
r.push(cell);
}
}
return(r);
}
function getObjectsInSectors(l, t, r, b) {
var s = sectors;
var w;
var i = (((w = (r - l) + 1)) * ((b - t) + 1));
var cell;
var objs = [];
while ((--i) > -1) {
if ((cell = s[l + (i % w)][t + Math.floor(i / w)])) {
objs = objs.concat(cell);
}
}
return(objs);
}
function updateViewport(elapsed) {
viewport.update(elapsed);
}
function onAddToScene() {
target._visible = true;
viewport.screenWidth = engine.width;
viewport.screenHeight = engine.height;
viewport.world = this;
viewport.onAddToWorld();
var i = backgrounds.length;
while ((--i) > -1) {
backgrounds[i].addDisplay();
backgrounds[i].setDisplay(viewport);
}
onSSAddToScene();
}
function onAddDisplay() {
soundContainer = target.createEmptyMovieClip("SoundContainer", -1200);
soundObject = new Sound(soundContainer);
initSound();
}
function removeFromScene() {
target._visible = false;
inScene = false;
for (var i in soundContainer) {
soundContainer[i].sound.stop();
}
var i = objects.length;
}
function createSound(id, linkageID) {
if (linkageID != null) {
var mc = soundContainer.attachMovie(linkageID, id, ++soundsCreated);
} else {
var mc = soundContainer.createEmptyMovieClip(id, ++soundsCreated);
}
var snd = new Sound(mc);
mc.sound = snd;
return(mc);
}
function muteSounds() {
soundObject.setVolume(muteVolume);
}
function unmuteSounds() {
soundObject.setVolume(normalVolume);
}
function deleteSound(id) {
soundContainer[id].sound.stop();
soundContainer[id].removeMovieClip();
}
function playEventSound(id, name) {
if (id.sound) {
var mc = id;
} else {
var mc = soundContainer[id];
}
mc.gotoAndStop(name);
mc.nextFrame();
}
function addPlayer(player) {
players.push(player);
}
function removePlayer(player) {
var a;
var i = ((a = players)).length;
while ((--i) > -1) {
if (a[i] == player) {
a.splice(i, 1);
return;
}
}
}
static var viewportClass = GameViewport;
var useDefaultCamera = false;
var updateID = 0;
var time = 0;
var levelLeft = 0;
var levelTop = 0;
var levelRight = 0;
var levelBottom = 0;
var leftSector = 0;
var rightSector = 0;
var topSector = 0;
var bottomSector = 0;
var sectorsWide = 0;
var sectorsTotal = 0;
var soundsCreated = 0;
var normalVolume = 100;
var muteVolume = 0;
}
Symbol 472 MovieClip [__Packages.GameWorld] Frame 0
class GameWorld extends SSWorld
{
var collections;
function GameWorld () {
super();
trace("WORLD CREATED FROM GAME");
}
function onSSAddToScene() {
trace("COLLECTIONS" + collections.VR);
if (collections.VR) {
var a;
var i = ((a = collections.VR)).length;
while ((--i) > -1) {
a[i].disabled = true;
}
}
}
}
Symbol 473 MovieClip [__Packages.SSShapeInstance] Frame 0
class SSShapeInstance extends SSObject
{
var world, parent, target, inScene, __proto__;
function SSShapeInstance (obj) {
super();
trace("Shape instance " + obj);
world = null;
parent = null;
target = null;
isInstance = true;
inScene = false;
__proto__ = {__proto__:obj};
__proto__.queueForDisplay = SSShape.prototype.queueForDisplay;
}
function editor_onAddToDocument(doc, cn, args) {
var name = args[0];
var a = doc.objects;
var i = a.length;
var obj;
while ((--i) > -1) {
if (a[i].name == name) {
obj = a[i];
break;
}
}
points = obj.points;
if (!obj.instances) {
obj.instances = [];
}
obj.instances.push(this);
}
function editor_display() {
target.clear();
target.beginFill(13408767, 20);
target.moveTo(points[0].x, points[0].y);
var i = points.length;
while ((--i) > -1) {
target.lineStyle(0, (points[i].props ? 16711680 : 8947848));
target.lineTo(points[i].x, points[i].y);
}
target.endFill();
}
var isInstance = true;
var assetID = null;
}
Symbol 474 MovieClip [__Packages.PerformanceTest] Frame 0
class PerformanceTest
{
var remainingLoops, onComplete, flashMajorVersion, flashMinorVersion, intervalID, log, processor;
function PerformanceTest (itterations, onComplete) {
if (itterations) {
loops = itterations;
}
remainingLoops = loops;
if (onComplete) {
this.onComplete = onComplete;
}
var version = System.capabilities.version.substr(4).split(",");
flashMajorVersion = Number(version[0]);
flashMinorVersion = Number(version[2]);
complete = false;
intervalID = setInterval(function (o) {
o.test();
}, 0, this);
}
function test() {
if (remainingLoops <= 0) {
finalize();
clearInterval(intervalID);
return(undefined);
}
remainingLoops--;
var startTime = getTimer();
var tmp;
var i = 0;
while (i < 6400) {
tmp = {};
i++;
}
time = time + (getTimer() - startTime);
}
function finalize() {
trace("FINAL");
score = Math.floor((loops / time) * 10000);
if (flashMajorVersion >= 7) {
log = Math.log(score * 0.015);
} else {
log = Math.log(score * 0.023);
}
processor = log * 1000;
complete = true;
onComplete(this);
}
function toString() {
if (score) {
return((((((((("Loops:\t" + loops) + "\nFlash Version: \t") + System.capabilities.version) + "\nTotal Time:\t") + time) + "\nScore: \t") + score) + "\nProcessor: \t") + processor);
}
return("Test In Process.");
}
var score = 0;
var time = 0;
var loops = 20;
var complete = false;
}
Symbol 475 MovieClip [__Packages.DSGeneric] Frame 0
class DSGeneric extends SSDrawStyle
{
var surfaceEdge;
function DSGeneric () {
super();
}
function define() {
trace(" define DSGeneric");
surfaceEdge.layerShift = 15;
surfaceEdge.capSurface = true;
surfaceEdge.sideExtrude = 0;
surfaceEdge.endAlign = 1;
surfaceEdge.ambientColor = 4473958 /* 0x444466 */;
surfaceEdge.diffuseColor = 8947865 /* 0x888899 */;
surfaceEdge.specularColor = 15658717 /* 0xEEEEDD */;
surfaceEdge.impactSound = "ground";
}
var className = "DSGeneric";
var fillColor = 52224;
var fillTexture = null;
}
Symbol 476 MovieClip [__Packages.SimpleStatusBar] Frame 0
class SimpleStatusBar extends MovieClip
{
var _xscale;
function SimpleStatusBar () {
super();
}
function setRange(min, max) {
if (min < max) {
minimum = min;
maximum = max;
} else {
minimum = max;
maximum = min;
}
range = maximum - minimum;
}
function set value(v) {
v = Math.min(maximum, Math.max(minimum, v));
if (v == __value) {
return;
}
__value = v;
_xscale = Math.max(1, __value * 100);
trace("Status bar set to " + v);
//return(value);
}
function get value() {
return(__value);
}
var __value = 1;
var minimum = 0;
var maximum = 1;
var range = SimpleStatusBar.prototype.maximum - SimpleStatusBar.prototype.minimum;
}
Symbol 67 MovieClip Frame 1
stop();
Symbol 92 MovieClip Frame 2
stop();
Symbol 125 MovieClip [Checkpoint] Frame 1
stop();
Instance of Symbol 123 MovieClip in Symbol 125 MovieClip [Checkpoint] Frame 1
onClipEvent (load) {
this._parent;
}
Symbol 125 MovieClip [Checkpoint] Frame 4
stop();
Symbol 131 MovieClip Frame 1
stop();
Symbol 146 MovieClip Frame 12
gotoAndPlay (5);
Symbol 148 MovieClip Frame 5
stop();
Symbol 149 MovieClip [WalkingObject] Frame 1
stop();
Symbol 160 MovieClip Frame 3
stop();
Symbol 162 MovieClip Frame 7
gotoAndPlay (5);
Symbol 164 MovieClip Frame 5
stop();
Symbol 165 MovieClip [BouncingObject] Frame 1
stop();
Symbol 179 MovieClip [Spikes] Frame 1
stop();
Symbol 231 MovieClip Frame 1
stop();
Symbol 231 MovieClip Frame 18
stop();
Instance of Symbol 231 MovieClip "endAnim" in Symbol 232 MovieClip [HomeTree] Frame 1
onClipEvent (load) {
this._visible = false;
}
Symbol 266 MovieClip Frame 1
stop();
Symbol 281 Button
on (release) {
if (this._parent._name == "mcScreens") {
this._parent._parent.mcIntroLoop.snd.stop();
this._parent._parent.gotoAndStop("GameInit");
} else {
this._parent.resume();
}
}
Symbol 284 Button
on (release) {
nextFrame();
}
Symbol 289 Button
on (release) {
prevFrame();
}
Symbol 294 MovieClip Frame 1
stop();
Symbol 296 Button
on (release) {
this._visible = false;
this._parent.mcScreens.mcHelp.gotoAndStop("start");
}
Symbol 297 Button
on (release) {
this._parent.mcIntroLoop.snd.stop();
this._parent.gotoAndStop("GameInit");
}
Symbol 301 MovieClip [SSGame] Frame 1
#initclip 69
Object.registerClass("SSGame", SSGame);
#endinitclip
Symbol 306 Button
on (release) {
show("Menu");
}
Symbol 313 MovieClip [SimpleStatusBar] Frame 1
#initclip 67
Object.registerClass("SimpleStatusBar", SimpleStatusBar);
#endinitclip
Symbol 323 MovieClip Frame 1
stop();
Symbol 323 MovieClip Frame 30
this._visible = false;
Symbol 326 MovieClip Frame 1
stop();
Symbol 326 MovieClip Frame 30
this._visible = false;
Symbol 329 Button
on (release) {
show("Help");
}
Symbol 332 Button
on (release) {
show("Quit");
}
Symbol 335 Button
on (release) {
this.show("pause");
}
Symbol 338 Button
on (release) {
SSGame.startNewGame();
}
Symbol 346 Button
on (release) {
show("Menu");
}
Symbol 354 Button
on (release) {
this.resume();
}
Symbol 358 Button
on (release) {
_level0.playerScore = score;
this._parent.DOGEHolder.loadMovie(_parent.fsd);
}
Symbol 369 Button
on (release) {
this.resume();
}
Symbol 374 Button
on (release) {
SSGame.startNewGame();
}
Symbol 394 Button
on (press) {
play();
}
Symbol 395 MovieClip Frame 1
Symbol 395 MovieClip Frame 30
stop();
Symbol 395 MovieClip Frame 31
SSGame.nextLevel();
this._visible = false;
Symbol 404 Button
on (release) {
_global.root.gotoAndStop("GameInit");
}
Symbol 408 MovieClip [GameInterface] Frame 1
#initclip 68
Object.registerClass("GameInterface", SSInterface);
#endinitclip
Instance of Symbol 313 MovieClip [SimpleStatusBar] "health" in Symbol 408 MovieClip [GameInterface] Frame 1
onClipEvent (load) {
trace("status bar xscale:" + this._xscale);
}
Instance of Symbol 323 MovieClip "mcGetEggs" in Symbol 408 MovieClip [GameInterface] Frame 1
onClipEvent (load) {
this._visible = false;
}
Instance of Symbol 326 MovieClip "mcGetReady" in Symbol 408 MovieClip [GameInterface] Frame 1
onClipEvent (load) {
this._visible = false;
}
Instance of Symbol 294 MovieClip in Symbol 408 MovieClip [GameInterface] Frame 11
onClipEvent (load) {
this.gotoAndStop("start");
}
Symbol 408 MovieClip [GameInterface] Frame 42
stopAllSounds();
SSInterface.currentGame.stop();
Symbol 409 MovieClip Frame 1
gotoAndPlay ("end");
Symbol 409 MovieClip Frame 3
_parent.play();