Frame 1
NewgroundsAPI.connectMovie(11018);
stop();
Instance of Symbol 79 MovieClip [API Connector (NewgroundsAPI)] in Frame 1
//component parameters
onClipEvent (construct) {
encryption_key = "0VFUN9Ysfaalgdobco2UXcQnHqmc6N7y";
movie_id = "11018";
movie_version = "1";
fake_session = true;
debug = true;
error_screens = true;
medal_popups = true;
}
Frame 2
stop();
Frame 3
stop();
Frame 4
stop();
Frame 5
cmd_buy = ["buy", "purchase", "get", "give", "offer"];
cmd_hookUp = ["kiss", "hook", "make", "out", "pash", "mack", "smooch"];
cmd_talk = ["approach", "hiton", "seduce", "compliment", "hi", "say", "talk", "chat", "converse", "communicate", "discuss", "speak", "flirt"];
cmd_takeHome = ["leave", "home", "place"];
cmd_hit = ["push", "shove", "slam", "punch", "hit", "slap", "kick", "smack", "wack", "whack", "attack", "beat", "fight", "headbutt", "spank"];
cmd_look = ["observe", "look", "search", "browse", "check"];
cmd_quit = ["quit"];
cmd_fondle = ["grope", "fondle", "touch", "squeeze", "manhandle", "rub", "finger", "grab", "feel"];
cmd_sex = ["sex", "rape", "fuck", "fornicate", "score"];
cmd_persuade = ["persuade", "force", "encourage", "convince", "coax", "pressure"];
cmd_remove = ["take", "remove"];
cmd_strip = ["strip", "undress", "flash", "nude"];
cmd_dance = ["dance", "boogie"];
cmd_blonde = ["hotty", "blonde", "pretty", "hot", "beautiful", "blondes"];
cmd_fatty = ["fatty", "ugly", "scat", "fat", "gross", "red", "rank", "rancid", "tubby"];
cmd_self = ["self", "me", "avatar", "yourself"];
cmd_bouncer = ["security", "tough", "african", "bouncer"];
cmd_tender = ["tender", "bar", "barman", "bartender"];
cmd_asian = ["asian", "brunette", "purple", "oriental", "black"];
cmd_dude = ["brown", "tan", "grey", "skull", "dude", "guy", "guys", "dudes", "man", "fella", "fellow", "mans"];
cmd_two = ["girls", "chicks", "ladies", "babes"];
cmd_drink = ["beer", "wine", "drink", "alcohol", "spirit"];
cmd_roofie = ["roofy", "roofie", "roofies", "drug", "pill", "spike", "slip", "pills", "drugs"];
cmd_clothes = ["pants", "clothes", "clothing"];
cmd_toilet = ["dunny", "shitter", "pisser", "pisspot", "toilet", "bathroom", "toilets", "poop", "pee", "shit", "poo", "crap", "slash", "piss", "wee", "restroom"];
cmd_swear = ["fuck", "dick", "cunt", "slut"];
cmd_play = ["play", "go", "begin", "start"];
cmd_awards = ["awards", "award"];
cmd_close = ["exit", "close", "hide", "back", "return"];
cmd_help = ["help", "guide", "?", "walkthrough", "confused"];
cmd_mute = ["music", "silence", "mute", "unmute"];
cmd_eraseAllData = ["erasealldata"];
cmd_on = ["on"];
cmd_blond = ["blond"];
cmd_asain = ["asain"];
function strip() {
Feedback.text = "You take off your clothes and the bouncer promptly grabs you and throws you out of the bar.";
if (!awd_Flash) {
awd_Flash = true;
DisplayAward("The Flash");
}
splash.gotoAndStop(4);
}
function threesome() {
if ((asianLevel > 2) && (blondeLevel > 3)) {
if (fatty._currentframe == 1) {
Feedback.text = "Unfortunately the blonde won't participate with her meddling friend standing in the way!";
} else {
Feedback.text = "After priming both girls perfectly they both agree to come back with you. Oh yeah baby!";
if (!awd_Multiculturalism) {
awd_Multiculturalism = true;
DisplayAward("Multicultural");
}
if (!awd_TrueGentleman) {
awd_TrueGentleman = true;
DisplayAward("True Gentleman");
}
if (!awd_LadiesMan) {
awd_LadiesMan = true;
DisplayAward("2's Company 3's...");
}
splash.gotoAndStop(12);
}
} else {
Feedback.text = "Taking more than one girl home? That's a little ambitious right now dont you think?";
}
}
function giveTenderRoofie() {
player.gotoAndStop(3);
player.talking = false;
Feedback.text = "The man serves you alcohol and this is how you want to repay him?";
}
function tenderInteraction() {
Feedback.text = "Don't waste your time on the bar tender, you need to score!";
player.gotoAndStop(3);
}
function hitTender() {
Feedback.text = "You hit the bar tender and get kicked out of the bar.";
playSound(2);
if (!awd_Violence) {
awd_Violence = true;
DisplayAward("Violence");
}
splash.gotoAndStop(4);
}
function buyAsianDrink() {
player.gotoAndStop(5);
player.talking = false;
if (guy._currentframe == 3) {
if (asianLevel == 0) {
Feedback.text = "You don't even know this girl yet!";
} else {
if (asianLevel == 1) {
asianLevel++;
}
if (asianLevel <= 2) {
Feedback.text = "She thanks you but tells you that she doesn't USUALLY drink. You have the drink instead.";
} else {
Feedback.text = "The asian girl refuses to have the drink. You have the drink instead";
}
drinksHad++;
if (!awd_Thirsty) {
awd_Thirsty = true;
DisplayAward("Thirsty");
}
}
} else {
Feedback.text = "The guy is standing between you and the asian girl. You can't interact with her at all.";
}
}
function hookUpWithAsian() {
player.gotoAndStop(5);
player.talking = false;
if (guy._currentframe == 3) {
if (asianLevel == 0) {
Feedback.text = "You don't even know this girl yet!";
} else if (asianLevel <= 2) {
Feedback.text = "You lean in to make out with the asian but she turns away.";
} else {
Feedback.text = "After all the shots, you move in to kiss the asian girl and she kisses you back wildly.";
}
} else {
Feedback.text = "The guy is standing between you and the asian girl. You can't interact with her at all.";
}
}
function talkToAsian() {
player.gotoAndStop(5);
player.talking = true;
if (guy._currentframe == 3) {
Feedback.text = "You flirt with the asian girl. She seems very timid. You should find out more about her.";
if (asianLevel == 0) {
asianLevel++;
} else {
Feedback.text = "You flirt more. She says she is normally pretty quiet but easily gives into peer pressure!";
}
} else {
Feedback.text = "The guy is standing between you and the asian girl. You can't interact with her at all.";
player.talking = false;
}
}
function giveAsianRoofie() {
player.gotoAndStop(5);
player.talking = false;
if (guy._currentframe == 3) {
Feedback.text = "You have no way to give her roofies. She doesn't have a drink to put roofies in.";
} else {
Feedback.text = "The guy is standing between you and the asian girl. You can't interact with her at all.";
}
}
function takeHomeAsian() {
player.gotoAndStop(5);
player.talking = false;
if (guy._currentframe == 3) {
if (asianLevel == 0) {
Feedback.text = "You don't even know this girl yet!";
} else if (asianLevel <= 2) {
Feedback.text = "She politely turns down your offer.";
} else {
Feedback.text = "You take the asian girl home after your round of shots and have crazy Kama Sutra Sex!";
if (!awd_Multiculturalism) {
awd_Multiculturalism = true;
DisplayAward("Multicultural");
}
splash.gotoAndStop(8);
}
} else {
Feedback.text = "The guy is standing between you and the asian girl. You can't interact with her at all.";
}
}
function hitAsian() {
player.gotoAndStop(5);
player.talking = false;
if (guy._currentframe == 3) {
Feedback.text = "You go to hit the asian and she quickly opens a can of woopass on you, kung fu style!";
playSound(2);
if (!awd_Hospitalized) {
awd_Hospitalized = true;
DisplayAward("Hospitalized");
}
splash.gotoAndStop(7);
} else {
Feedback.text = "The guy is standing between you and the asian girl. You can't interact with her at all.";
}
}
function fondleAsian() {
player.gotoAndStop(5);
player.talking = false;
if (guy._currentframe == 3) {
Feedback.text = "You go to fondle the asian and she quickly opens a can of woopass on you, kung fu style!";
if (!awd_Hospitalized) {
awd_Hospitalized = true;
DisplayAward("Hospitalized");
}
splash.gotoAndStop(7);
} else {
Feedback.text = "The guy is standing between you and the asian girl. You can't interact with her at all.";
}
}
function persuadeAsian() {
player.gotoAndStop(5);
player.talking = true;
if (guy._currentframe == 3) {
if (asianLevel == 2) {
Feedback.text = "You manage to persuade the girl to drink and she insists on doing a number of shots!";
drinksHad = drinksHad + 4;
asianLevel++;
} else if (asianLevel == 1) {
Feedback.text = "Woah now... Are you sure that's necessary?";
} else if (asianLevel > 2) {
Feedback.text = "She refuses to drink more. She says she already feels too drunk.";
}
} else {
Feedback.text = "The guy is standing between you and the asian girl. You can't interact with her at all.";
}
}
function buyDudeDrink() {
player.gotoAndStop(5);
if (guy._currentframe < 3) {
if (dudeLevel == 0) {
Feedback.text = "The guy ignores you and you have the drink instead.";
drinksHad++;
if (!awd_Thirsty) {
awd_Thirsty = true;
DisplayAward("Thirsty");
}
} else {
if (dudeLevel == 1) {
dudeLevel++;
}
guy.gotoAndStop(2);
Feedback.text = "The guy thanks you and finishes up his last drink then takes yours.";
dudeDrinksHad++;
player.talking = true;
}
if (dudeDrinksHad == 6) {
guy.gotoAndStop(3);
player.gotoAndStop(5);
player.talking = false;
Feedback.text = "After feeding the guy so many drinks he passes out.";
if (!awd_AlphaMale) {
awd_AlphaMale = true;
DisplayAward("Alpha Male");
}
}
} else {
player.talking = false;
Feedback.text = "I don't think the guy is in any state to be having drinks.";
}
}
function hookUpWithDude() {
player.gotoAndStop(5);
if (guy._currentframe < 3) {
if (dudeLevel < 3) {
guy.gotoAndStop(1);
Feedback.text = "You lean in to make out with the guy but he moves away.";
} else {
guy.gotoAndStop(2);
Feedback.text = "You lean in to make out with the guy and he kisses you.";
}
} else {
player.talking = false;
Feedback.text = "He's completely knocked out.";
}
}
function talkToDude() {
player.gotoAndStop(5);
if (guy._currentframe < 3) {
guy.gotoAndStop(2);
player.talking = true;
if (dudeLevel == 0) {
dudeLevel++;
Feedback.text = "You start talking sports with the guy. He seems very interested in you.";
} else {
Feedback.text = "You talk about sports with the guy. He seems very interested in you.";
}
} else {
player.talking = false;
Feedback.text = "I don't think the guy is going to be very talkative in that state.";
}
}
function giveDudeRoofie() {
player.gotoAndStop(5);
player.talking = false;
if (guy._currentframe < 3) {
guy.gotoAndStop(3);
Feedback.text = "You put roofies in the guy's drink and after a few sips of his drink he passes out.";
if (!awd_AlphaMale) {
awd_AlphaMale = true;
DisplayAward("Alpha Male");
}
} else {
player.talking = false;
Feedback.text = "I think the guy has had enough.";
}
}
function takeHomeDude() {
player.gotoAndStop(5);
player.talking = false;
if (guy._currentframe < 3) {
if (dudeLevel < 3) {
guy.gotoAndStop(1);
Feedback.text = "The guy is confused by your request to go home with him. He ignores you.";
} else {
guy.gotoAndStop(2);
Feedback.text = "You go home with the guy after experimenting at the bar and have raging wild gay sex.";
if (!awd_Experimenting) {
awd_Experimenting = true;
DisplayAward("Experimenting");
}
splash.gotoAndStop(9);
}
} else {
player.talking = false;
Feedback.text = "Try all you like, that guy isn't going anywhere with anyone in that state.";
}
}
function hitDude() {
if (guy._currentframe < 3) {
Feedback.text = "You go to hit the guy and he quickly smashes a bottle over your head knocking you out.";
playSound(3);
if (!awd_Hospitalized) {
awd_Hospitalized = true;
DisplayAward("Hospitalized");
}
splash.gotoAndStop(7);
} else {
player.talking = false;
Feedback.text = "You smack up the guy and he doesn't react at all.";
}
}
function fondleDude() {
player.gotoAndStop(5);
player.talking = false;
if (guy._currentframe < 3) {
if (dudeLevel < 2) {
guy.gotoAndStop(1);
Feedback.text = "You fondle the guy and he takes it the wrong way and smashes a bottle over your head!";
if (!awd_Hospitalized) {
awd_Hospitalized = true;
DisplayAward("Hospitalized");
}
splash.gotoAndStop(7);
} else {
guy.gotoAndStop(2);
dudeLevel++;
Feedback.text = "You fondle the guy and he digs it.";
}
} else {
player.talking = false;
Feedback.text = "You feel up the guy and he doesn't react at all.";
}
}
function giveBouncerRoofie() {
player.gotoAndStop(4);
player.talking = false;
Feedback.text = "The bouncer has no drink.";
}
function buyBouncerDrink() {
player.gotoAndStop(4);
Feedback.text = "The bouncer ignores your drink offer so you have the drink instead.";
drinksHad++;
if (!awd_Thirsty) {
awd_Thirsty = true;
DisplayAward("Thirsty");
}
}
function hookUpWithBouncer() {
player.gotoAndStop(2);
Feedback.text = "You lean in to make out with the bouncer and he grabs you and throws you out of the bar.";
splash.gotoAndStop(4);
}
function talkToBouncer() {
player.gotoAndStop(4);
player.talking = true;
Feedback.text = "The bouncer ignores you.";
}
function takeHomeBouncer() {
player.gotoAndStop(4);
Feedback.text = "The bouncer ignores you.";
}
function hitBouncer() {
Feedback.text = "You hit the bouncer and get kicked out of the bar.";
playSound(2);
if (!awd_Violence) {
awd_Violence = true;
DisplayAward("Violence");
}
splash.gotoAndStop(4);
}
function fondleBouncer() {
player.gotoAndStop(2);
Feedback.text = "You fondle the bouncer and get kicked out of the bar.";
if (!awd_Frotteurism) {
awd_Frotteurism = true;
DisplayAward("Frotteurism");
}
splash.gotoAndStop(4);
}
function buyBlondeDrink() {
player.gotoAndStop(2);
player.talking = false;
if (blondeLevel <= 1) {
blonde.gotoAndStop(1);
Feedback.text = "The blonde doesn't accept your drink so you have it instead.";
drinksHad++;
if (!awd_Thirsty) {
awd_Thirsty = true;
DisplayAward("Thirsty");
}
} else if (blondeLevel == 2) {
blonde.gotoAndStop(2);
blondeLevel = 3;
fattyBored++;
Feedback.text = "The blonde thanks you for the drink and sips it casually.";
} else if (blondeLevel >= 3) {
blonde.gotoAndStop(1);
Feedback.text = "The blonde is still sipping her last drink so you have the drink instead.";
drinksHad++;
if (!awd_Thirsty) {
awd_Thirsty = true;
DisplayAward("Thirsty");
}
}
}
function giveBlondeRoofie() {
blonde.gotoAndStop(1);
player.gotoAndStop(2);
player.talking = false;
if (blondeLevel < 3) {
Feedback.text = "How? She doesn't have a drink.";
} else if (blondeLevel >= 3) {
Feedback.text = "You put roofies in the blondes drink and soon she is easily persuaded to come home with you. Nice work sleazebag!";
if (!awd_Sleazebag) {
awd_Sleazebag = true;
DisplayAward("Sleazebag");
}
splash.gotoAndStop(11);
}
}
function hookUpWithBlonde() {
blonde.gotoAndStop(2);
player.gotoAndStop(2);
player.talking = false;
if (blondeLevel < 3) {
Feedback.text = "You lean in to make out with the blonde but she slaps you and leaves with her friend.";
blondeAndUglyGone = true;
playSound(2);
if (!awd_Rejection) {
awd_Rejection = true;
DisplayAward("Rejection");
}
blonde.gotoAndStop(3);
fatty.gotoAndStop(3);
} else if (blondeLevel >= 3) {
Feedback.text = "You lean in to make out with the blonde and she kisses you back.";
fattyBored++;
blondeLevel = 4;
}
}
function talkToBlonde() {
player.gotoAndStop(2);
player.talking = false;
if (blondeLevel == 0) {
blonde.gotoAndStop(1);
Feedback.text = "The blonde ignores you.";
if (fatty._currentframe == 2) {
blonde.gotoAndStop(2);
player.talking = true;
blondeLevel = 2;
Feedback.text = "After knocking out her friend, the blonde is bored and has no option but to talk to you.";
}
} else if (blondeLevel == 1) {
blonde.gotoAndStop(2);
player.talking = true;
blondeLevel = 2;
fattyBored++;
if (fatty._currentframe == 2) {
Feedback.text = "After knocking out her friend, the blonde is bored and has no option but to talk to you.";
} else {
Feedback.text = "After cunningly breaking the ice with her ugly friend first, the blonde talks with you.";
}
} else if (blondeLevel >= 2) {
player.talking = true;
blonde.gotoAndStop(2);
fattyBored++;
Feedback.text = "You flirt with the blonde chick.";
}
}
function takeHomeBlonde() {
player.gotoAndStop(2);
player.talking = false;
if (blondeLevel < 1) {
Feedback.text = "The blonde ignores you";
} else if (blondeLevel < 4) {
Feedback.text = "The blonde laughs at you and calls you a loser and leaves with her friend.";
blondeAndUglyGone = true;
if (!awd_Rejection) {
awd_Rejection = true;
DisplayAward("Rejection");
}
blonde.gotoAndStop(3);
fatty.gotoAndStop(3);
} else {
Feedback.text = "After playing your cards right you take the blonde home for a night of wild lovin!";
if (!awd_TrueGentleman) {
awd_TrueGentleman = true;
DisplayAward("True Gentleman");
}
splash.gotoAndStop(6);
}
}
function hitBlonde() {
player.gotoAndStop(2);
Feedback.text = "You hit the blonde chick and get kicked out of the bar.";
playSound(2);
if (!awd_Violence) {
awd_Violence = true;
DisplayAward("Violence");
}
splash.gotoAndStop(4);
}
function fondleBlonde() {
player.gotoAndStop(2);
Feedback.text = "You fondle the blonde chick and she complains to the bouncer. You get kicked out!";
if (!awd_Frotteurism) {
awd_Frotteurism = true;
DisplayAward("Frotteurism");
}
splash.gotoAndStop(4);
}
function buyFattyDrink() {
player.gotoAndStop(2);
player.talking = false;
if (fatty._currentframe == 1) {
blonde.gotoAndStop(1);
fattyBored = 0;
if (blondeLevel == 0) {
blondeLevel = 1;
}
_root.playSound(0);
Feedback.text = "You give the ugly chick a drink and she guzzles down it straight away.";
} else {
Feedback.text = "She is not in any state to be having drinks right now.";
}
}
function hookUpWithFatty() {
player.talking = false;
player.gotoAndStop(2);
if (fatty._currentframe == 1) {
blonde.gotoAndStop(1);
fattyBored = 0;
Feedback.text = "The ugly chick and she jumps at the opportunity to kiss you and practically eats your face.";
} else {
Feedback.text = "She is lying face down on the bar and you can't lift her heavy body to get to her lips.";
}
}
function giveFattyRoofies() {
player.talking = false;
player.gotoAndStop(2);
if (fatty._currentframe == 1) {
blonde.gotoAndStop(2);
fatty.gotoAndStop(2);
fattyBored = 0;
Feedback.text = "You give her a handful of roofies convincing her they are candy. She passes out cold!";
if (!awd_Beached) {
awd_Beached = true;
DisplayAward("Beached As");
}
} else {
Feedback.text = "She's already passed out!";
}
}
function talkToFatty() {
player.talking = true;
player.gotoAndStop(2);
if (fatty._currentframe == 1) {
blonde.gotoAndStop(1);
fattyBored = 0;
if (blondeLevel == 0) {
blondeLevel = 1;
}
Feedback.text = "You flirt with the ugly chick.";
} else {
player.talking = false;
Feedback.text = "I don't think she is capable of responding in that state.";
}
}
function takeHomeFatty() {
if (fatty._currentframe == 1) {
Feedback.text = "The ugly chick comes home with you without a question. Well... at least you got some!";
if (!awd_ScooterRooter) {
awd_ScooterRooter = true;
DisplayAward("Scooter Rooter");
}
splash.gotoAndStop(5);
} else {
player.gotoAndStop(2);
player.talking = false;
Feedback.text = "She is passed out and too heavy to move. There's no way you can take her home like this.";
}
}
function hitUgly() {
if (fatty._currentframe == 1) {
Feedback.text = "You hit the fat chick and get kicked out of the bar.";
playSound(2);
if (!awd_Violence) {
awd_Violence = true;
DisplayAward("Violence");
}
splash.gotoAndStop(4);
} else {
player.gotoAndStop(2);
player.talking = false;
Feedback.text = "You whack her soft jelly like body but she doesn't wake up.";
}
}
function fondleFatty() {
player.gotoAndStop(2);
player.talking = false;
if (fatty._currentframe == 1) {
blonde.gotoAndStop(1);
Feedback.text = "You fondle the fat chick and she digs it.";
fattyBored = 0;
} else {
Feedback.text = "You grope her but she doesn't respond.";
}
}
function PerformCommand() {
command = Input.text;
lastCmd = command;
command = command.toLowerCase();
command = command.substr(0, command.length - 1);
command = command.split(" ");
Input.text = "";
if (FindCommand(command, new Array(cmd_eraseAllData))) {
newGame();
loadData();
return(true);
}
if (FindCommand(command, new Array(cmd_mute))) {
muted = !muted;
if (muted) {
Feedback.text = "You stop the music!";
} else {
Feedback.text = "You start the music!";
}
if (!awd_Deaf) {
awd_Deaf = true;
DisplayAward("Deaf");
}
return(true);
}
if ((splash._currentframe == 2) && (awards._currentframe == 1)) {
if (DoInGameCommands()) {
return(true);
}
} else {
if (FindCommand(command, new Array(cmd_play))) {
if (awards._currentframe == 1) {
Initialise();
} else {
awards.gotoAndStop(1);
}
return(true);
}
if (FindCommand(command, new Array(cmd_close))) {
awards.gotoAndStop(1);
return(true);
}
}
if (FindCommand(command, new Array(cmd_awards))) {
awards.gotoAndStop(2);
return(true);
}
if (FindCommand(command, new Array(cmd_swear))) {
Feedback.text = "Do you kiss your mother with that mouth?";
return(true);
}
if (awards._currentframe == 2) {
Feedback.text = "Type CLOSE to hide list of awards";
return(true);
}
if (FindCommand(command, new Array(cmd_help))) {
getURL ("http://www.youtube.com/watch?v=wVwOq4SziBw", _blank);
return(true);
}
return(false);
}
function DoInGameCommands() {
if (FindCommand(command, new Array(cmd_roofie)) && (!roofies)) {
Feedback.text = "You don't have any on you.";
return(true);
}
if (FindCommand(command, new Array(cmd_blond))) {
Feedback.text = "Did you mean to type 'blonde' ?";
return(true);
}
if (FindCommand(command, new Array(cmd_asain))) {
Feedback.text = "Did you mean to type 'asian' ?";
return(true);
}
if (FindCommand(command, new Array(cmd_strip)) || (FindCommand(command, new Array(cmd_remove, cmd_clothes)))) {
strip();
return(true);
}
if (FindCommand(command, new Array(cmd_takeHome, cmd_asian, cmd_blonde)) || (FindCommand(command, new Array(cmd_takeHome, cmd_two)))) {
threesome();
return(true);
}
if (FindCommand(command, new Array(cmd_tender, cmd_roofie)) && (roofies)) {
giveTenderRoofie();
return(true);
}
if (((FindCommand(command, new Array(cmd_takeHome, cmd_tender)) || (FindCommand(command, new Array(cmd_hookUp, cmd_tender)))) || (FindCommand(command, new Array(cmd_fondle, cmd_tender)))) || (FindCommand(command, new Array(cmd_talk, cmd_tender)))) {
tenderInteraction();
return(true);
}
if (FindCommand(command, new Array(cmd_hit, cmd_tender)) && (!FindCommand(command, cmd_on))) {
hitTender();
return(true);
}
if (FindCommand(command, new Array(cmd_buy, cmd_asian, cmd_drink))) {
buyAsianDrink();
return(true);
}
if (FindCommand(command, new Array(cmd_hookUp, cmd_asian))) {
hookUpWithAsian();
return(true);
}
if (FindCommand(command, new Array(cmd_talk, cmd_asian))) {
talkToAsian();
return(true);
}
if (FindCommand(command, new Array(cmd_takeHome, cmd_asian))) {
takeHomeAsian();
return(true);
}
if (FindCommand(command, new Array(cmd_hit, cmd_asian)) && (!FindCommand(command, cmd_on))) {
hitAsian();
return(true);
}
if (FindCommand(command, new Array(cmd_fondle, cmd_asian))) {
fondleAsian();
return(true);
}
if (FindCommand(command, new Array(cmd_asian, cmd_roofie)) && (roofies)) {
giveAsianRoofie();
return(true);
}
if (FindCommand(command, new Array(cmd_asian, cmd_persuade, cmd_drink))) {
persuadeAsian();
return(true);
}
if (FindCommand(command, new Array(cmd_buy, cmd_dude, cmd_drink))) {
buyDudeDrink();
return(true);
}
if (FindCommand(command, new Array(cmd_hookUp, cmd_dude))) {
hookUpWithDude();
return(true);
}
if (FindCommand(command, new Array(cmd_talk, cmd_dude))) {
talkToDude();
return(true);
}
if (FindCommand(command, new Array(cmd_takeHome, cmd_dude))) {
takeHomeDude();
return(true);
}
if (FindCommand(command, new Array(cmd_hit, cmd_dude)) && (!FindCommand(command, cmd_on))) {
hitDude();
return(true);
}
if (FindCommand(command, new Array(cmd_fondle, cmd_dude))) {
fondleDude();
return(true);
}
if (FindCommand(command, new Array(cmd_dude, cmd_roofie)) && (roofies)) {
giveDudeRoofie();
return(true);
}
if (FindCommand(command, new Array(cmd_bouncer, cmd_roofie)) && (roofies)) {
giveBouncerRoofie();
return(true);
}
if (FindCommand(command, new Array(cmd_buy, cmd_bouncer, cmd_drink))) {
buyBouncerDrink();
return(true);
}
if (FindCommand(command, new Array(cmd_hookUp, cmd_bouncer))) {
hookUpWithBouncer();
return(true);
}
if (FindCommand(command, new Array(cmd_talk, cmd_bouncer))) {
talkToBouncer();
return(true);
}
if (FindCommand(command, new Array(cmd_takeHome, cmd_bouncer))) {
takeHomeBouncer();
return(true);
}
if (FindCommand(command, new Array(cmd_hit, cmd_bouncer)) && (!FindCommand(command, cmd_on))) {
hitBouncer();
return(true);
}
if (FindCommand(command, new Array(cmd_fondle, cmd_bouncer))) {
fondleBouncer();
return(true);
}
if (!blondeAndUglyGone) {
if (FindCommand(command, new Array(cmd_blonde, cmd_roofie)) && (roofies)) {
giveBlondeRoofie();
return(true);
}
if (FindCommand(command, new Array(cmd_fatty, cmd_roofie)) && (roofies)) {
giveFattyRoofies();
return(true);
}
if (FindCommand(command, new Array(cmd_buy, cmd_blonde, cmd_drink))) {
buyBlondeDrink();
return(true);
}
if (FindCommand(command, new Array(cmd_buy, cmd_fatty, cmd_drink))) {
buyFattyDrink();
return(true);
}
if (FindCommand(command, new Array(cmd_hookUp, cmd_fatty))) {
hookUpWithFatty();
return(true);
}
if (FindCommand(command, new Array(cmd_hookUp, cmd_blonde))) {
hookUpWithBlonde();
return(true);
}
if (FindCommand(command, new Array(cmd_talk, cmd_fatty))) {
talkToFatty();
return(true);
}
if (FindCommand(command, new Array(cmd_talk, cmd_blonde))) {
talkToBlonde();
return(true);
}
if (FindCommand(command, new Array(cmd_takeHome, cmd_fatty))) {
takeHomeFatty();
return(true);
}
if (FindCommand(command, new Array(cmd_takeHome, cmd_blonde))) {
takeHomeBlonde();
return(true);
}
if (FindCommand(command, new Array(cmd_hit, cmd_fatty)) && (!FindCommand(command, cmd_on))) {
hitUgly();
return(true);
}
if (FindCommand(command, new Array(cmd_hit, cmd_blonde)) && (!FindCommand(command, cmd_on))) {
hitBlonde();
return(true);
}
if (FindCommand(command, new Array(cmd_fondle, cmd_fatty))) {
fondleFatty();
return(true);
}
if (FindCommand(command, new Array(cmd_fondle, cmd_blonde))) {
fondleBlonde();
return(true);
}
}
if (FindCommand(command, new Array(cmd_sex))) {
Feedback.text = "You can't just have sex here. You will need to take someone home.";
return(true);
}
if (FindCommand(command, new Array(cmd_toilet))) {
player.gotoAndStop(6);
player.talking = false;
if (!roofies) {
Feedback.text = "While in the bathroom you find a couple of roofies left on the counter. You take them.";
roofies = true;
} else {
Feedback.text = "You use the bathroom.";
}
bDoor.play();
return(true);
}
if (FindCommand(command, new Array(cmd_buy, cmd_self, cmd_drink)) || ((command.length <= 3) && (FindCommand(command, new Array(cmd_drink))))) {
if (blonde._currentframe == 2) {
blonde.gotoAndStop(1);
}
player.gotoAndStop(3);
Feedback.text = "You buy a drink for yourself and drink it quickly.";
drinksHad++;
if (!awd_Thirsty) {
awd_Thirsty = true;
DisplayAward("Thirsty");
}
return(true);
}
if (FindCommand(command, new Array(cmd_takeHome)) || (FindCommand(command, new Array(cmd_quit)))) {
Feedback.text = "You go home without anyone, you fail";
if (!awd_Quitter) {
awd_Quitter = true;
DisplayAward("Quitter");
}
splash.gotoAndStop(10);
return(true);
}
if (FindCommand(command, new Array(cmd_roofie)) && (roofies)) {
Feedback.text = "You munch on a handful of roofies and wake up naked in the gutter!";
if (!awd_Hungry) {
awd_Hungry = true;
DisplayAward("Hungry");
}
splash.gotoAndStop(13);
return(true);
}
if (FindCommand(command, new Array(cmd_dance))) {
Feedback.text = "Unfortunately you aren't any good at dancing!";
return(true);
}
return(false);
}
function FindCommand(command, cmdArray) {
var _local4 = false;
var _local6 = 0;
var _local2 = new Array();
i = 0;
while (i < command.length) {
_local4 = false;
j = 0;
while (j < cmdArray.length) {
k = 0;
while (k < cmdArray[j].length) {
var _local1 = true;
l = 0;
while (l < _local2.length) {
if (_local2[l] == j) {
_local1 = false;
}
l++;
}
if (_local1) {
if (command[i] == cmdArray[j][k]) {
_local2.push(j);
_local4 = true;
}
}
k++;
}
j++;
}
if (_local4) {
_local6++;
}
i++;
}
if (_local6 == cmdArray.length) {
return(true);
}
return(false);
}
function Contains(search, array) {
i = 0;
while (i < array.length) {
Feedback.text = ((("COMPARING '" + array[i]) + "' with '") + search) + "'";
if (array[i] == search) {
return(true);
}
i++;
}
}
function Initialise() {
Feedback.text = "Score...";
splash.gotoAndStop(2);
blondeAndUglyGone = false;
drinksHad = 0;
fattyBored = 0;
blondeLevel = 0;
dudeLevel = 0;
roofies = false;
dudeDrinksHad = 0;
asianLevel = 0;
guy.gotoAndStop(1);
asian.gotoAndStop(1);
blonde.gotoAndStop(1);
fatty.gotoAndStop(1);
player.gotoAndStop(1);
}
function DisplayAward(Title) {
playSound(7);
awardCount++;
saveData();
pendingMedals.push(String(Title));
}
function newGame() {
saves.data.newGame2 = false;
saves.data.awardCount = 1;
saves.data.awd_Thirsty = false;
saves.data.awd_Hungry = false;
saves.data.awd_Deaf = false;
saves.data.awd_LadiesMan = false;
saves.data.awd_BoozeHound = false;
saves.data.awd_ScooterRooter = false;
saves.data.awd_TrueGentleman = false;
saves.data.awd_Sleazebag = false;
saves.data.awd_Quitter = false;
saves.data.awd_Hospitalized = false;
saves.data.awd_Experimenting = false;
saves.data.awd_Rejection = false;
saves.data.awd_CockBlock = false;
saves.data.awd_Violence = false;
saves.data.awd_Frotteurism = false;
saves.data.awd_Multiculturalism = false;
saves.data.awd_AlphaMale = false;
saves.data.awd_Casanova = false;
saves.data.awd_Flash = false;
saves.data.awd_Beached = false;
saves.data.awd_Score = false;
}
function loadData() {
awardCount = saves.data.awardCount;
awd_Thirsty = saves.data.awd_Thirsty;
awd_Hungry = saves.data.awd_Hungry;
awd_Deaf = saves.data.awd_Deaf;
awd_LadiesMan = saves.data.awd_LadiesMan;
awd_BoozeHound = saves.data.awd_BoozeHound;
awd_ScooterRooter = saves.data.awd_ScooterRooter;
awd_TrueGentleman = saves.data.awd_TrueGentleman;
awd_Sleazebag = saves.data.awd_Sleazebag;
awd_Quitter = saves.data.awd_Quitter;
awd_Hospitalized = saves.data.awd_Hospitalized;
awd_Experimenting = saves.data.awd_Experimenting;
awd_Rejection = saves.data.awd_Rejection;
awd_CockBlock = saves.data.awd_CockBlock;
awd_Violence = saves.data.awd_Violence;
awd_Frotteurism = saves.data.awd_Frotteurism;
awd_Multiculturalism = saves.data.awd_Multiculturalism;
awd_AlphaMale = saves.data.awd_AlphaMale;
awd_Casanova = saves.data.awd_Casanova;
awd_Flash = saves.data.awd_Flash;
awd_Beached = saves.data.awd_Beached;
awd_Score = saves.data.awd_Score;
}
function saveData() {
saves.data.awardCount = awardCount;
saves.data.awd_Thirsty = awd_Thirsty;
saves.data.awd_Hungry = awd_Hungry;
saves.data.awd_Deaf = awd_Deaf;
saves.data.awd_LadiesMan = awd_LadiesMan;
saves.data.awd_BoozeHound = awd_BoozeHound;
saves.data.awd_ScooterRooter = awd_ScooterRooter;
saves.data.awd_TrueGentleman = awd_TrueGentleman;
saves.data.awd_Sleazebag = awd_Sleazebag;
saves.data.awd_Quitter = awd_Quitter;
saves.data.awd_Hospitalized = awd_Hospitalized;
saves.data.awd_Experimenting = awd_Experimenting;
saves.data.awd_Rejection = awd_Rejection;
saves.data.awd_CockBlock = awd_CockBlock;
saves.data.awd_Violence = awd_Violence;
saves.data.awd_Frotteurism = awd_Frotteurism;
saves.data.awd_Multiculturalism = awd_Multiculturalism;
saves.data.awd_AlphaMale = awd_AlphaMale;
saves.data.awd_Casanova = awd_Casanova;
saves.data.awd_Flash = awd_Flash;
saves.data.awd_Beached = awd_Beached;
saves.data.awd_Score = awd_Score;
saves.flush();
}
function playSound(num) {
if (!muted) {
sfx.gotoAndPlay((num * 100) + 1);
}
}
stop();
var pendingMedals = new Array();
saves = SharedObject.getLocal("ScoreData");
_quality = "LOW";
Stage.showMenu = false;
var splashFrame = 1;
var Pressed = false;
var dudeDrinksHad = 0;
var drinksHad = 0;
var fattyBored = 0;
var dudeLevel = 0;
var blondeLevel = 0;
var asianLevel = 0;
var roofies = false;
var blondeAndUglyGone = false;
var maxDrinks = 6;
var fattyMax = 3;
var muted = false;
var awardCount = 1;
var awd_Thirsty = false;
var awd_Hungry = false;
var awd_Deaf = false;
var awd_LadiesMan = false;
var awd_BoozeHound = false;
var awd_ScooterRooter = false;
var awd_TrueGentleman = false;
var awd_Sleazebag = false;
var awd_Quitter = false;
var awd_Hospitalized = false;
var awd_Experimenting = false;
var awd_Rejection = false;
var awd_CockBlock = false;
var awd_Violence = false;
var awd_Frotteurism = false;
var awd_Multiculturalism = false;
var awd_AlphaMale = false;
var awd_Casanova = false;
var awd_Flash = false;
var awd_Beached = false;
var awd_Score = false;
var lastCmd = "";
if (saves.data.newGame2 == undefined) {
newGame();
}
loadData();
Selection.setFocus("Input");
var waitTime = 0;
onEnterFrame = function () {
if (Selection.getFocus() == null) {
Selection.setFocus("Input");
}
if (waitTime == 0) {
waitTime = 30;
if (pendingMedals.length > 0) {
var _local1 = String(pendingMedals.pop());
com.newgrounds.API.unlockMedal(_local1, 270, 50);
}
} else {
waitTime--;
}
if (Key.isDown(13)) {
if (!pressed) {
if (PerformCommand() == false) {
choice = random(2);
if (choice == 0) {
Feedback.text = "What do you mean by: " + lastCmd;
} else {
Feedback.text = "Invalid command: " + lastCmd;
}
}
if ((fattyBored >= fattyMax) && (fatty._currentframe == 1)) {
blondeAndUglyGone = true;
blonde.gotoAndStop(3);
fatty.gotoAndStop(3);
Feedback.text = "Oops! You paid too much attention to the blonde and her friend got bored. They leave the bar.";
fattyBored = 0;
if (!awd_CockBlock) {
awd_CockBlock = true;
DisplayAward("Cock Block");
}
}
if (drinksHad >= maxDrinks) {
if (Feedback.text == "You manage to persuade the girl to drink and she insists on doing a number of shots!") {
Feedback.text = "You persuade the girl to drink and she insists on doing a number of shots! You already had a little to drink and so you get too drunk and pass out!";
} else if (Feedback.text == "The asian girl refuses to have the drink. You have the drink instead") {
Feedback.text = "The asian girl refuses to have the drink after all those shots you had. You have the drink instead but end up getting too sloppy!";
} else {
Feedback.text = "You had too many drinks and got too sloppy";
}
if (!awd_BoozeHound) {
awd_BoozeHound = true;
DisplayAward("Booze Hound");
}
splash.gotoAndStop(3);
}
}
pressed = true;
} else {
pressed = false;
}
if ((((awd_Multiculturalism && (awd_TrueGentleman)) && (awd_ScooterRooter)) && (awd_Experimenting)) && (!awd_Casanova)) {
awd_Casanova = true;
DisplayAward("Casanova");
}
if (awardCount == 21) {
awd_Score = true;
DisplayAward("Score!");
awards.gotoAndStop(3);
}
};
PerformCommand();
Feedback.text = "Text commands are entered at the bottom of the screen!";
var correctDomain1 = "www.newgrounds.com";
var _url = root.loaderInfo.url;
var host = _url.split("/")[2].toLowerCase();
if (host.length < 1) {
host = "localhost";
}
Symbol 6 MovieClip [award] Frame 1
var velocity = ((50 - this._y) / 100);
var lifeTime = 150;
onEnterFrame = function () {
velocity = velocity + ((target - this._y) / 80);
velocity = velocity / 1.1;
this._y = this._y + velocity;
if (lifeTime > 0) {
lifeTime--;
} else {
_alpha = (_alpha - 2);
if (_alpha <= 0) {
this.removeMovieClip();
}
}
};
Symbol 15 MovieClip Frame 1
onEnterFrame = function () {
if (_visible) {
_rotation = (_rotation + 30);
} else {
delete onEnterFrame;
}
};
Symbol 17 MovieClip Frame 10
stop();
Symbol 19 MovieClip Frame 37
_parent.setGotoFrame("done");
stop();
Symbol 31 MovieClip [NewgroundsAPIAsset_Medal_Popup] Frame 1
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay ("closeme");
}
_visible = true;
icon._visible = false;
pop_delay = setInterval(endDelay, 3000);
Symbol 31 MovieClip [NewgroundsAPIAsset_Medal_Popup] Frame 2
medal.attachIcon(icon);
Symbol 31 MovieClip [NewgroundsAPIAsset_Medal_Popup] Frame 10
icon._visible = true;
medal_name = medal.getName();
medal_value = medal.getValue() + "pts";
stop();
Symbol 31 MovieClip [NewgroundsAPIAsset_Medal_Popup] Frame 21
this.removeMovieClip();
_visible = false;
stop();
Symbol 37 MovieClip [NewgroundsAPIAsset_Login_Warning] Frame 1
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay ("closeme");
}
_x = 0;
_y = 0;
_visible = true;
pop_delay = setInterval(endDelay, 6000);
Symbol 37 MovieClip [NewgroundsAPIAsset_Login_Warning] Frame 10
stop();
Symbol 37 MovieClip [NewgroundsAPIAsset_Login_Warning] Frame 21
this.removeMovieClip();
_visible = false;
stop();
Symbol 40 MovieClip [NewgroundsAPIAsset_Connection_Error] Frame 1
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay ("closeme");
}
_x = 0;
_y = 0;
_visible = true;
pop_delay = setInterval(endDelay, 6000);
Symbol 40 MovieClip [NewgroundsAPIAsset_Connection_Error] Frame 10
stop();
Symbol 40 MovieClip [NewgroundsAPIAsset_Connection_Error] Frame 21
this.removeMovieClip();
_visible = false;
stop();
Symbol 61 MovieClip [NewgroundsAPIAsset_big_popup_background] Frame 1
var w = Math.round(this._width);
var h = Math.round(this._height);
if (w < 80) {
w = 80;
}
if (h < 80) {
h = 80;
}
this._width = 350;
this._height = 120;
t._width = w - 2;
t._x = 1;
b._width = w - 2;
b._x = 1;
c._width = w - 2;
c._x = 1;
c._height = h - 2;
c._y = 1;
l._height = h - 2;
l._y = 1;
r._height = h - 2;
r._y = 1;
tr._x = w - 7;
r._x = w - 7;
br._x = w - 7;
b._y = h - 7;
bl._y = h - 7;
br._y = h - 7;
shadow._width = w + 10;
shadow._height = h + 10;
Symbol 65 Button
on (release) {
this._visible = false;
this.removeMovieClip();
}
Symbol 71 Button
on (release) {
getURL (official_version_url, "_blank");
}
Symbol 73 MovieClip [NewgroundsAsset_New_Version_Available] Frame 1
_x = (Stage.width / 2);
_y = (Stage.height / 2);
background._width = Stage.width + 200;
background._height = Stage.height + 200;
background._x = -(_x + 100);
background._y = -(_y + 100);
Symbol 74 Button
on (release) {
getURL (official_version_url, "_blank");
}
Symbol 78 MovieClip [NewgroundsAsset_Illegal_Host] Frame 1
_x = (Stage.width / 2);
_y = (Stage.height / 2);
background._width = Stage.width + 200;
background._height = Stage.height + 200;
background._x = -(_x + 100);
background._y = -(_y + 100);
Symbol 79 MovieClip [API Connector (NewgroundsAPI)] Frame 1
#initclip 23
Object.registerClass("API Connector (NewgroundsAPI)", com.newgrounds.components.APIConnector);
#endinitclip
Symbol 79 MovieClip [API Connector (NewgroundsAPI)] Frame 20
_visible = false;
Symbol 120 MovieClip Frame 40
stop();
Symbol 134 Button
on (press) {
tellTarget (_root) {
nextFrame();
};
}
Symbol 135 Button
on (press) {
gotoAndStop ("end");
_root.play();
}
Instance of Symbol 110 MovieClip in Symbol 136 MovieClip Frame 1
onClipEvent (load) {
_root.stop();
PercentLoaded = int((_root.getBytesLoaded() / _root.getBytesTotal()) * 100);
if (PercentLoaded != 100) {
_parent.gotoAndStop(PercentLoaded);
} else {
_parent.gotoAndStop("lastframe");
}
}
onClipEvent (enterFrame) {
PercentLoaded = int((_root.getBytesLoaded() / _root.getBytesTotal()) * 100);
if (PercentLoaded != 100) {
_parent.gotoAndStop(PercentLoaded);
} else {
_parent.gotoAndPlay("loaded");
}
}
Symbol 136 MovieClip Frame 101
play();
Symbol 136 MovieClip Frame 165
stop();
Symbol 142 Button
on (release) {
NewgroundsAPI.loadNewgrounds();
}
Symbol 148 Button
on (release) {
NewgroundsAPI.loadNewgrounds();
}
Symbol 150 MovieClip Frame 1
function startAd(ngad_url) {
trace("opening " + ngad_url);
System.security.allowDomain("70.87.128.99");
System.security.allowInsecureDomain("70.87.128.99");
System.security.allowDomain("ads.shizmoo.com");
System.security.allowInsecureDomain("ads.shizmoo.com");
System.security.allowDomain("www.cpmstar.com");
System.security.allowInsecureDomain("www.cpmstar.com");
System.security.allowDomain("server.cpmstar.com");
System.security.allowInsecureDomain("server.cpmstar.com");
var ngads_redirect = new XML();
ngads_redirect.ignoreWhite = true;
ngads_redirect.onLoad = function (success) {
trace("[NEWGROUNDS FLASH ADS] :: You may get a 'Security Sandbox Violation' ... this is normal, do not freak out!");
if (success) {
ng_ad.loadMovie(ngads_redirect.toString(), "GET");
}
};
ngads_redirect.load(ngad_url);
}
if (NewgroundsAPI.getAdURL()) {
startAd(NewgroundsAPI.getAdURL());
}
NewgroundsAPI.onAdsApproved = function (ad_url) {
startAd(ad_url);
};
stop();
Symbol 152 MovieClip Frame 1
this.swapDepths(1000000);
Symbol 567 MovieClip [__Packages.NewgroundsAPI] Frame 0
class NewgroundsAPI
{
static var tracker_id, host, version, debug, error_format, header_format, normal_format, link_format;
function NewgroundsAPI () {
}
static function connectMovie(id) {
if (!id) {
SendError("Missing required 'id' parameter in NewgroundsAPI.connectMovie(id:Number)");
} else if (!tracker_id) {
SendMessage("Connecting to API gateway...");
tracker_id = id;
host = _url.split("/")[2].toLowerCase();
if (host.length < 1) {
host = "localhost";
}
var _local2 = new Object();
SendEvent(MOVIE_VIEWS);
}
}
static function setMovieVersion(movie_version) {
if (!movie_version) {
SendError("Missing required 'version' in NewgroundsAPI.setMovieVersion(version:String)");
} else {
version = movie_version;
}
}
static function debugMode() {
debug = true;
}
static function addCustomEvent(stat_id, stat_name) {
if (!stat_id) {
SendError("Missing required 'id' parameter in NewgroundsAPI.AddCustomEvent(id:Number, event_name:String)");
} else if (!stat_name) {
SendError("Missing required 'event_name' parameter in NewgroundsAPI.AddCustomEvent(id:Number, event_name:String)");
} else {
custom_events[stat_name] = CUSTOM_STATS + stat_id;
SendMessage("Created custom event: " + stat_name);
}
}
static function addCustomLink(stat_id, stat_name) {
if (!stat_id) {
SendError("Missing required 'id' parameter in NewgroundsAPI.AddCustomLink(id:Number, link_name:String)");
} else if (!stat_name) {
SendError("Missing required 'link_name' parameter in NewgroundsAPI.AddCustomLink(id:Number, link_name:String)");
} else {
custom_links[stat_name] = CUSTOM_STATS + stat_id;
SendMessage((("Created custom link " + stat_id) + ": ") + stat_name);
}
}
static function loadMySite() {
SendLink(AUTHOR_SITE);
}
static function loadNewgrounds(special) {
if (special) {
var _local1 = {page:special};
}
SendLink(NEWGROUNDS, _local1);
}
static function logCustomEvent(event_name) {
if (!event_name) {
SendError("Missing required 'event_name' parameter in NewgroundsAPI.logCustomEvent(event_name:String)");
} else if (!custom_events[event_name]) {
SendError("Attempted to log undefined custom event: " + event_name);
} else {
SendEvent(custom_events[event_name]);
}
}
static function loadCustomLink(link_name) {
if (!link_name) {
SendError("Missing required 'link_name' parameter in NewgroundsAPI.loadCustomLink(link_name:String)");
} else if (!custom_links[link_name]) {
SendError("Attempted to open undefined custom link: " + link_name);
} else {
SendLink(custom_links[link_name]);
}
}
static function getAdURL() {
return(movie_options.ad_url);
}
static function getMovieURL() {
if (movie_options.movie_url) {
return(movie_options.movie_url);
}
return("Newgrounds.com");
}
static function getNewVersionURL() {
return((((((GATEWAY_URL + "?&id=") + tracker_id) + "&host=") + escape(host)) + "&stat=") + NEW_VERSION);
}
static function SendEvent(id) {
SendStat(id, false);
}
static function SendLink(id, extra) {
SendStat(id, true, extra);
}
static function ReadGatewayData(params) {
for (var _local2 in params) {
params[_local2] = unescape(params[_local2]);
movie_options[_local2] = params[_local2];
}
if (params.settings_loaded) {
SendMessage("You have successfully connected to the Newgrounds API gateway!");
SendMessage(("Movie Identified as '" + movie_options.movie_name) + "'");
if (movie_options.message) {
SendMessage(movie_options.message);
}
if (movie_options.ad_url) {
SendMessage("Your movie has been approved to run Flash Ads");
onAdsApproved(movie_options.ad_url);
}
if (movie_options.movie_version and (movie_options.movie_version.toString() != version.toString())) {
SendMessage("WARNING: The movie version configured in your API settings does not match this movie's version!");
onNewVersionAvailable(movie_options.movie_version, getMovieURL(), getNewVersionURL());
}
if (movie_options.deny_host) {
SendMessage("You have blocked 'localHost' in your API settings.");
SendMessage("If you wish to test your movie you will need to remove this block.");
onDenyHost(host, getMovieURL(), getNewVersionURL());
}
if (movie_options.request_portal_url == 1) {
var _local4 = (((GATEWAY_URL + "?&id=") + tracker_id) + "&portal_url=") + escape(_url);
var _local3 = new XML();
_local3.ignoreWhite = true;
_local3.load(_local4);
}
} else if (!movie_options.settings_loaded) {
SendError("Could not establish connection to the API gateway.");
}
}
static function SendStat(stat_id, open_in_browser, extra) {
if (!tracker_id) {
SendError("API calls cannot be made without a valid movie id.");
SendError("Did you remember to add the \"NewgroundsAPI.connectMovie()\" code?");
} else {
var _local7 = (((((GATEWAY_URL + "?&id=") + tracker_id) + "&host=") + escape(host)) + "&stat=") + stat_id;
for (var _local9 in extra) {
_local7 = _local7 + ((("&" + escape(_local9)) + "=") + escape(extra[_local9]));
}
trace(_local7);
if (debug) {
_local7 = _local7 + "&debug=1";
}
if (open_in_browser) {
getURL (_local7, "_blank");
} else {
var _local10 = new XML();
_local10.ignoreWhite = true;
_local10.onLoad = function (success) {
var _local6 = new Object();
var _local3 = 0;
while (_local3 < this.firstChild.childNodes.length) {
var _local4 = this.firstChild.childNodes[_local3];
var _local5 = _local4.nodeName;
var _local2 = _local4.attributes.value;
if (_local2 == Number(_local2)) {
_local2 = Number(_local2);
}
_local6[_local5] = _local2;
_local3++;
}
NewgroundsAPI.ReadGatewayData(_local6);
};
_local10.load(_local7);
}
}
}
static function SendError(msg) {
trace("[NEWGROUNDS API ERROR] :: " + msg);
}
static function SendMessage(msg) {
trace("[NEWGROUNDS API] :: " + msg);
}
static function InitTextFormats() {
if (!error_format) {
error_format = new TextFormat();
error_format.font = "Arial Black";
error_format.size = 48;
error_format.color = 16711680 /* 0xFF0000 */;
}
if (!header_format) {
header_format = new TextFormat();
header_format.font = "Arial Black";
header_format.size = 24;
header_format.color = 16777215 /* 0xFFFFFF */;
}
if (!normal_format) {
normal_format = new TextFormat();
normal_format.font = "Arial";
normal_format.bold = true;
normal_format.size = 12;
normal_format.color = 16777215 /* 0xFFFFFF */;
}
if (!link_format) {
link_format = new TextFormat();
link_format.color = 16776960 /* 0xFFFF00 */;
link_format.underline = true;
}
}
static function onNewVersionAvailable(version, movie_url, redirect_url) {
InitTextFormats();
var _local2 = new Object();
_local2.x = Stage.width / 2;
_local2.y = Stage.height / 2;
_root.createEmptyMovieClip("NGAPI_new_version_overlay", _root.getNextHighestDepth());
_root.NGAPI_new_version_overlay.lineStyle(1, 0, 100);
_root.NGAPI_new_version_overlay.beginFill(0, 70);
_root.NGAPI_new_version_overlay.moveTo(-10, -10);
_root.NGAPI_new_version_overlay.lineTo(-10, 1000);
_root.NGAPI_new_version_overlay.lineTo(1000, 1000);
_root.NGAPI_new_version_overlay.lineTo(1000, -10);
_root.NGAPI_new_version_overlay.lineTo(-10, -10);
_root.NGAPI_new_version_overlay.endFill();
_root.NGAPI_new_version_overlay.lineStyle(10, 0, 100);
_root.NGAPI_new_version_overlay.beginFill(51);
_root.NGAPI_new_version_overlay.moveTo(_local2.x - 240, _local2.y - 120);
_root.NGAPI_new_version_overlay.lineTo(_local2.x + 240, _local2.y - 120);
_root.NGAPI_new_version_overlay.lineTo(_local2.x + 240, _local2.y + 80);
_root.NGAPI_new_version_overlay.lineTo(_local2.x - 240, _local2.y + 80);
_root.NGAPI_new_version_overlay.lineTo(_local2.x - 240, _local2.y - 120);
_root.NGAPI_new_version_overlay.endFill();
_root.NGAPI_new_version_overlay.createEmptyMovieClip("exit", 1000);
_root.NGAPI_new_version_overlay.exit.lineStyle(2, 39423, 100);
_root.NGAPI_new_version_overlay.exit.beginFill(0, 50);
_root.NGAPI_new_version_overlay.exit.moveTo(_local2.x + 210, _local2.y - 110);
_root.NGAPI_new_version_overlay.exit.lineTo(_local2.x + 230, _local2.y - 110);
_root.NGAPI_new_version_overlay.exit.lineTo(_local2.x + 230, _local2.y - 90);
_root.NGAPI_new_version_overlay.exit.lineTo(_local2.x + 210, _local2.y - 90);
_root.NGAPI_new_version_overlay.exit.lineTo(_local2.x + 210, _local2.y - 110);
_root.NGAPI_new_version_overlay.exit.endFill();
_root.NGAPI_new_version_overlay.exit.moveTo(_local2.x + 214, _local2.y - 106);
_root.NGAPI_new_version_overlay.exit.lineTo(_local2.x + 226, _local2.y - 94);
_root.NGAPI_new_version_overlay.exit.moveTo(_local2.x + 226, _local2.y - 106);
_root.NGAPI_new_version_overlay.exit.lineTo(_local2.x + 214, _local2.y - 94);
_root.NGAPI_new_version_overlay.exit.onMouseUp = function () {
if (_root.NGAPI_new_version_overlay.exit.hitTest(_root._xmouse, _root._ymouse)) {
_root.NGAPI_new_version_overlay.removeMovieClip();
}
};
var _local3 = (("Version " + version) + " is now available at:") + newline;
var _local5 = _local3.length;
_local3 = _local3 + movie_url;
var _local4 = _local3.length;
_root.NGAPI_new_version_overlay.createTextField("mouseblocker", 99, -10, -10, 1000, 1000);
_root.NGAPI_new_version_overlay.createTextField("newversion", 100, _local2.x - 210, _local2.y - 90, 400, 80);
_root.NGAPI_new_version_overlay.newversion.text = "New Version Available!";
_root.NGAPI_new_version_overlay.newversion.setTextFormat(header_format);
_root.NGAPI_new_version_overlay.createTextField("message", 101, (Stage.width - 400) / 2, Stage.height / 2, 400, 40);
_root.NGAPI_new_version_overlay.message.text = _local3;
_root.NGAPI_new_version_overlay.message.multiline = true;
_root.NGAPI_new_version_overlay.message.wordWrap = true;
_root.NGAPI_new_version_overlay.message.html = true;
_root.NGAPI_new_version_overlay.message.setTextFormat(normal_format);
link_format.url = redirect_url;
_root.NGAPI_new_version_overlay.message.setTextFormat(_local5, _local4, link_format);
}
static function onDenyHost(hostname, movie_url, redirect_url) {
InitTextFormats();
_root.createEmptyMovieClip("NGAPI_deny_host_overlay", _root.getNextHighestDepth());
_root.NGAPI_deny_host_overlay.lineStyle(20, 0, 100);
_root.NGAPI_deny_host_overlay.beginFill(6684672);
_root.NGAPI_deny_host_overlay.moveTo(0, 0);
_root.NGAPI_deny_host_overlay.lineTo(Stage.width, 0);
_root.NGAPI_deny_host_overlay.lineTo(Stage.width, Stage.height);
_root.NGAPI_deny_host_overlay.lineTo(0, Stage.height);
_root.NGAPI_deny_host_overlay.lineTo(0, 0);
_root.NGAPI_deny_host_overlay.endFill();
var _local2 = ("This movie has not been approved for use on " + hostname) + ".";
_local2 = _local2 + "\r\rFor an aproved copy, please visit:\r";
var _local4 = _local2.length;
_local2 = _local2 + movie_url;
var _local3 = _local2.length;
_root.NGAPI_deny_host_overlay.createTextField("mousekill", 100, 0, 0, Stage.width, Stage.height);
_root.NGAPI_deny_host_overlay.createTextField("error", 101, (Stage.width - 400) / 2, (Stage.height / 2) - 100, 400, 200);
_root.NGAPI_deny_host_overlay.error.text = "ERROR!";
_root.NGAPI_deny_host_overlay.error.setTextFormat(error_format);
_root.NGAPI_deny_host_overlay.createTextField("message", 102, (Stage.width - 400) / 2, Stage.height / 2, 400, 200);
_root.NGAPI_deny_host_overlay.message.text = _local2;
_root.NGAPI_deny_host_overlay.message.multiline = true;
_root.NGAPI_deny_host_overlay.message.wordWrap = true;
_root.NGAPI_deny_host_overlay.message.html = true;
_root.NGAPI_deny_host_overlay.message.setTextFormat(normal_format);
link_format.url = redirect_url;
_root.NGAPI_deny_host_overlay.message.setTextFormat(_local4, _local3, link_format);
}
static function isInstalled() {
return(true);
}
static function onAdsApproved(ad_url) {
}
static var movie_options = new Object();
static var custom_events = new Object();
static var custom_links = new Object();
static var MOVIE_VIEWS = 1;
static var AUTHOR_SITE = 2;
static var NEWGROUNDS = 3;
static var NEW_VERSION = 4;
static var CUSTOM_STATS = 50;
static var GATEWAY_URL = "http://www.ngads.com/gateway.php";
}
Symbol 82 MovieClip [__Packages.com.newgrounds.Bridge] Frame 0
class com.newgrounds.Bridge
{
var widget_id, receiver, transmitter;
function Bridge (id) {
widget_id = id;
receiver = new LocalConnection();
transmitter = new LocalConnection();
receiver.receiveEvent = function (event, params) {
com.newgrounds.API.callListener(event, params.success, params.data);
};
receiver.connect("rec_" + widget_id);
}
function sendError(command, params) {
if (widget_id) {
transmitter.send(widget_id, "sendError", command, params);
}
}
function sendEvent(event, params) {
if (widget_id) {
transmitter.send(widget_id, "sendEvent", event, params);
}
}
function sendCommand(command, params) {
if (widget_id) {
transmitter.send(widget_id, "sendCommand", command, params);
}
}
}
Symbol 80 MovieClip [__Packages.com.newgrounds.APIError] Frame 0
class com.newgrounds.APIError
{
var message, name, alias;
function APIError (error, msg) {
if (Number(error).toString() == String(error)) {
error = Number(error);
} else if (error_codes[String(error)]) {
error = error_codes[String(error)];
} else {
error = 0;
}
code = error;
message = msg;
name = error_names[error];
alias = aliases[error];
}
static function init_codes() {
var _local2 = new Object();
var _local1 = 0;
while (_local1 < aliases.length) {
_local2[aliases[_local1]] = _local1;
_local1++;
}
return(_local2);
}
static function init_names() {
var _local5 = new Array();
var _local3 = 0;
while (_local3 < aliases.length) {
var _local2 = aliases[_local3].toLowerCase().split("_");
var _local1 = 0;
while (_local1 < _local2.length) {
_local2[_local1] = _local2[_local1].substr(0, 1).toUpperCase() + _local2[_local1].substr(1, _local2[_local1].length);
for (var _local4 in always_caps) {
if (_local2[_local1].toUpperCase() == always_caps[_local4]) {
_local2[_local1] = _local2[_local1].toUpperCase();
}
}
_local1++;
}
_local5[_local3] = _local2.join(" ");
_local3++;
}
return(_local5);
}
function isError() {
return(true);
}
static var aliases = new Array("UNKNOWN_ERROR", "INVALID_API_ID", "MISSING_PARAM", "INVALID_STAT_ID", "INVALID_COMMAND_ID", "FLASH_ADS_NOT_APPROVED", "PERMISSION_DENIED", "IDENTIFICATION_REQUIRED", "INVALID_EMAIL_ADDRESS", "BANNED_USER", "SESSION_EXPIRED", "INVALID_SCORE", "INVALID_MEDAL", "INVALID_SAVE_GROUP", "FILE_NOT_FOUND", "SITE_ID_REQUIRED", "UPLOAD_IN_PROGRESS", "USER_CANCELLED", "CONFIRM_REQUEST", "ILLEGAL_REQUEST", "CONNECTION_FAILED", "QUERY_INCOMPLETE", "SAVE_FILE_ERROR", "INVALID_VALUE", "SERVER_ERROR");
static var always_caps = new Array("API", "URL", "ID");
static var error_codes = init_codes();
static var error_names = init_names();
var code = 0;
}
Symbol 81 MovieClip [__Packages.com.newgrounds.API] Frame 0
class com.newgrounds.API
{
static var version, user_email, movie_id, debug, session_id, connected, tracker_id, timeout, encryption_key, user_id, user_name, host, ad_url, eventDispatcher, last_command, ad_swf_url;
function API () {
}
static function setMovieVersion(v) {
if (v) {
version = String(v);
}
}
static function setUserEmail(e) {
user_email = e;
}
static function setFakeSession(fake) {
fake_session = fake;
}
static function setPreload(p) {
preload = p;
}
static function getPercentLoaded() {
var _local2;
if (preload && (preload_items > 0)) {
_local2 = 80;
var _local4 = Math.round((preload_items_loaded / preload_items) * 20);
var _local3 = Math.round((_root.getBytesLoaded() / _root.getBytesTotal()) * _local2) + _local4;
} else {
_local2 = 100;
var _local3 = Math.round((_root.getBytesLoaded() / _root.getBytesTotal()) * _local2);
}
return(_local3);
}
static function reportNewAsset() {
if (preload) {
preload_items++;
}
}
static function reportAssetLoaded() {
if (preload) {
preload_items_loaded++;
}
}
static function populateMedals(medal_list) {
if (medals === null) {
medals = new Array();
var _local2 = 0;
while (_local2 < medal_list.length) {
var _local1 = medal_list[_local2];
medals.push(new com.newgrounds.Medal(_local1.medal_id, _local1.medal_name, _local1.medal_value, _local1.medal_difficulty, _local1.medal_unlocked, _local1.medal_icon));
_local2++;
}
}
}
static function populateSaveGroups(save_group_list, file_path) {
com.newgrounds.SaveFile.setFilePath(file_path);
save_groups = new Array();
var _local6 = 0;
while (_local6 < save_group_list.length) {
var _local2 = save_group_list[_local6];
var _local5 = new com.newgrounds.SaveGroup(_local2.group_id, _local2.group_name, _local2.group_type);
var _local4 = 0;
while (_local4 < _local2.keys.length) {
var _local3 = _local2.keys[_local4];
_local5.addKey(_local3.id, _local3.name, _local3.type);
_local4++;
}
_local4 = 0;
while (_local4 < _local2.ratings.length) {
var _local1 = _local2.ratings[_local4];
_local5.addRating(_local1.id, _local1.name, _local1.min, _local1.max, _local1.float);
_local4++;
}
save_groups.push(_local5);
_local6++;
}
}
static function populateScoreBoards(score_boards) {
scoreboards = new Array();
var _local1 = 0;
while (_local1 < score_boards.length) {
scoreboards.push(new com.newgrounds.ScoreBoard(score_boards[_local1].id, score_boards[_local1].name));
_local1++;
}
}
static function getOfficialVersionURL() {
var _local1 = (((GATEWAY_URL + "?tracker_id=") + movie_id) + "&command_id=loadOfficalVersion&seed=") + Math.random();
if (debug) {
_local1 = _local1 + "&debug=1";
}
return(_local1);
}
static function hasUserSession() {
if (session_id && (publisher_id)) {
return(true);
}
if (_root.NewgroundsAPI_PublisherID && (_root.NewgroundsAPI_SessionID)) {
return(true);
}
return(false);
}
static function isNewgrounds() {
return(((publisher_id == 1) || (_root.NewgroundsAPI_PublisherID == 1)) || (getHost().toLowerCase().indexOf("ungrounded.net") > -1));
}
static function hasPublisher() {
return(publisher_id || (_root.NewgroundsAPI_PublisherID));
}
static function hasUserEmail() {
if (user_email) {
return(true);
}
return(false);
}
static function isConnected() {
return(connected);
}
static function getTrackerID() {
return(tracker_id);
}
static function connectionTimeOut() {
reportAssetLoaded();
clearInterval(timeout);
callListener(com.newgrounds.APIEvent.MOVIE_CONNECTED, false, new com.newgrounds.APIError("CONNECTION_FAILED", "Connection to API gateway timed out."));
}
static function connectMovie(m_id, encrypt_key, debug_mode) {
if (connected) {
return(undefined);
}
sendMessage("Connecting to the Newgrounds API Gateway...");
var _local2 = function () {
com.newgrounds.API.connectionTimeOut();
};
timeout = setInterval(_local2, 10000, null);
if (!m_id) {
fatalError("API.connectMovie() - missing required movie_id parameter", "connectMovie");
}
movie_id = String(m_id);
tracker_id = Number(movie_id.substring(0, movie_id.indexOf(":")));
encryption_key = encrypt_key;
debug = debug_mode;
if (_root.NewgroundsAPI_PublisherID) {
publisher_id = _root.NewgroundsAPI_PublisherID;
if (_root.NewgroundsAPI_SessionID) {
session_id = _root.NewgroundsAPI_SessionID;
}
} else if (fake_session) {
publisher_id = 1;
session_id = "D3bu64p1U53R";
user_id = 10;
user_name = "API-Debugger";
} else {
if (debug) {
publisher_id = 1;
}
session_id = null;
user_id = 0;
user_name = "Guest";
}
if (_root.NewgroundsAPI_UserName) {
user_name = _root.NewgroundsAPI_UserName;
}
if (_root.NewgroundsAPI_UserID) {
user_id = _root.NewgroundsAPI_UserID;
}
reportNewAsset();
connected = true;
sendCommand("connectMovie", {host:getHost(), movie_version:version});
}
static function getHost() {
if (!host) {
var _local1 = _url;
if ((_local1.indexOf("http://") > -1) or (_local1.indexOf("https://") > -1)) {
host = _local1.split("/")[2].toLowerCase();
} else {
host = LOCAL_HOST;
}
}
return(host);
}
static function isPublishedHost() {
for (var _local1 in PREVIEW_HOSTS) {
if (getHost() == PREVIEW_HOSTS[_local1]) {
return(false);
}
}
return(true);
}
static function loadNewgrounds() {
sendCommand("loadNewgrounds", {host:getHost()}, true);
}
static function loadMySite() {
sendCommand("loadMySite", {host:getHost()}, true);
}
static function loadCustomLink(link) {
sendCommand("loadCustomLink", {host:getHost(), link:link}, true);
}
static function logCustomEvent(event) {
sendCommand("logCustomEvent", {host:getHost(), event:event});
}
static function getScoreBoard(board) {
for (var _local2 in scoreboards) {
if ((typeof(board) == "string") && (scoreboards[_local2].name == board)) {
return(scoreboards[_local2]);
}
if ((typeof(board) == "number") && (scoreboards[_local2].id == board)) {
return(scoreboards[_local2]);
}
}
}
static function postScore(board, value, get_best) {
if ((!board) or (value == undefined)) {
sendError({command_id:"postScore"}, new com.newgrounds.APIError("MISSING_PARAM", "missing required parameter(s)"));
return(undefined);
}
sendSecureCommand("postScore", {user_name:user_name, board:board, value:value, get_best:get_best, publisher_id:publisher_id});
}
static function loadScores(board) {
var _local3 = "loadScores";
if (!board.__get__id()) {
sendError({command_id:_local3}, new com.newgrounds.APIError("MISSING_PARAM", "missing required ScoreBoard instance"));
return(undefined);
}
if (!hasUserSession()) {
callListener(com.newgrounds.APIEvent.SCORES_LOADED, false, new com.newgrounds.APIError("SITE_ID_REQUIRED", ("Host '" + getHost()) + "' does not have high scores enabled"));
return(undefined);
}
var _local1 = {};
_local1.publisher_id = publisher_id;
_local1.period = board.period;
_local1.board = board.id;
_local1.num_results = board.num_results;
_local1.page = board.page;
sendCommand(_local3, _local1);
}
static function unlockMedal(medal, x, y) {
if (!medal) {
sendError({command_id:"unlockMedal"}, new com.newgrounds.APIError("MISSING_PARAM", "missing required medal name"));
return(undefined);
}
if (typeof(medal) != "object") {
medal = getMedal(medal);
}
callListener(com.newgrounds.APIEvent.UNLOCK_MEDAL, true, {medal:medal, x:x, y:y});
if (hasUserSession() or debug) {
sendMessage(("Attempting to unlock '" + medal.getName()) + "'");
var _local3 = new Object();
_local3.medal_id = medal.getID();
sendSecureCommand("unlockMedal", _local3);
} else {
sendMessage(("Unlocking '" + medal.getName()) + "'");
medal.setUnlocked(true);
var _local2 = loadLocal("medals_unlocked");
if (!_local2) {
_local2 = new Object();
}
_local2[medal.getID()] = true;
saveLocal("medals_unlocked", _local2);
}
}
static function loadMedals() {
if (medals) {
callListener(com.newgrounds.APIEvent.MEDALS_LOADED, true, {medals:medals});
return(undefined);
}
var _local1 = new Object();
if (hasUserSession()) {
_local1.publisher_id = publisher_id;
_local1.user_id = user_id;
}
sendCommand("getMedals", _local1);
}
static function getMedals() {
return(medals);
}
static function getMedal(identifier) {
for (var _local3 in medals) {
var _local1 = medals[_local3];
if ((typeof(identifier) == "string") && (_local1.getName() == identifier)) {
return(_local1);
}
if (_local1.getID() == identifier) {
return(_local1);
}
}
sendWarning(("Could not find the medal '" + identifier) + "'");
}
static function saveLocal(save_id, save_data, size_allocation) {
if (!sharedObjects[save_id]) {
sharedObjects[save_id] = SharedObject.getLocal((("ng_ap_secure_" + movie_id) + "_") + save_id);
}
sharedObjects[save_id].data[save_id] = encodeData(save_data);
sharedObjects[save_id].flush();
}
static function loadLocal(save_id) {
if (!sharedObjects[save_id]) {
sharedObjects[save_id] = SharedObject.getLocal((("ng_ap_secure_" + movie_id) + "_") + save_id);
}
sharedObjects[save_id].flush();
echo((("sharedobject " + save_id) + " is: ") + sharedObjects[save_id].data[save_id]);
if (sharedObjects[save_id].data[save_id]) {
echo("decoded: " + decodeData(sharedObjects[save_id].data[save_id]));
return(decodeData(sharedObjects[save_id].data[save_id]));
}
return(null);
}
static function encodeData(data) {
return(compressHex(com.newgrounds.encoders.RC4.encrypt(com.newgrounds.encoders.JSON.encode(data), encryption_key)));
}
static function decodeData(base) {
return(com.newgrounds.encoders.JSON.decode(com.newgrounds.encoders.RC4.decrypt(uncompressHex(base), encryption_key)));
}
static function compressHex(hex_value) {
var _local6 = hex_value.length % 6;
var _local4 = "";
var _local5 = new com.newgrounds.encoders.BaseN(compression_radix);
var _local1 = 0;
while (_local1 < hex_value.length) {
var _local2 = Number("0x" + hex_value.substr(_local1, 6));
_local4 = _local4 + _local5.encode(_local2, 4);
_local1 = _local1 + 6;
}
return(_local6 + _local4);
}
static function uncompressHex(base_value) {
var _local9 = Number(base_value.charAt(0));
var _local7 = "";
var _local3;
var _local8 = new com.newgrounds.encoders.BaseN(compression_radix);
var _local2 = 1;
while (_local2 < base_value.length) {
var _local6 = base_value.substr(_local2, 4);
var _local5 = _local8.decode(_local6);
var _local1 = dec2hex(_local5);
if ((_local2 + 4) < base_value.length) {
_local3 = 6;
} else {
_local3 = _local9;
}
while (_local1.length < _local3) {
_local1 = "0" + _local1;
}
_local7 = _local7 + _local1;
_local2 = _local2 + 4;
}
return(_local7);
}
static function dec2hex(dec) {
var _local4 = "0123456789ABCDEF";
var _local3 = "";
while (dec > 0) {
var _local2 = dec % 16;
_local3 = _local4.charAt(_local2) + _local3;
dec = (dec - _local2) / 16;
}
return(_local3);
}
static function getSaveGroup(group) {
if ((save_groups == null) || (save_groups.length < 1)) {
return(null);
}
var _local1 = 0;
while (_local1 <= save_groups.length) {
if ((typeof(group) == "number") or (Number(group).toString() == String(group))) {
if (save_groups[_local1].getID() == Number(group)) {
return(save_groups[_local1]);
}
} else if (typeof(group) == "string") {
if (save_groups[_local1].getName().toLowerCase() == group.toLowerCase()) {
return(save_groups[_local1]);
}
}
_local1++;
}
return(null);
}
static function lookupSaveFiles(save_group) {
var _local1 = "lookupSaveFiles";
var _local2 = {publisher_id:publisher_id, group_id:save_group.getID(), query:com.newgrounds.encoders.JSON.encode(save_group.getQuery(true))};
sendCommand(_local1, _local2);
}
static function newSaveFile(group) {
var _local1 = getSaveGroup(group);
if (_local1) {
return(_local1.newFile());
}
var _local2 = new com.newgrounds.APIError("INVALID_SAVE_GROUP", ("'" + group) + "' is not a valid save group.");
sendError({command_id:"newSaveFile"}, _local2);
}
static function newSaveQuery(group) {
var _local1 = getSaveGroup(group);
if (_local1) {
return(_local1.newQuery());
}
var _local2 = new com.newgrounds.APIError("INVALID_SAVE_GROUP", ("'" + group) + "' is not a valid save group.");
sendError({command_id:"newSaveQuery"}, _local2);
}
static function checkFilePrivs(file) {
if (user_id) {
var _local1 = user_id;
} else {
var _local1 = 0;
}
var _local2 = {group:file.getGroup().getID(), filename:file.getName(), user_id:_local1, publisher_id:publisher_id};
sendCommand("checkFilePrivs", _local2);
}
static function saveFile(file, overwrite) {
var _local1;
_local1 = {group:file.getGroup().getID(), filename:file.getName(), description:file.getDescription(), draft:file.__get__draft(), user_name:user_name};
if (overwrite) {
_local1.overwrite = overwrite;
}
if (file.getDuplicateID()) {
_local1.save_id = file.getDuplicateID();
}
if (file.getKeys().length > 0) {
_local1.keys = file.getKeys();
}
var _local3;
_local3 = {file:file.getRawContents()};
if (file.getThumbnailImageScan()) {
_local3.thumbnail = file.getThumbnailImageScan();
}
save_file = file;
sendSecureCommand("saveFile", _local1, null, _local3);
}
static function rateSaveFile(file, rating, vote) {
var _local1 = {group:file.getGroup().getID(), save_id:file.getID(), rating_id:rating.rating_id, vote:vote, user_id:user_id};
sendSecureCommand("rateSaveFile", _local1);
}
static function getConfirmation(command_name, event, msg, target, confirm, cancel) {
var _local1 = new com.newgrounds.APIError("CONFIRM_REQUEST", msg);
_local1.confirm = function () {
target[confirm]();
};
_local1.cancel = function () {
target[cancel]();
};
_local1.command = command_name;
callListener(event, false, _local1);
}
static function doEvent(e) {
switch (e.command_id) {
case "connectMovie" :
clearInterval(timeout);
sendMessage("You have successfully connected to the Newgrounds API Gateway");
sendMessage(("Movie identified as \"" + e.movie_name) + "\"");
callListener(com.newgrounds.APIEvent.MOVIE_CONNECTED, e.success, {movie_name:e.movie_name});
var _local6 = false;
if (e.ad_status === -1) {
var _local10 = "This movie was not approved to run Flash Ads.";
sendWarning(_local10);
sendWarning(("visit " + AD_TERMS_URL) + " to view our approval guidelines");
if (!e.ad_url) {
callListener(com.newgrounds.APIEvent.ADS_APPROVED, false, new com.newgrounds.APIError("FLASH_ADS_NOT_APPROVED", _local10));
} else {
_local6 = true;
}
} else if (e.ad_status === 0) {
var _local10 = "Flash Ads are currently awaiting approval.";
sendNotice(_local10);
if (!e.ad_url) {
callListener(com.newgrounds.APIEvent.ADS_APPROVED, false, new com.newgrounds.APIError("FLASH_ADS_NOT_APPROVED", _local10));
} else {
_local6 = true;
}
}
if (e.ad_url) {
ad_url = unescape(e.ad_url);
if (!_local6) {
sendMessage("This movie has been approved to run Flash Ads!");
}
callListener(com.newgrounds.APIEvent.ADS_APPROVED, true);
}
if (e.deny_host) {
var _local10 = getHost() + " does not have permission to run this movie!";
sendWarning(_local10);
sendWarning("\tUpdate your API configuration to unblock " + getHost());
callListener(com.newgrounds.APIEvent.HOST_BLOCKED, true, {movie_url:unescape(e.movie_url), redirect_url:getOfficialVersionURL()});
} else if (e.movie_version) {
sendWarning("According to your API Configuration, this version is out of date.");
if (version) {
sendWarning("\tThe this movie is version " + version);
}
sendWarning("\tThe most current version is " + e.movie_version);
callListener(com.newgrounds.APIEvent.NEW_VERSION_AVAILABLE, true, {movie_version:e.movie_version, movie_url:unescape(e.movie_url), redirect_url:getOfficialVersionURL()});
}
if (e.request_portal_url) {
sendCommand("setPortalID", {portal_url:_url});
}
if (preload) {
reportNewAsset();
var _local7 = {};
if (hasUserSession()) {
_local7.publisher_id = publisher_id;
_local7.user_id = user_id;
}
sendCommand("preloadSettings", _local7);
}
reportAssetLoaded();
break;
case "preloadSettings" :
if (e.medals) {
populateMedals(e.medals);
if ((!hasUserSession()) and (!debug)) {
echo("checking for sharedobject medals...");
var _local3 = loadLocal("medals_unlocked");
if (_local3) {
for (var _local5 in _local3) {
var _local5 = Number(_local5);
if (_local3[_local5]) {
var _local2 = getMedal(_local5);
echo("now unlocking " + _local2.getName());
_local2.setUnlocked(true);
}
}
}
}
}
if (e.save_groups) {
populateSaveGroups(e.save_groups, e.save_file_path);
}
if (e.score_boards) {
populateScoreBoards(e.score_boards);
}
reportAssetLoaded();
break;
case "logCustomEvent" :
if (e.success) {
sendMessage(("Event '" + e.event) + "' was logged.");
}
callListener(com.newgrounds.APIEvent.EVENT_LOGGED, e.success, {event:e.event});
break;
case "postScore" :
var _local8;
if (e.success) {
var _local4 = "User";
if (user_email) {
_local4 = user_email;
} else if (user_name) {
_local4 = user_name;
}
var _local17 = getScoreBoard(e.board);
sendMessage(((((_local4 + " posted ") + e.value) + " to '") + _local17.name) + "'");
_local8 = {board:_local17, value:e.value, username:_local4};
}
callListener(com.newgrounds.APIEvent.SCORE_POSTED, e.success, _local8);
break;
case "loadScores" :
_local8 = new Object();
var _local17 = getScoreBoard(e.board);
if (_local17.exists()) {
_local17.setScores(e.scores, e.period, e.page, e.num_results);
}
callListener(com.newgrounds.APIEvent.SCORES_LOADED, e.success, {board:_local17});
break;
case "unlockMedal" :
var _local21 = getMedal(e.medal_name);
_local21.setUnlocked(true);
sendMessage(("Successfuly unlocked '" + _local21.getName()) + "'");
callListener(com.newgrounds.APIEvent.MEDAL_UNLOCKED, e.success, {medal:_local21});
break;
case "getMedals" :
populateMedals(e.medals);
callListener(com.newgrounds.APIEvent.MEDALS_LOADED, e.success, {medals:medals});
break;
case "lookupSaveFiles" :
var _local11 = getSaveGroup(e.group_id).getQuery();
_local11.onExecuted(e.files);
break;
case "rateSaveFile" :
var _local15 = getSaveGroup(e.group_id);
var _local13 = _local15.getFile(e.save_id);
if (e.already_voted) {
var _local24 = new com.newgrounds.APIError("PERMISSION_DENIED", "You have already voted on this item today");
callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, false, {error:_local24, file:_local13});
return(undefined);
}
if (e.success) {
var _local9 = _local13.onVoted(e);
callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, e.success, {rating:_local9, file:_local13});
} else {
callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, e.success, {file:_local13});
}
break;
case "saveFile" :
if (save_file) {
if (!save_file.exists()) {
save_file.setID(e.save_id, true);
}
save_file.onSaved(e);
callListener(com.newgrounds.APIEvent.FILE_SAVED, e.success, {file:save_file});
}
save_file = null;
break;
case "checkFilePrivs" :
_local8 = {file:save_file, filename:e.filename, group:e.group, exists:e.exists, can_write:e.can_write};
if (e.duplicate_id) {
_local8.duplicate_id = e.duplicate_id;
}
callListener(com.newgrounds.APIEvent.FILE_PRIVS_LOADED, e.success, _local8);
}
}
static function getDispatcher() {
if (!eventDispatcher) {
eventDispatcher = new com.newgrounds.APIEventDispatcher();
}
return(eventDispatcher);
}
static function hasEventListener(event) {
return(getDispatcher().hasEventListener(event));
}
static function addEventListener(event, listener, target) {
echo(("Adding a listener for '" + event) + "'");
getDispatcher().addEventListener(event, listener, target);
}
static function removeEventListener(event, target) {
getDispatcher().removeEventListener(event, target);
}
static function callListener(event, success, data, target) {
echo("Fired Event: " + event);
var _local1 = new com.newgrounds.APIEvent(event, success, target, data);
if (data.isError()) {
_local1.error = data;
} else {
_local1.data = data;
}
getDispatcher().dispatchEvent(_local1);
if ((event == com.newgrounds.APIEvent.MOVIE_CONNECTED) && (!success)) {
connected = false;
}
bridge.sendEvent(event, {success:success, data:data});
}
static function sendError(c, e) {
switch (c.command_id) {
case "connectMovie" :
clearInterval(timeout);
callListener(com.newgrounds.APIEvent.MOVIE_CONNECTED, false, {error:e, response:c});
break;
case "saveFile" :
callListener(com.newgrounds.APIEvent.FILE_SAVED, false, {error:e, file:save_file, response:c});
save_file = null;
}
bridge.sendError(com.newgrounds.APIEvent.API_ERROR, {command:c.command_id, error:e});
trace((((((("[Newgrounds API ERROR] :: " + c.command_id) + "() - ") + e.name) + ":") + newline) + "\t\t\t\t") + e.message);
}
static function sendWarning(m, c) {
if (c) {
m = m + ((("\r[Newgrounds API WARNING] :: \tSee " + COMMANDS_WIKI_URL) + c.toLowerCase()) + " for additional information.");
}
trace("[Newgrounds API WARNING] :: " + m);
}
static function sendNotice(m, c) {
if (c) {
m = m + ((("\r[Newgrounds API NOTICE] :: \tSee " + COMMANDS_WIKI_URL) + c.toLowerCase()) + " for additional information.");
}
trace("[Newgrounds API NOTICE] :: " + m);
}
static function fatalError(m, c) {
if (c) {
m = m + ((("\r\tSee " + COMMANDS_WIKI_URL) + c.toLowerCase()) + " for additional information.");
}
throw (((("***ERROR*** frame=" + _root._currentframe) + ", class=API") + newline) + newline) + m;
}
static function sendSecureCommand(command, secure_params, unsecure_params, files) {
if (((!debug) && (!hasUserSession())) && (!hasUserEmail())) {
sendError({command_id:command}, new com.newgrounds.APIError("IDENTIFICATION_REQUIRED", ("You must be logged in, or provide an e-mail address using 'API.setUserEmail(\"name@domain.com\");' to use " + command) + "()."));
return(undefined);
}
if (!command) {
fatalError("Missing command", "sendSecureCommand");
}
if (!secure_params) {
fatalError("Missing secure_params", "sendSecureCommand");
}
if (!unsecure_params) {
unsecure_params = new Object();
}
var _local2 = "";
var _local1 = 0;
while (_local1 < 16) {
_local2 = _local2 + compression_radix.charAt(Math.floor(Math.random() * compression_radix.length));
_local1++;
}
if (debug && (!fake_session)) {
secure_params.session_id = "";
} else {
secure_params.session_id = session_id;
}
secure_params.as_version = 2;
secure_params.user_email = user_email;
secure_params.publisher_id = publisher_id;
secure_params.seed = _local2;
secure_params.command_id = command;
var _local8 = com.newgrounds.encoders.JSON.encode(secure_params);
var _local9 = com.newgrounds.encoders.MD5.calculate(_local2);
var _local6 = com.newgrounds.encoders.RC4.encrypt(_local8, encryption_key);
var _local7 = _local9 + _local6;
unsecure_params.secure = compressHex(_local7);
sendCommand("securePacket", unsecure_params, false, files);
}
static function sendCommand(command, params, open_browser, files) {
if ((!connected) and (command != "connectMovie")) {
var _local12 = (("API." + command) + "() - API.connectMovie() must be called before this command can be called") + newline;
fatalError(_local12, "connectMovie");
}
if (open_browser) {
var _local2 = new Object();
} else {
var _local2 = new LoadVars();
}
_local2.command_id = command;
_local2.tracker_id = movie_id;
if (debug) {
_local2.debug = debug;
}
if (params) {
for (var _local9 in params) {
_local2[_local9] = params[_local9];
}
}
if (files) {
for (var _local9 in files) {
_local2[_local9] = files[_local9];
}
}
if (open_browser) {
var _local7 = (GATEWAY_URL + "?seed=") + Math.random();
for (var _local9 in _local2) {
_local7 = _local7 + ((("&" + escape(_local9)) + "=") + escape(_local2[_local9]));
}
getURL (_local7, "_blank");
_local2.removeMovieClip();
} else {
var _local10 = new LoadVars();
_local10.remember_command_id = _local2.command_id;
_local10.onData = function (data) {
com.newgrounds.API.echo(("INPUT: \r" + data) + newline);
if (data) {
var _local2 = com.newgrounds.encoders.JSON.decode(data);
} else {
var _local2 = {success:false};
}
if (!_local2.success) {
if ((!_local2.error_code) && (!_local2.error_msg)) {
_local2.error_code = "CONNECTION_FAILED";
_local2.error_msg = "Could not contact the API Gateway";
_local2.command_id = this.remember_command_id;
}
var _local4 = new com.newgrounds.APIError(_local2.error_code, _local2.error_msg);
com.newgrounds.API.sendError(_local2, _local4);
} else {
com.newgrounds.API.doEvent(_local2);
}
};
var _local6 = new Array();
for (var _local8 in _local2) {
_local6.push((_local8 + "=") + escape(_local2[_local8]));
}
echo((("POST " + GATEWAY_URL) + "?") + _local6.join("&"));
_local2.sendAndLoad((GATEWAY_URL + "?seed=") + Math.random(), _local10, "POST");
last_command = _local2.command_id;
}
}
static function renderAd(target) {
if (ad_swf_url) {
target.background = target.createEmptyMovieClip("background", 100);
target.background.beginFill(0);
target.background.moveTo(0, 0);
target.background.lineTo(300, 0);
target.background.lineTo(300, 250);
target.background.lineTo(0, 250);
target.background.lineTo(0, 0);
target.background.endFill();
target.mask = target.createEmptyMovieClip("mask", 101);
target.mask.beginFill(0);
target.mask.moveTo(0, 0);
target.mask.lineTo(300, 0);
target.mask.lineTo(300, 250);
target.mask.lineTo(0, 250);
target.mask.lineTo(0, 0);
target.mask.endFill();
target.clip = target.createEmptyMovieClip("clip", 102);
target.clip.ad = target.clip.createEmptyMovieClip("ad", 100);
target.clip.setMask(target.mask);
loadMovie (ad_swf_url, target.clip.ad);
callListener(com.newgrounds.APIEvent.AD_ATTACHED, true, null, target);
} else {
callListener(com.newgrounds.APIEvent.AD_ATTACHED, false, new com.newgrounds.APIError("FLASH_ADS_NOT_APPROVED", "Unable to render ad"));
}
}
static function attachFlashAd(target) {
System.security.allowDomain("http://server.cpmstar.com");
System.security.allowDomain("http://www.cpmstar.com");
System.security.allowDomain("https://server.cpmstar.com");
System.security.allowDomain("https://www.cpmstar.com");
System.security.allowInsecureDomain("http://server.cpmstar.com");
System.security.allowInsecureDomain("http://www.cpmstar.com");
System.security.allowInsecureDomain("https://server.cpmstar.com");
System.security.allowInsecureDomain("https://www.cpmstar.com");
if (checkAdFlood()) {
ad_swf_url = null;
} else if (checkAdCache()) {
reportNewAsset();
var _local1 = new LoadVars();
_local1.onData = function (data) {
if (data) {
com.newgrounds.API.ad_swf_url = data;
} else {
com.newgrounds.API.ad_swf_url = null;
}
com.newgrounds.API.reportAssetLoaded();
com.newgrounds.API.renderAd(target);
};
if (ad_url.indexOf("?") > -1) {
_local1.load((ad_url + "&random=") + Math.random());
} else {
_local1.load((ad_url + "?random=") + Math.random());
}
if (!ad_warning) {
ad_warning = true;
sendMessage("You may get a security sandbox violation from this ad. This is nothing to worry about!");
}
} else if (ad_swf_url) {
renderAd(target);
}
}
static function checkAdFlood() {
if (!ad_url) {
return(false);
}
var _local2 = new Date();
var _local1 = _local2.getTime();
if (_local1 >= ad_flood) {
if ((_local1 - ad_flood) > 1000) {
ad_flood = _local1 + 1000;
} else {
ad_flood = _local1;
sendWarning("This movie is attempting to load multiple ads at too high of a frequency; you may have a bad preloader loop.");
return(true);
}
}
return(false);
}
static function checkAdCache() {
if (!ad_url) {
return(false);
}
var _local2 = new Date();
var _local1 = _local2.getTime();
if (_local1 >= ad_url_cache) {
ad_url_cache = _local1 + 300000;
return(true);
}
return(false);
}
static function sendMessage(m, r) {
var _local1 = "[Newgrounds API] :: " + m;
if (r) {
return(_local1);
}
trace(_local1);
}
static function echo(m) {
if (do_echo) {
trace(m);
}
}
static var do_echo = false;
static var GATEWAY_URL = "http://www.ngads.com/gateway_v2.php";
static var AD_TERMS_URL = "http://www.newgrounds.com/wiki/flashads/terms/";
static var COMMANDS_WIKI_URL = "http://www.newgrounds.com/wiki/flashapi/commands/";
static var LOCAL_HOST = "localhost";
static var PREVIEW_HOSTS = new Array(LOCAL_HOST);
static var ad_url_cache = 0;
static var ad_flood = 0;
static var ad_warning = false;
static var save_file = null;
static var publisher_id = 1;
static var fake_session = false;
static var medals = null;
static var scoreboards = new Array();
static var save_groups = null;
static var compression_radix = "/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X";
static var errors = com.newgrounds.APIError.init_codes();
static var sharedObjects = new Object();
static var bridge = new com.newgrounds.Bridge(_root.NewgroundsAPI_SandboxID);
static var preload = false;
static var preload_items = 0;
static var preload_items_loaded = 0;
}
Symbol 83 MovieClip [__Packages.com.newgrounds.SaveFile] Frame 0
class com.newgrounds.SaveFile
{
static var file_path;
var _group, _filename, _file_id, _contents, _thumbnail, _thumbnail_url, raw, img, _file_url, _description, scanner;
function SaveFile (_group) {
this._group = _group;
_filename = null;
_file_id = null;
_contents = null;
_thumbnail = null;
_thumbnail_url = null;
raw = null;
img = null;
_draft = false;
_keys = new Array();
_ratings = new Array();
_file_url = null;
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.FILE_PRIVS_LOADED, checkPrivs, this);
}
static function setFilePath(path) {
file_path = path + "/";
}
function get name() {
return(_filename);
}
function set name(s) {
_filename = s;
//return(name);
}
function get id() {
return(_file_id);
}
function get description() {
return(_description);
}
function set description(s) {
_description = s;
//return(description);
}
function get contents() {
return(_contents);
}
function set contents(o) {
_contents = o;
//return(contents);
}
function get thumbnailUrl() {
return(_thumbnail_url);
}
function set thumbnailUrl(s) {
_thumbnail_url = s;
//return(thumbnailUrl);
}
function get fileUrl() {
return(_file_url);
}
function set fileUrl(s) {
_file_url = s;
//return(fileUrl);
}
function get draft() {
return(_draft);
}
function set draft(d) {
_draft = d;
//return(draft);
}
function get group() {
return(_group);
}
function get groupId() {
return(_group.getID());
}
function get groupName() {
return(_group.getName());
}
function get groupType() {
return(_group.getType());
}
function get locked() {
return(_locked);
}
function get shared() {
return(_isShared());
}
function get isPrivate() {
return(_isPrivate());
}
function get isPublic() {
return(_isPublic());
}
function get approved() {
return(_isApproved());
}
function get keys() {
return(_keys);
}
function get ratings() {
return(_ratings);
}
function getID() {
return(_file_id);
}
function exists() {
return(!(_file_id === null));
}
function getGroup() {
return(_group);
}
function getName() {
return(_filename);
}
function _isPrivate() {
return(status == STATUS.PRIVATE);
}
function _isShared() {
return(status > STATUS.PRIVATE);
}
function _isApproved() {
return(status > STATUS.UNAPPROVED);
}
function _isPublic() {
if (_isPrivate()) {
return(false);
}
if (_group.isType("SYSTEM") or _group.isType("PRIVATE")) {
return(false);
}
if (_group.isType("PUBLIC")) {
return(true);
}
if (_isApproved()) {
return(true);
}
return(false);
}
function isLocked() {
return(_locked);
}
function getDescription() {
return(_description);
}
function getShared() {
return(_draft);
}
function getThumbnailImageScan() {
return(img);
}
function getRawContents() {
return(raw);
}
function getDuplicateID() {
return(duplicate_id);
}
function getKeys() {
return(_keys);
}
function getKey(key) {
var _local3 = getGroup().getKey(key);
var _local2 = 0;
while (_local2 < _keys.length) {
if (_keys[_local2].id == _local3.key_id) {
return(_keys[_local2].value);
}
_local2++;
}
}
function getRating(rating) {
var _local2 = getGroup().getRating(rating);
if (_ratings[_local2.rating_id]) {
return(_ratings[_local2.rating_id]);
}
return(null);
}
function overwriteAllowed() {
return(overwrite);
}
function getFileURL() {
return(file_path + _file_url);
}
function overwriteExisting() {
overwrite = true;
}
function setID(id, add_to_group) {
_file_id = id;
if (add_to_group) {
getGroup().addFile(this);
}
}
function setName(filename, locked) {
_filename = filename;
_locked = locked;
}
function setDescription(description) {
_description = description;
}
function setDraft(draft) {
_draft = draft;
}
function setContents(_contents) {
this._contents = _contents;
}
function setThumbnail(thumb) {
if (thumb) {
_thumbnail = thumb;
} else {
_thumbnail = null;
}
}
function setThumbnailURL(url) {
_thumbnail_url = url;
}
function setFileURL(url) {
_file_url = url;
}
function setPermissions(status, _locked) {
this._locked = _locked;
this.status = status;
}
function setKey(key, val) {
var _local4 = _group.getKeyID(key);
var _local2;
if (!_local4) {
onError(((("'" + key) + "' is not a valid key for the '") + _group.getKeyType(key, true)) + "' save _group", "setKey", "INVALID_VALUE", true);
return(undefined);
}
if ((!_group.keyValueIsValid(key, val)) && (!(val === null))) {
onError((("'" + val) + "' is not a valid ") + _group.getKeyType(key, true), "setKey", "INVALID_VALUE", true);
return(undefined);
}
switch (_group.getKeyType(key, true)) {
case "string" :
if (val) {
val = String(val);
} else {
val = undefined;
}
break;
default :
val = Number(val);
}
var _local5 = {id:_local4, value:val};
for (var _local7 in _keys) {
_local2 = _keys[_local7];
if (_local2.id == _local4) {
_keys[_local7] = _local5;
return(undefined);
}
}
_keys.push(_local5);
}
function setRating(rating, votes, score) {
var _local2 = getGroup().getRating(rating);
if (!votes) {
votes = 0;
}
if (!score) {
score = 0;
}
if (!_local2.is_float) {
score = Math.round(Number(score));
}
_ratings[_local2.rating_id] = {id:Number(_local2.rating_id), name:_local2.rating_name, votes:Number(votes), score:Number(score)};
return(_ratings[_local2.rating_id]);
}
function clearBuffer() {
_contents = null;
raw = null;
img = null;
scanner = null;
overwrite = false;
duplicate_id = null;
}
function onError(msg, funct, code) {
busy = false;
if (!code) {
code = "SAVE_FILE_ERROR";
}
if (!funct) {
funct = "unknown_function";
}
var _local3 = ("getSaveGroup('" + _group.getName()) + "')";
if (exists()) {
funct = (((_local3 + ".getFile('") + getName()) + "').") + funct;
} else {
funct = (_local3 + ".getNewFile().") + funct;
}
var _local5 = new com.newgrounds.APIError(code, msg);
com.newgrounds.API.sendError({command_id:funct}, _local5);
}
function onSaved(p) {
busy = false;
if (!exists()) {
setID(p.save_id, true);
}
setName(p.filename);
setFileURL(p.file_url);
if (p.thumbnail) {
_thumbnail_url = p.thumbnail;
}
}
function onVoted(p) {
trace("ONVOTED WAS CALLED");
return(setRating(p.rating_id, p.votes, p.score));
}
function sendRating(rating, vote) {
var _local6 = null;
if (!com.newgrounds.API.hasUserSession()) {
_local6 = new com.newgrounds.APIError("PERMISSION_DENIED", "You must be logged in to vote on save files");
}
var _local2 = _group.getRating(rating);
if (!_local2) {
_local6 = new com.newgrounds.APIError("PERMISSION_DENIED", ((("'" + rating) + "' is not a valid rating for the '") + _group.getName()) + "' save group");
}
if (_local2.voted === true) {
_local6 = new com.newgrounds.APIError("PERMISSION_DENIED", "You have already voted on this item today");
}
if ((vote < _local2.min_value) or (vote > _local2.max_value)) {
_local6 = new com.newgrounds.APIError("PERMISSION_DENIED", (((("'" + rating) + "' votes must be between ") + _local2.min_value) + " and ") + _local2.max_value);
}
if (_local6) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, false, {error:_local6, file:this});
return(undefined);
}
_local2.voted = true;
com.newgrounds.API.rateSaveFile(this, _local2, vote);
}
function replace() {
if (busy) {
onError("Another file is currently being saved, please try again later", "replace");
return(undefined);
}
overwriteExisting();
save();
}
function save() {
if (busy) {
onError("Another file is currently being saved, please try again later", "save", "UPLOAD_IN_PROGRESS");
return(undefined);
}
busy = true;
if (isLocked()) {
onError("This file is _locked and cannot be overwritten.", "save", "PERMISSION_DENIED");
return(undefined);
}
if (!_filename) {
onError("Please provide a name for your file.", "save", "MISSING_PARAM");
return(undefined);
}
if (!_contents) {
onError("The file is empty.", "save", "MISSING_PARAM");
return(undefined);
}
img = null;
com.newgrounds.API.checkFilePrivs(this);
}
function checkPrivs(e) {
if (e.data.file.id != id) {
return(undefined);
}
if (e.success) {
if (e.data.can_write) {
can_write = e.data.can_write;
if (e.data.duplicate_id) {
duplicate_id = e.data.duplicate_id;
}
if (e.data.exists && (!overwriteAllowed())) {
onError(("You already have a file named '" + getName()) + "'", "save", "CONFIRM_REQUEST");
} else {
startFile();
}
} else {
onError("This file is _locked and cannot be overwritten", "save", "PERMISSION_DENIED");
}
} else {
onError("There was a problem looking up your file's details. The server may be down.", "save", "UNKNOWN_ERROR");
}
}
function startFile() {
if (can_write) {
if (_thumbnail) {
scanner = new com.newgrounds.encoders.ImageScanner(_thumbnail);
scanner.setCallback(this, "encodeFile");
scanner.startScan(100, 100, true);
} else {
encodeFile();
}
} else {
onError("You do not have permission to save this file.", "save", "PERMISSION_DENIED");
}
}
function encodeFile(img) {
this.img = img;
raw = com.newgrounds.encoders.SerialXML.encode(_contents).toString();
compressFile();
}
function compressFile() {
com.newgrounds.encoders.LZW2.compress(raw, function (s, p) {
p.file.onCompressed(s);
}, {file:this});
}
function onCompressed(compressed) {
raw = escape(compressed);
writeFile();
}
function getProgress() {
}
function writeFile() {
getGroup().getQuery().clearCache();
com.newgrounds.API.saveFile(this);
clearBuffer();
}
function getContents() {
if (_contents) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, true, {file:this});
return(undefined);
}
if (!getFileURL()) {
var _local4 = new com.newgrounds.APIError("FILE_NOT_FOUND", "Attempted to load contents of an unsaved file.");
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, false, {file:this, error:_local4});
return(undefined);
}
var _local2 = new LoadVars();
_local2.target = this;
var target = this;
_local2.onData = function (encoded) {
target.onLoaded(encoded);
};
_local2.load(getFileURL());
}
function onLoaded(encoded) {
if (encoded == undefined) {
var _local3 = new com.newgrounds.APIError("FILE_NOT_FOUND", "We could not find the contents for this file. It may have been deleted.");
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, false, {file:this, error:_local3});
return(undefined);
}
com.newgrounds.encoders.LZW.setXMLSafe(true);
_contents = com.newgrounds.encoders.SerialXML.decode(com.newgrounds.encoders.LZW.decompress(encoded));
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, true, {file:this});
}
static var busy = false;
var can_write = false;
var _draft = false;
var status = 0;
var _locked = false;
var overwrite = false;
var duplicate_id = null;
var _keys = null;
var _ratings = null;
static var STATUS = {PRIVATE:1, PUBLIC:2, UNAPPROVED:3, APPROVED:4};
}
Symbol 84 MovieClip [__Packages.com.newgrounds.SaveGroup] Frame 0
class com.newgrounds.SaveGroup
{
var group_name, group_id, group_type, query, ratings, keys, files;
function SaveGroup (group_id, group_name, group_type) {
this.group_name = group_name;
this.group_id = group_id;
this.group_type = group_type;
query = new com.newgrounds.SaveGroupQuery(this);
ratings = new Array();
keys = new Array();
files = new Array();
}
function get id() {
return(group_id);
}
function get name() {
return(group_name);
}
function get type() {
return(group_type);
}
function addFile(file) {
var _local2 = 0;
while (_local2 < files.length) {
if (files[_local2].getID() == file.getID()) {
files[_local2] = file;
return(undefined);
}
_local2++;
}
files.push(file);
}
function getFile(file_id) {
trace("getting the file " + file_id);
var _local2 = 0;
while (_local2 < files.length) {
trace((((("Looking up " + file_id) + " :: ") + files[_local2].getID()) + " || ") + files[_local2].getName());
if (isNumeric(file_id) and (files[_local2].getID() == Number(file_id))) {
return(files[_local2]);
}
if (files[_local2].getName() == file_id) {
return(files[_local2]);
}
_local2++;
}
return(null);
}
function addRating(rating_id, rating_name, min_value, max_value, is_float) {
var _local3 = {rating_id:rating_id, rating_name:rating_name, min_value:min_value, max_value:max_value, is_float:is_float};
if (!getRatingID(rating_name)) {
ratings.push(_local3);
}
}
function getRating(rating_id) {
var _local2 = 0;
while (_local2 < ratings.length) {
if (isNumeric(rating_id) and (ratings[_local2].rating_id == rating_id)) {
return(ratings[_local2]);
}
if (ratings[_local2].rating_name == rating_id) {
return(ratings[_local2]);
}
_local2++;
}
return(null);
}
function getRatingID(rating_id) {
var _local2 = getRating(rating_id);
if (_local2) {
return(_local2.rating_id);
}
return(null);
}
function getRatingName(rating_id) {
var _local2 = getRating(rating_id);
if (_local2) {
return(_local2.rating_name);
}
return(null);
}
function addKey(key_id, key_name, key_type) {
var _local2 = {key_id:key_id, key_name:key_name, key_type:key_type};
if (!getKey(key_name)) {
keys.push(_local2);
}
}
function getKey(key_id) {
var _local2 = 0;
while (_local2 < keys.length) {
if (isNumeric(key_id) and (keys[_local2].key_id == key_id)) {
return(keys[_local2]);
}
if (keys[_local2].key_name == key_id) {
return(keys[_local2]);
}
_local2++;
}
return(null);
}
function getKeyType(key_name, as_string) {
var _local2 = getKey(key_name);
if (_local2) {
return((as_string ? (KEY_TYPES[_local2.key_type]) : (_local2.key_type)));
}
return(null);
}
function getKeyID(key_id) {
var _local2 = getKey(key_id);
if (_local2) {
return(_local2.key_id);
}
return(null);
}
function getKeyName(key_id) {
var _local2 = getKey(key_id);
if (_local2) {
return(_local2.key_name);
}
return(null);
}
function keyValueIsValid(key, value) {
var _local4;
var _local7;
if ((typeof(value) == "number") or (Number(value).toString() == String(value))) {
value = Number(value);
_local4 = ((Math.round(value) === value) ? "integer" : "float");
} else {
_local4 = typeof(value);
if (_local4 == "string") {
var _local6 = "01234567890.-";
var _local5 = true;
var _local2 = 0;
while (_local2 < value.length) {
if (_local6.indexOf(value.charAt(_local2)) < 0) {
_local5 = false;
break;
}
_local2++;
}
if (_local5) {
value = Number(value);
_local4 = "float";
}
}
}
switch (getKeyType(key, true)) {
case "integer" :
_local7 = (_local4 == "integer") or (_local4 == "boolean");
break;
case "float" :
_local7 = ((_local4 == "float") or (_local4 == "integer")) or (_local4 == "boolean");
break;
case "string" :
_local7 = (((_local4 == "string") or (_local4 == "float")) or (_local4 == "integer")) or (_local4 == "boolean");
break;
case "boolean" :
_local7 = (((_local4 == "boolean") or (value == 1)) or (value == 0)) or (value == "");
break;
default :
_local7 = false;
}
return(_local7);
}
function isType(type) {
return(group_type == TYPES[type.toUpperCase()]);
}
function getID() {
return(group_id);
}
function getName() {
return(group_name);
}
function getType() {
return(group_type);
}
function isSystem() {
return(undefined);
}
function getQuery(as_object) {
if (as_object) {
return(query.toObject());
}
return(query);
}
function newQuery() {
query.reset();
return(query);
}
function clearQuery() {
query.reset();
}
function newFile() {
var _local2 = new com.newgrounds.SaveFile(this);
return(_local2);
}
static function isNumeric(value) {
return((typeof(value) == "number") or (Number(value).toString() == String(value)));
}
static var KEY_TYPES = [null, "float", "integer", "string", "boolean"];
static var TYPES = {SYSTEM:0, PRIVATE:1, PUBLIC:2, MODERATED:3};
}
Symbol 87 MovieClip [__Packages.com.newgrounds.SaveGroupQuery] Frame 0
class com.newgrounds.SaveGroupQuery
{
var _group, _num_results, _pages, _page, _randomize_results, file_conditions, key_conditions, rating_conditions, sort_conditions, lookup_keys, lookup_ratings, _group_by;
function SaveGroupQuery (_group) {
this._group = _group;
reset();
}
function get group() {
return(_group);
}
function get groupId() {
return(_group.getID());
}
function get resultsPerPage() {
return(_num_results);
}
function set resultsPerPage(n) {
_num_results = n;
//return(resultsPerPage);
}
function get pages() {
return(_pages);
}
function get page() {
return(_page);
}
function set page(n) {
_page = n;
//return(page);
}
function get randomize() {
return(_randomize_results);
}
function set randomize(b) {
_randomize_results = b;
//return(randomize);
}
function get results() {
return(_results);
}
function clearCache() {
_results = [];
}
function reset() {
file_conditions = new Array();
key_conditions = new Array();
rating_conditions = new Array();
sort_conditions = new Array();
lookup_keys = new Object();
lookup_ratings = new Object();
_num_results = 20;
_page = 1;
_randomize_results = false;
_group_by = new Array();
clearCache();
}
function getGroup() {
return(_group);
}
function getGroupID() {
return(_group.getID());
}
function isRandomized() {
return(_randomize_results);
}
function toObject() {
var _local2;
var _local11 = {page:_page, num_results:_num_results};
if (_randomize_results) {
_local11.randomize = 1;
}
if (!com.newgrounds.ValidationTools.isEmpty(file_conditions)) {
var _local12 = [];
_local2 = 0;
while (_local2 < file_conditions.length) {
var _local6 = file_conditions[_local2];
_local12.push({field:file_fields[_local6.field.toUpperCase()].id, operator:_local6.operator, value:_local6.value});
_local2++;
}
_local11.file_conditions = _local12;
}
if (!com.newgrounds.ValidationTools.isEmpty(key_conditions)) {
_local11.key_conditions = key_conditions;
}
if (!com.newgrounds.ValidationTools.isEmpty(rating_conditions)) {
_local11.rating_conditions = rating_conditions;
}
if (!com.newgrounds.ValidationTools.isEmpty(sort_conditions)) {
var _local14 = [];
_local2 = 0;
while (_local2 < sort_conditions.length) {
var _local3 = sort_conditions[_local2];
if (_local3.table == TABLE_FILES) {
var _local8 = file_fields[_local3.field.toUpperCase()].id;
} else {
var _local8 = _local3.field;
}
var _local5 = {field:_local8, table:_local3.table};
if (_local3.desc) {
_local5.desc = 1;
}
if (_local3.extra) {
_local5.extra = _local3.extra;
}
_local14.push(_local5);
_local2++;
}
_local11.sort_conditions = _local14;
}
if (!com.newgrounds.ValidationTools.isEmpty(lookup_keys)) {
var _local15 = [];
for (_local2 in lookup_keys) {
_local15.push(_local2);
}
_local11.lookup_keys = _local15;
}
if (!com.newgrounds.ValidationTools.isEmpty(lookup_ratings)) {
var _local13 = [];
for (_local2 in lookup_ratings) {
_local13.push(_local2);
}
_local11.lookup_ratings = _local13;
}
if (!com.newgrounds.ValidationTools.isEmpty(_group_by)) {
var _local16 = [];
_local2 = 0;
while (_local2 < _group_by.length) {
var _local4 = _group_by[_local2];
if (_local4.table == TABLE_FILES) {
var _local8 = file_fields[_local4.field.toUpperCase()].id;
} else {
var _local8 = _local4.field;
}
_local16.push({field:_local8, table:_local4.table});
_local2++;
}
_local11.group_by = _local16;
}
return(_local11);
}
function toString() {
var _local9;
var _local2;
var _local11 = [];
_local9 = "Lookup:\r";
var _local14 = [];
for (var _local6 in file_fields) {
_local14.push(" " + _local6);
_local2 = true;
}
_local9 = _local9 + _local14.join(newline);
_local11.push(_local9);
_local9 = "";
_local2 = false;
var _local16 = [];
for (var _local6 in lookup_keys) {
_local16.push((" KEY '" + _group.getKeyName(_local6)) + "'");
_local2 = true;
}
if (_local2) {
_local9 = _local9 + _local16.join(newline);
_local11.push(_local9);
}
_local9 = "";
_local2 = false;
var _local15 = [];
for (var _local6 in lookup_ratings) {
_local15.push((" RATING '" + _group.getRatingName(_local6)) + "'");
_local2 = true;
}
if (_local2) {
_local9 = _local9 + _local15.join(newline);
_local11.push(_local9);
}
_local9 = "Where:\r";
_local2 = false;
var _local8 = [];
var _local6 = 0;
while (_local6 < file_conditions.length) {
var _local7 = file_conditions[_local6];
var _local10 = ((((" " + _local7.field) + " ") + _local7.operator) + " ") + _local7.value;
_local8.push(_local10);
_local2 = true;
_local6++;
}
_local6 = 0;
while (_local6 < key_conditions.length) {
var _local7 = key_conditions[_local6];
var _local10 = ((((" KEY '" + _group.getKeyName(_local7.key_id)) + "' ") + _local7.operator) + " ") + _local7.value;
_local8.push(_local10);
_local2 = true;
_local6++;
}
_local6 = 0;
while (_local6 < rating_conditions.length) {
var _local7 = rating_conditions[_local6];
var _local10 = ((((" RATING '" + _group.getRatingName(_local7.rating_id)) + "' ") + _local7.operator) + " ") + _local7.value;
_local8.push(_local10);
_local2 = true;
_local6++;
}
if (_local2) {
_local9 = _local9 + _local8.join(newline);
_local11.push(_local9);
}
_local9 = "Group By:\r";
_local2 = false;
var _local13 = [];
_local6 = 0;
while (_local6 < _group_by.length) {
var _local4 = _group_by[_local6];
var _local5;
if (_local4.table == TABLE_KEYS) {
_local5 = (" KEY '" + _group.getKeyName(_local4.field)) + "'";
} else if (_local4.table == TABLE_RATINGS) {
_local5 = (" RATING '" + _group.getRatingName(_local4.field)) + "'";
} else {
_local5 = " " + _local4.field;
}
_local13.push(_local5);
_local2 = true;
_local6++;
}
if (_local2) {
_local9 = _local9 + _local13.join(newline);
_local11.push(_local9);
}
_local9 = "Order By:\r";
_local2 = false;
var _local12 = [];
if (isRandomized()) {
_local12.push(" RANDOM");
_local2 = true;
}
_local6 = 0;
while (_local6 < sort_conditions.length) {
var _local3 = sort_conditions[_local6];
if (_local3.table == TABLE_KEYS) {
var _local5 = (" KEY '" + _group.getKeyName(_local3.field)) + "'";
} else if (_local3.table == TABLE_RATINGS) {
var _local5 = ((" RATING '" + _group.getRatingName(_local3.field)) + "' ") + ((_local3.extra == "votes") ? "VOTES" : "SCORE");
} else {
var _local5 = " " + _local3.field;
}
var _local5 = _local5 + (_local3.desc ? " (DESCENDING)" : "");
_local12.push(_local5);
_local2 = true;
_local6++;
}
if (_local2) {
_local9 = _local9 + _local12.join(newline);
_local11.push(_local9);
}
_local11.push("Page:\r " + _page);
_local11.push("Results Per Page:\r " + _num_results);
return(_local11.join(newline));
}
function setResultsPerPage(r) {
_num_results = r;
clearCache();
}
function setPage(p) {
_page = p;
clearCache();
}
function setRandomize(bool) {
_randomize_results = true;
}
function includeKey(key) {
if (!_group.getKeyID(key)) {
trace(((("[SaveGroupQuery Error] :: '" + key) + "' is not a valid key for the '") + _group.__get__name()) + "' group.");
return(undefined);
}
lookup_keys[_group.getKeyID(key)] = 1;
clearCache();
}
function includeRating(rating) {
if (!_group.getRatingID(rating)) {
trace(((("[SaveGroupQuery Error] :: '" + rating) + "' is not a valid rating for the '") + _group.__get__name()) + "' group.");
return(undefined);
}
lookup_ratings[_group.getRatingID(rating)] = 1;
clearCache();
}
function groupBy(field) {
addGroupItem(TABLE_FILES, field);
}
function groupByKey(key) {
if (!_group.getKeyID(key)) {
error(((("'" + key) + "' is not a valid key for the '") + _group.getName()) + "' _group");
return(undefined);
}
addGroupItem(TABLE_KEYS, _group.getKeyID(key));
}
function groupByRating(rating) {
if (!_group.getRatingID(rating)) {
error(((("'" + rating) + "' is not a valid rating for the '") + _group.getName()) + "' _group");
return(undefined);
}
addGroupItem(TABLE_RATINGS, _group.getRatingID(rating));
}
function addGroupItem(table, field) {
_group_by.push({table:table, field:field});
clearCache();
}
function excludeKey(key) {
delete lookup_keys[_group.getKeyID(key)];
clearCache();
}
function excludeRating(rating) {
delete lookup_ratings[_group.getRatingID(rating)];
clearCache();
}
function addCondition(field, operator, value) {
if (((field == "FILE_STATUS") && (typeof(value) == "string")) && (!(com.newgrounds.SaveFile.STATUS[value.toUpperCase()] === undefined))) {
value = com.newgrounds.SaveFile.STATUS[value.toUpperCase()];
}
if (operator == "==") {
operator = "=";
}
if ((!validateOperator(operator)) or (!validateValue(field, value))) {
return(undefined);
}
file_conditions.push({field:field, operator:operator, value:value});
clearCache();
}
function addKeyCondition(key, operator, value) {
if (!_group.getKeyID(key)) {
error(((("'" + key) + "' is not a valid key for the '") + _group.getName()) + "' save _group");
} else if ((!validateOperator(operator)) or (!validateKeyValue(key, value))) {
return(undefined);
}
key_conditions.push({key_id:_group.getKeyID(key), operator:operator, value:value});
clearCache();
}
function addRatingCondition(rating, operator, value, column) {
if (!column) {
column = "SCORE";
}
if (!_group.getRatingID(rating)) {
error(((("'" + rating) + "' is not a valid rating for the '") + _group.getName()) + "' save _group");
} else {
if (!validateOperator(operator)) {
return(undefined);
}
if (!com.newgrounds.ValidationTools.isNumber(value)) {
error(("Expected numeric value for rating '" + rating) + "'");
return(undefined);
}
}
if (!rating_columns[column]) {
var _local2 = [];
for (var _local3 in rating_columns) {
_local2.push(_local3);
}
error((("Invalid rating column '" + column) + "'. Valid columns are ") + _local2.join(", "));
return(undefined);
}
rating_conditions.push({rating_id:_group.getRatingID(rating), operator:operator, value:value, column:rating_columns[column]});
clearCache();
}
function sortOn(field, order) {
if (!file_fields[field]) {
var _local2 = [];
for (var _local3 in file_fields) {
_local2.push(_local3);
}
error((("'" + field) + "' is not a valid sort field. Valid fields are: ") + _local2.join(", "));
return(undefined);
}
addSortCondition(TABLE_FILES, field, order);
}
function sortOnKey(key, order) {
if (!_group.getKeyID(key)) {
error(((("'" + key) + "' is not a valid key for the '") + _group.getName()) + "' _group");
return(undefined);
}
addSortCondition(TABLE_KEYS, _group.getKeyID(key), order);
}
function sortOnRating(rating, order, column) {
if (!_group.getRatingID(rating)) {
error(((("'" + rating) + "' is not a valid rating for the '") + _group.getName()) + "' _group");
return(undefined);
}
if (!column) {
column = "score";
}
addSortCondition(TABLE_RATINGS, _group.getRatingID(rating), order, column);
}
function sortOnRatingScore(rating, order) {
sortOnRating(rating, order, "score");
}
function sortOnRatingVotes(rating, order) {
sortOnRating(rating, order, "votes");
}
function addSortCondition(table, field, order, extra) {
var _local7;
if (((!order) or (order == "")) or (order.toUpperCase() == "ASC")) {
_local7 = false;
} else if (order.toUpperCase() == "DESC") {
_local7 = true;
} else {
error(("'" + order) + "' is not a valid sort order!");
return(undefined);
}
var _local3 = {table:table, field:field, desc:_local7};
if (extra) {
_local3.extra = extra;
}
sort_conditions.push(_local3);
clearCache();
}
function onExecuted(results) {
_results = [];
var _local6 = 0;
while (_local6 < results.length) {
var _local2 = results[_local6];
var _local3 = new com.newgrounds.SaveFile(_group);
_local3.setName(_local2.filename);
_local3.setID(_local2.save_id);
_local3.setDescription(_local2.description);
_local3.setThumbnailURL(_local2.thumb);
_local3.setFileURL(_local2.file);
_local3.setPermissions(_local2.status, _local2.locked);
var _local5 = 0;
while (_local5 < _local2.keys.length) {
_local3.setKey(_local2.keys[_local5].id, _local2.keys[_local5].value);
_local5++;
}
var _local4 = 0;
while (_local4 < _local2.ratings.length) {
_local3.setRating(_local2.ratings[_local4].id, _local2.ratings[_local4].votes, _local2.ratings[_local4].score);
_local4++;
}
getGroup().addFile(_local3);
_results.push(_local3);
_local6++;
}
callEventDispatcher();
}
function hasResults() {
return(_results && (_results.length > 0));
}
function callEventDispatcher() {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.QUERY_COMPLETE, true, {query:this});
}
function execute() {
if (hasResults() && (!isRandomized())) {
callEventDispatcher();
return(undefined);
}
com.newgrounds.API.lookupSaveFiles(_group);
}
function processResults(files) {
return(null);
}
function validateKeyValue(key, value) {
var _local3 = _group.getKeyType(key);
if (_local3) {
var _local2 = com.newgrounds.SaveGroup.KEY_TYPES[_local3];
if ((_local2 == "float") and com.newgrounds.ValidationTools.isFloat(value)) {
return(true);
}
if ((_local2 == "integer") and com.newgrounds.ValidationTools.isInteger(value)) {
return(true);
}
if ((_local2 == "string") and com.newgrounds.ValidationTools.isString(value)) {
return(true);
}
error(((("Expected type " + _local2) + " for key '") + key) + "'");
}
return(false);
}
function validateValue(field, value) {
if (file_fields[field]) {
if ((file_fields[field].type == "integer") and com.newgrounds.ValidationTools.isInteger(value)) {
return(true);
}
if ((file_fields[field].type == "float") and com.newgrounds.ValidationTools.isFloat(value)) {
return(true);
}
if ((file_fields[field].type == "string") and com.newgrounds.ValidationTools.isString(value)) {
return(true);
}
error(((("Expecting " + file_fields[field].type) + " value on '") + field) + "' condition");
} else {
var _local2 = [];
for (var _local4 in file_fields) {
_local2.push(_local4);
}
error((("'" + field) + "' is not a searchable field. Valid fields are: ") + _local2.join(", "));
}
return(false);
}
function validateOperator(operator) {
var _local2 = 0;
while (_local2 < valid_operators.length) {
if (operator == valid_operators[_local2]) {
return(true);
}
_local2++;
}
error((("'" + operator) + "' is not a valid lookup operation. Valid operations are: ") + valid_operators.join(", "));
return(false);
}
function error(msg) {
trace("[QUERY ERROR] :: " + msg);
}
static var TABLE_FILES = 1;
static var TABLE_KEYS = 2;
static var TABLE_RATINGS = 3;
var _results = [];
static var file_fields = {AUTHOR_ID:{id:1, field:"user_id", type:"integer"}, AUTHOR_NAME:{id:2, field:"user_name", type:"string"}, FILE_NAME:{id:3, field:"file_name", type:"string"}, CREATED_ON:{id:4, field:"created", type:"string"}, UPDATED_ON:{id:5, field:"last_update", type:"string"}, TOTAL_VIEWS:{id:6, field:"views", type:"integer"}, FILE_STATUS:{id:7, field:"status", type:"integer"}};
static var rating_columns = {TOTAL_VOTES:"votes", SCORE:"score"};
static var valid_operators = ["=", "<", ">", "!=", "<>", "<=", ">="];
}
Symbol 89 MovieClip [__Packages.com.newgrounds.encoders.ImageScanner] Frame 0
class com.newgrounds.encoders.ImageScanner
{
var image_source, source_width, source_height, sourceBitmap, callback_target, callback_function, hash, cube, basen, xpos, ypos, pixels, busy, canvas_width, canvas_height, resizedBitmap, copyBitmap, output, draw_interval, callback_interval;
function ImageScanner (the_source) {
if (the_source) {
image_source = the_source;
} else {
image_source = _root;
}
reset();
if (typeof(image_source) == "movieclip") {
if (image_source == _root) {
source_width = Stage.width;
source_height = Stage.height;
} else {
source_width = Math.floor(image_source._width);
source_height = Math.floor(image_source._height);
}
sourceBitmap = new flash.display.BitmapData(source_width, source_height, false, 4294967295);
sourceBitmap.draw(_root);
} else if (image_source.width) {
source_width = image_source.width;
source_height = image_source.height;
sourceBitmap = image_source;
} else {
error("You can only use BitMaptData and MovieClip objects to create images");
}
}
function setCallback(target, funct) {
if (target && (funct)) {
callback_target = target;
callback_function = funct;
}
}
function reset() {
callback_target = null;
callback_function = null;
debug.bad_pixels = 0;
hash = "0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ<>?:;-_=+()!&";
var _local3 = Math.pow(hash.length, 2);
trace("MAX COLORS: " + _local3);
var _local2 = Math.floor(Math.pow(_local3, 0.333333333333333)) - 1;
var _local4 = Math.pow(_local2, 3);
cube = _local2;
basen = new com.newgrounds.encoders.BaseN(hash);
xpos = 0;
ypos = 0;
pixels = 0;
busy = false;
}
function startScan(w, h, s) {
if (w) {
image_width = w;
}
if (h) {
image_height = h;
}
if (s != undefined) {
crop = s;
}
var _local7 = _root.getNextHighestDepth();
var _local6 = _root.createEmptyMovieClip("API_image_container_" + _local7, _local7);
var _local5 = _local6.createEmptyMovieClip("canvas", 100);
_local5.attachBitmap(sourceBitmap, 100);
if (crop) {
if ((image_width / source_width) > (image_height / source_height)) {
canvas_width = image_width;
canvas_height = Math.ceil(source_height * (image_width / source_width));
} else {
canvas_height = image_height;
canvas_width = Math.ceil(source_width * (image_height / source_height));
}
} else {
canvas_width = image_width;
canvas_height = image_height;
}
_local5._x = Math.round((image_width - canvas_width) / 2);
_local5._width = canvas_width;
_local5._height = canvas_height;
resizedBitmap = new flash.display.BitmapData(image_width, image_height, false, 4294967295);
resizedBitmap.draw(_local6);
_local6.removeMovieClip();
copyBitmap = new flash.display.BitmapData(image_width, image_height, false, 4294967295);
var _local3 = "" + image_width;
while (_local3.length < 3) {
_local3 = "0" + _local3;
}
var _local4 = "" + image_height;
while (_local4.length < 3) {
_local4 = "0" + _local4;
}
output = _local3 + _local4;
draw_interval = setInterval(this, "drawChunk", 10);
busy = false;
return(resizedBitmap);
}
function getBitmapData() {
return(copyBitmap);
}
function getBytesTotal() {
return((image_width * image_height) * 2);
}
function getBytesScanned() {
return(pixels * 2);
}
function getProgress() {
return(Math.round((getBytesScanned() / getBytesTotal()) * 100));
}
function drawChunk() {
if (!busy) {
busy = true;
var _local2 = 0;
while (_local2 < pixels_per_chunk) {
if (!nextPixel()) {
clearInterval(draw_interval);
callback_interval = setInterval(this, "doCallback", 25);
busy = true;
break;
}
_local2++;
}
busy = false;
}
}
function doCallback() {
busy = false;
clearInterval(callback_interval);
if (callback_target and callback_function) {
callback_target[callback_function](output);
} else {
onScanComplete(output);
}
}
function onScanComplete(packet) {
sendMessage(("packet size: " + output.length) + " bytes", "onScanComplete");
}
function nextPixel() {
var _local15 = xpos;
var _local14 = ypos;
var _local7 = resizedBitmap.getPixel(_local15, _local14);
var _local17 = (_local7 >> 16) & 255;
var _local20 = (_local7 >> 8) & 255;
var _local16 = (_local7 >> 0) & 255;
var _local11 = Math.round(((_local17 + 1) / 256) * cube);
var _local10 = Math.round(((_local20 + 1) / 256) * cube);
var _local13 = Math.round(((_local16 + 1) / 256) * cube);
var _local12 = (((_local11 * (cube + 1)) * (cube + 1)) + (_local10 * (cube + 1))) + _local13;
var _local6 = basen.encode(_local12, 2);
output = output + _local6;
if (_local6.length != 2) {
trace("bad pixel " + _local6);
}
var _local5 = basen.decode(_local6);
var _local18 = _local5;
var _local8 = _local5 % (cube + 1);
_local5 = (_local5 - _local8) / (cube + 1);
var _local9 = _local5 % (cube + 1);
var _local19 = (_local5 - _local9) / (cube + 1);
if (((_local13 != _local8) and (_local10 != _local9)) and (_local11 != _local10)) {
debug.bad_pixels++;
trace((((((("BAD PIXEL " + debug.bad_pixels) + ") ") + _local12) + " != ") + _local18) + " ") + _local6);
trace(basen.debug.lastencode);
}
var _local2 = Math.round((_local19 / cube) * 255).toString(16);
var _local4 = Math.round((_local9 / cube) * 255).toString(16);
var _local3 = Math.round((_local8 / cube) * 255).toString(16);
while (_local2.length < 2) {
_local2 = "0" + _local2;
}
while (_local4.length < 2) {
_local4 = "0" + _local4;
}
while (_local3.length < 2) {
_local3 = "0" + _local3;
}
copyBitmap.setPixel(_local15, _local14, Number((("0x" + _local2) + _local4) + _local3));
pixels++;
if (pixels >= (image_width * image_height)) {
return(false);
}
xpos++;
if (xpos >= image_width) {
xpos = 0;
ypos++;
}
return(true);
}
function error(e, f) {
sendMessage(e, f, "ERROR");
}
function sendMessage(msg, func, type) {
var _local1 = "ImageScanner";
if (func) {
_local1 = _local1 + (("." + func) + "()");
}
if (type) {
_local1 = (type + " in ") + _local1;
}
_local1 = _local1 + (" :: " + msg);
trace(_local1);
}
var image_width = 100;
var image_height = 100;
var crop = true;
var pixels_per_chunk = 500;
var debug = new Object();
}
Symbol 88 MovieClip [__Packages.com.newgrounds.encoders.BaseN] Frame 0
class com.newgrounds.encoders.BaseN
{
var ceiling, hashIndex, bitSize, hashVal, i;
function BaseN (hash) {
ceiling = 100000000000000;
if (hash) {
hashIndex = hash;
} else {
hashIndex = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~@#$%^&*()+|;/";
}
bitSize = hashIndex.length;
hashVal = new Object();
i = 0;
while (i < bitSize) {
hashVal[hashIndex.charAt(i)] = i;
i++;
}
}
function verify(s) {
if (hashVal[s] != undefined) {
return(true);
}
return(false);
}
function encode(n, minchars) {
debug.lastencode = "";
if (typeof(i) != "string") {
n = n.toString();
}
if (n.charAt(0) == "-") {
var _local3 = "-";
n = n.substring(1);
} else {
var _local3 = "";
}
if (String(n).indexOf(".") > -1) {
var _local4 = String(n).split(".", 2);
return(((_local3 + baseNEncoder(_local4[0], minchars)) + ".") + baseNEncoder(_local4[1]));
}
debug.lastencode = debug.lastencode + "\tNo decimal\r";
return(_local3 + baseNEncoder(n, minchars));
}
function decode(s) {
var _local4 = 1;
if (s.charAt(0) == "-") {
_local4 = -1;
s = s.substring(1, s.length);
}
var _local3 = s.indexOf(".");
if (_local3 > -1) {
var _local5 = Math.pow(10, baseNDecoder(s.substring(_local3 + 1, s.length)));
return((baseNDecoder(s.substring(0, _local3)) / _local5) * _local4);
}
return(baseNDecoder(s) * _local4);
}
function baseNEncoder(n, minchars) {
if (!minchars) {
minchars = 1;
}
var _local4 = "";
while (n != 0) {
n = Math.round(n);
var _local3 = n % bitSize;
if (Math.round(_local3) != _local3) {
trace((((((((("BaseN failed on " + n) + "%") + bitSize) + " = ") + _local3) + " ") + int(n)) + " ") + int(bitSize));
}
_local4 = hashIndex.charAt(_local3) + _local4;
debug.lastencode = debug.lastencode + (((((((("\t-> n:" + n) + " % bitSize:") + bitSize) + " = ") + _local3) + ", final char=") + _local4) + newline);
n = n - _local3;
n = n / bitSize;
}
if (minchars) {
while (_local4.length < minchars) {
_local4 = hashIndex.charAt(0) + _local4;
}
}
return(_local4);
}
function baseNDecoder(s) {
var _local2 = 0;
var _local6 = 0;
i = 0;
while (i < s.length) {
var _local3 = s.charAt((s.length - i) - 1);
if (_local3 == hashIndex.charAt(0)) {
var _local5 = 0;
} else {
var _local5 = hashVal[_local3] * Math.pow(bitSize, i);
}
_local2 = _local2 + _local5;
if (_local2 >= ceiling) {
_local6 = _local6 + ((_local2 - (_local2 % ceiling)) / ceiling);
_local2 = _local2 % ceiling;
}
i++;
}
if (_local6 > 0) {
_local2 = "" + _local2;
while (_local2.length < (ceiling.toString().length - 1)) {
_local2 = "0" + _local2;
}
_local2 = ("" + _local6) + _local2;
}
return(_local2);
}
var debug = new Object();
}
Symbol 98 MovieClip [__Packages.com.newgrounds.APIEventDispatcher] Frame 0
class com.newgrounds.APIEventDispatcher
{
function APIEventDispatcher () {
}
function addEventListener(event, callback, target) {
if (!target) {
throw "Attempted to create a listener without providing a target object.";
}
if (!listeners[event]) {
listeners[event] = [];
} else {
removeEventListener(event, target);
}
listeners[event].push({target:target, callback:callback});
}
function removeEventListener(event, target) {
if (!target) {
throw "Attempted to remove a listener without providing a target object.";
}
if ((!listeners[event]) || (listeners[event].length < 1)) {
return(undefined);
}
var _local4 = [];
var _local2 = 0;
while (_local2 < listeners[event].length) {
if (listeners[event][_local2].target != target) {
_local4.push(listeners[event][_local2]);
}
_local2++;
}
listeners[event] = _local4;
}
function dispatchEvent(event) {
if (!hasEventListener(event.__get__type())) {
return(false);
}
collectGarbage(event.__get__type());
var _local2 = 0;
while (_local2 < listeners[event.__get__type()].length) {
var _local4 = listeners[event.__get__type()][_local2].callback;
if (listeners[event.__get__type()][_local2].target) {
var _local5 = listeners[event.__get__type()][_local2].target;
_local4.call(_local5, event);
} else {
_local4(event);
}
_local2++;
}
return(true);
}
function hasEventListener(event) {
return((listeners[event] != undefined) && (listeners[event].length > 0));
}
function collectGarbage(event) {
var _local5 = [];
if (!hasEventListener) {
return(undefined);
}
var _local2 = 0;
while (_local2 < listeners[event].length) {
var _local4 = listeners[event][_local2].target;
if (_local4) {
_local5.push(listeners[event][_local2]);
}
_local2++;
}
listeners[event] = _local5;
}
var listeners = {};
}
Symbol 86 MovieClip [__Packages.com.newgrounds.APIEvent] Frame 0
class com.newgrounds.APIEvent
{
var _type, _target, _success, data;
function APIEvent (type, success, target, data) {
_type = type;
_target = target;
_success = success;
this.data = data;
}
function get target() {
return(_target);
}
function get type() {
return(_type);
}
function get success() {
return(_success);
}
static var MOVIE_CONNECTED = "movieConnected";
static var ADS_APPROVED = "adsApproved";
static var AD_ATTACHED = "adAttached";
static var HOST_BLOCKED = "hostBlocked";
static var NEW_VERSION_AVAILABLE = "newVersionAvailable";
static var EVENT_LOGGED = "eventLogged";
static var SCORE_POSTED = "scorePosted";
static var SCORES_LOADED = "scoresLoaded";
static var UNLOCK_MEDAL = "unlockMedal";
static var MEDAL_UNLOCKED = "medalUnlocked";
static var MEDALS_LOADED = "medalsLoaded";
static var METADATA_LOADED = "metadataLoaded";
static var FILE_PRIVS_LOADED = "filePrivsLoaded";
static var FILE_SAVED = "fileSaved";
static var FILE_LOADED = "fileLoaded";
static var QUERY_COMPLETE = "queryComplete";
static var VOTE_COMPLETE = "voteComplete";
static var API_ERROR = "apiError";
static var UNCAUGHT_EVENT = "uncaughtEvent";
}
Symbol 94 MovieClip [__Packages.com.newgrounds.ScoreBoard] Frame 0
class com.newgrounds.ScoreBoard
{
var _name, _id, _scores;
function ScoreBoard (id, name) {
_name = name;
_id = id;
}
function exists() {
return(Number(_id) > 0);
}
function get id() {
return(_id);
}
function get name() {
return(_name);
}
function get period() {
return(_period);
}
function get page() {
return(_page);
}
function get num_results() {
return(_num_results);
}
function get scores() {
return(_scores);
}
function postScore(value, get_best) {
com.newgrounds.API.postScore(_name, value, get_best);
}
function loadScores(period, page, num_results) {
if (period) {
_period = period;
}
if (page) {
_page = page;
}
if (num_results) {
_num_results = num_results;
}
_scores = [];
com.newgrounds.API.loadScores(this);
}
function setScores(scores, period, page, num_results) {
if (period) {
_period = period;
}
if (page) {
_page = page;
}
if (num_results) {
_num_results = num_results;
}
_scores = [];
var _local2 = 0;
while (_local2 < scores.length) {
var _local4 = ((_num_results * (_page - 1)) + 1) + _local2;
_scores.push(new com.newgrounds.Score(this, _local4, scores[_local2].username, scores[_local2].value, scores[_local2].numeric_value));
_local2++;
}
}
var _period = "Today";
var _num_results = 10;
var _page = 1;
}
Symbol 7 MovieClip [__Packages.com.newgrounds.components.APIConnector] Frame 0
class com.newgrounds.components.APIConnector extends MovieClip
{
var _x, _y, fake_session, movie_id, nextFrame, _visible, error_screens, medal_popups, debug, movie_version, local_data, encryption_key, stop, gotoframe_interval, _totalframes, _framesloaded, gotoAndStop;
function APIConnector () {
super();
_x = Math.round(_x);
_y = Math.round(_y);
if (fake_session and (com.newgrounds.API.getHost() == "localhost")) {
com.newgrounds.API.setFakeSession(true);
}
if (movie_id && (!com.newgrounds.API.isConnected())) {
(nextFrame());// not popped
_visible = false;
setGotoFrame("connecting");
if (error_screens) {
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.NEW_VERSION_AVAILABLE, onNewVersion, this);
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.HOST_BLOCKED, onBadHost, this);
}
if (medal_popups) {
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.UNLOCK_MEDAL, doUnlock, this);
}
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.MOVIE_CONNECTED, onConnected, this);
if (com.newgrounds.API.isPublishedHost()) {
debug = false;
}
if (movie_version) {
com.newgrounds.API.setMovieVersion(movie_version);
}
if (!com.newgrounds.API.hasUserSession()) {
var _local3 = com.newgrounds.API.loadLocal("api_connector_data");
if (_local3) {
local_data = _local3;
} else {
local_data = {medals_unlocked:new Array()};
}
}
com.newgrounds.API.setPreload(true);
com.newgrounds.API.connectMovie(movie_id, encryption_key, debug);
} else if (movie_id && (com.newgrounds.API.isConnected())) {
_visible = false;
setGotoFrame("done");
}
(stop());// not popped
}
function doUnlock(e) {
var _local5 = _root.attachMovie("NewgroundsAPIAsset_Medal_Popup", "Asset_Medal_Popup_" + e.data.medal.getID(), _root.getNextHighestDepth());
if (e.data.x != undefined) {
_local5._x = e.data.x + 254;
} else {
_local5._x = Stage.width;
}
if (e.data.x != undefined) {
_local5._y = e.data.y + 73;
} else {
_local5._y = Stage.height;
}
_local5.medal = e.data.medal;
var _local3 = com.newgrounds.API.getMedals();
var _local2 = 0;
while (_local2 < _local3.length) {
if ((_local3[_local2].getID() != e.data.medal.getID()) && (_root["medal_pop_" + _local3[_local2].getID()])) {
_root["medal_pop_" + _local3[_local2].getID()]._y = _root["medal_pop_" + _local3[_local2].getID()]._y - 70;
}
_local2++;
}
}
function onLoginError() {
var _local2 = _root.attachMovie("Asset_Login_Warning", "Asset_Login_Warning", _root.getNextHighestDepth());
}
function onConnectionError() {
var _local3 = _root.attachMovie("Asset_Connection_Error", "Asset_Connection_Error", _root.getNextHighestDepth());
setGotoFrame("done");
}
function onConnected(event, params) {
if (event.success) {
setGotoFrame("connected");
if (((error_screens && (com.newgrounds.API.isPublishedHost())) && (com.newgrounds.API.hasPublisher())) && (!com.newgrounds.API.hasUserSession())) {
onLoginError();
}
} else if (error_screens) {
onConnectionError();
}
}
function onNewVersion() {
var _local2 = _root.attachMovie("NewgroundsAsset_New_Version_Available", "NewgroundsAsset_New_Version_Available", _root.getNextHighestDepth());
_local2.official_version_url = com.newgrounds.API.getOfficialVersionURL();
}
function onBadHost() {
var _local2 = _root.attachMovie("NewgroundsAsset_Illegal_Host", "NewgroundsAsset_Illegal_Host", _root.getNextHighestDepth());
_local2.official_version_url = com.newgrounds.API.getOfficialVersionURL();
}
function setGotoFrame(frame) {
if (goto_frame == null) {
goto_frame = frame;
gotoframe_interval = setInterval(this, "gotoFrameIfLoaded", 50);
}
}
function gotoFrameIfLoaded() {
if ((goto_frame != null) && (_framesloaded == _totalframes)) {
_visible = true;
gotoAndStop(goto_frame);
goto_frame = null;
clearInterval(gotoframe_interval);
}
}
var goto_frame = null;
}
Symbol 85 MovieClip [__Packages.com.newgrounds.ValidationTools] Frame 0
class com.newgrounds.ValidationTools
{
function ValidationTools () {
}
static function isNumber(v) {
if (typeof(v) == "number") {
return(true);
}
if ((typeof(v) == "string") and (Number(v).toString() == v)) {
return(true);
}
return(false);
}
static function isInteger(v) {
if (isNumber(v)) {
v = Number(v);
return(Math.floor(v) == v);
}
return(false);
}
static function isFloat(v) {
return(isNumber(v));
}
static function isString(v) {
if ((typeof(v) == "string") or (typeof(v) == "number")) {
return(true);
}
return(false);
}
static function isEmpty(o) {
for (var _local2 in o) {
return(false);
}
return(true);
}
}
Symbol 90 MovieClip [__Packages.com.newgrounds.encoders.SerialXML] Frame 0
class com.newgrounds.encoders.SerialXML
{
function SerialXML () {
}
static function decode(xml) {
if (!(xml instanceof XML)) {
xml = new XML(xml);
}
var _local2 = populateObject(xml.firstChild, {});
return(_local2.DATA);
}
static function encode(obj) {
var _local1 = new XML();
populateXML(_local1, obj, "DATA");
return(_local1);
}
static function populateObject(child, object) {
var _local6 = child.nodeName;
var _local5 = getValue(_local6, child.attributes.v);
var _local4 = child.attributes.n;
if (object instanceof Array) {
_local4 = object.length;
object.push(_local5);
} else {
object[_local4] = _local5;
}
if (child.hasChildNodes()) {
var _local1 = 0;
while (_local1 < child.childNodes.length) {
populateObject(child.childNodes[_local1], object[_local4]);
_local1++;
}
}
return(object);
}
static function populateXML(child, obj, name) {
if (obj === undefined) {
return(undefined);
}
var _local5 = new XML();
var _local2;
if (obj instanceof Array) {
_local2 = _local5.createElement(getType(obj));
if (name) {
_local2.attributes.n = name;
}
child.appendChild(_local2);
var _local4 = 0;
while (_local4 < obj.length) {
populateXML(_local2, obj[_local4]);
_local4++;
}
} else if (typeof(obj) == "object") {
_local2 = _local5.createElement(getType(obj));
if (name) {
_local2.attributes.n = name;
}
child.appendChild(_local2);
for (var _local4 in obj) {
populateXML(_local2, obj[_local4], _local4);
}
} else {
_local2 = _local5.createElement(getType(obj));
if (name) {
_local2.attributes.n = name;
}
if (getType(obj).length == 1) {
_local2.attributes.v = obj;
}
child.appendChild(_local2);
}
}
static function getValue(type, stringval) {
switch (type.toUpperCase()) {
case "O" :
return(new Object());
case "A" :
return(new Array());
case "N" :
return(Number(stringval));
case "S" :
return(String(stringval));
case "TRUE" :
return(true);
case "FALSE" :
return(false);
}
return(null);
}
static function getType(obj) {
switch (((obj instanceof Array) ? "array" : (typeof(obj)))) {
case "array" :
return("A");
case "object" :
return("O");
case "string" :
return("S");
case "number" :
return("N");
case "boolean" :
return(((obj === true) ? "TRUE" : "FALSE"));
}
return("NULL");
}
}
Symbol 91 MovieClip [__Packages.com.newgrounds.encoders.LZW2] Frame 0
class com.newgrounds.encoders.LZW2
{
static var comp_dict, pos, result, buffer, nbChar, splitStr, len, local, interval;
function LZW2 () {
}
static function doCompressorConfig() {
comp_dict = [];
var _local1 = 0;
while (_local1 < 256) {
comp_dict[String.fromCharCode(_local1)] = _local1;
_local1++;
}
comp_dict["<"] = 256;
comp_dict[">"] = 257;
comp_dict["&"] = 258;
comp_dict["\""] = 259;
comp_dict["'"] = 260;
pos = 0;
result = "";
buffer = "";
nbChar = 256 + skipnum;
}
static function compress(string, callback, callback_params) {
doCompressorConfig();
if (busy) {
trace("[LZW COMPRESSOR] :: Compression can not begin until previous compression or decompression is complete!");
return(undefined);
}
splitStr = string.split("");
string = "";
len = splitStr.length;
local = {delay:30, callback:callback, callback_params:callback_params, compress_chunk:function () {
com.newgrounds.encoders.LZW2.compress_chunk();
}, busy:false, complete:false};
interval = setInterval(local, "compress_chunk", 5);
}
static function getProgress() {
return(Math.round((pos / len) * 100));
}
static function compress_chunk() {
if (local.delay > 0) {
local.delay--;
} else if (!local.busy) {
local.busy = true;
var _local1 = 0;
while (_local1 < max_chunk_length) {
encode_next();
if (local.complete) {
break;
}
_local1++;
}
local.busy = false;
}
if (local.complete) {
trace((((((((("LZW2 complete " + nbChar) + " ") + comp_dict.length) + " ") + len) + " ") + pos) + " ") + skipnum);
clearInterval(interval);
local.callback(result, local.callback_params);
result = "";
buffer = "";
}
}
static function encode_next() {
if (pos <= len) {
var _local1 = splitStr[pos];
if (!(comp_dict[buffer + _local1] === undefined)) {
buffer = buffer + _local1;
} else {
result = result + String.fromCharCode(comp_dict[buffer]);
comp_dict[buffer + _local1] = nbChar;
nbChar++;
buffer = _local1;
}
pos++;
} else {
local.complete = true;
return(undefined);
}
}
static var comp_config = false;
static var skipnum = 5;
static var busy = false;
static var max_chunk_length = 12000;
}
Symbol 92 MovieClip [__Packages.com.newgrounds.encoders.LZW] Frame 0
class com.newgrounds.encoders.LZW
{
function LZW () {
}
static function setXMLSafe(x) {
xmlsafe = x;
}
static function compress(str, escape_chars) {
var _local2 = new Array();
var _local11 = (xmlsafe ? 5 : 0);
var _local5 = 0;
while (_local5 < 256) {
_local2[String.fromCharCode(_local5)] = _local5;
_local5++;
}
if (xmlsafe) {
_local2["<"] = 256;
_local2[">"] = 257;
_local2["&"] = 258;
_local2["\""] = 259;
_local2["'"] = 260;
}
var _local7 = "";
var _local8 = str.split("");
var _local9 = _local8.length;
var _local6 = 256 + _local11;
var _local1 = "";
var _local4;
_local5 = 0;
while (_local5 <= _local9) {
var _local3 = _local8[_local5];
if (!(_local2[_local1 + _local3] === undefined)) {
_local1 = _local1 + _local3;
} else {
_local4 = String.fromCharCode(_local2[_local1]);
if (escape_chars and (((_local2[_local1] < 33) or (_local2[_local1] > 126)) or (_local4 == "%"))) {
_local4 = escape(_local4);
}
_local7 = _local7 + _local4;
_local2[_local1 + _local3] = _local6;
_local6++;
_local1 = _local3;
}
_local5++;
}
return(_local7);
}
static function decompress(str) {
var _local4 = new Array();
var _local10 = (xmlsafe ? 5 : 0);
var _local6 = 0;
while (_local6 < 256) {
var _local9 = String.fromCharCode(_local6);
_local4[_local6] = _local9;
_local6++;
}
if (xmlsafe) {
_local4[256] = "<";
_local4[257] = ">";
_local4[258] = "&";
_local4[259] = "\"";
_local4[260] = "'";
}
var _local11 = str;
var _local13 = _local11.split("");
var _local12 = _local13.length;
var _local7 = 256 + _local10;
var _local1 = "";
var _local2 = "";
var _local8 = "";
_local6 = 0;
while (_local6 < _local12) {
var _local5 = _local11.charCodeAt(_local6);
var _local3 = _local4[_local5];
if (_local1 == "") {
_local1 = _local3;
_local8 = _local8 + _local3;
} else if (_local5 <= (255 + _local10)) {
_local8 = _local8 + _local3;
_local2 = _local1 + _local3;
_local4[_local7] = _local2;
_local7++;
_local1 = _local3;
} else {
_local2 = _local4[_local5];
if (_local2 == undefined) {
_local2 = _local1 + _local1.slice(0, 1);
}
_local8 = _local8 + _local2;
_local4[_local7] = _local1 + _local2.slice(0, 1);
_local7++;
_local1 = _local2;
}
_local6++;
}
return(_local8);
}
static function compress_fp6(str) {
var _local3 = new Array();
var _local10 = (xmlsafe ? 5 : 0);
var _local4 = 0;
while (_local4 < 256) {
_local3[String(_local4)] = _local4;
_local4++;
}
if (xmlsafe) {
var _local14 = String(new String("<").charCodeAt(0));
var _local11 = String(new String(">").charCodeAt(0));
var _local13 = String(new String("&").charCodeAt(0));
var _local15 = String(new String("\"").charCodeAt(0));
var _local12 = String(new String("'").charCodeAt(0));
_local3[_local14] = 256;
_local3[_local11] = 257;
_local3[_local13] = 258;
_local3[_local15] = 259;
_local3[_local12] = 260;
}
var _local7 = "";
var _local16 = str;
var _local8 = _local16.split("");
var _local9 = _local8.length;
var _local6 = 256 + _local10;
var _local1 = new Array();
_local4 = 0;
while (_local4 <= _local9) {
var _local2 = _local8[_local4];
if (_local1.length == 0) {
var _local5 = String(_local2.charCodeAt(0));
} else {
var _local5 = (_local1.join("-") + "-") + String(_local2.charCodeAt(0));
}
if (!(_local3[_local5] === undefined)) {
_local1.push(_local2.charCodeAt(0));
} else {
_local7 = _local7 + String.fromCharCode(_local3[_local1.join("-")]);
_local3[_local5] = _local6;
_local6++;
_local1 = new Array();
_local1.push(_local2.charCodeAt(0));
}
_local4++;
}
return(_local7);
}
static var xmlsafe = false;
}
Symbol 93 MovieClip [__Packages.com.newgrounds.Medal] Frame 0
class com.newgrounds.Medal
{
var _medal_id, _medal_name, _medal_value, _medal_difficulty;
function Medal (id, name, value, difficulty, unlocked, _icon_url) {
if ((((id == undefined) || (name == undefined)) || (value == undefined)) || (difficulty == undefined)) {
com.newgrounds.API.fatalError("Medal instances require an id, name, value and difficulty");
}
_medal_id = id;
_medal_name = name;
_medal_value = value;
_medal_difficulty = difficulty;
if (unlocked) {
_medal_unlocked = true;
}
if (_icon_url) {
this._icon_url = _icon_url;
}
}
function get difficulty() {
return(difficulty_names[_medal_difficulty]);
}
function get difficultyId() {
return(_medal_difficulty);
}
function get icon_url() {
return(_icon_url);
}
function get id() {
return(_medal_id);
}
function get name() {
return(_medal_name);
}
function get unlocked() {
return(_medal_unlocked);
}
function get value() {
return(_medal_value);
}
function isUnlocked() {
return(_medal_unlocked);
}
function unlock() {
if (!isUnlocked()) {
com.newgrounds.API.unlockMedal(this);
}
}
function setUnlocked(u) {
_medal_unlocked = u;
}
function attachIcon(target, depth) {
if (!depth) {
depth = target.getNextHighestDepth();
}
var _local3 = target.createEmptyMovieClip("Asset_Medal_Icon_" + getID(), depth);
if (_icon_url) {
_local3.loadMovie(_icon_url);
} else {
var _local4 = flash.display.BitmapData.loadBitmap("Asset_default_medal_icon_" + getDifficulty(), depth);
_local3.attachBitmap(_local4, depth, true);
}
}
function getID() {
return(_medal_id);
}
function getName() {
return(_medal_name);
}
function getValue() {
return(_medal_value);
}
function getDifficulty(as_string) {
if (as_string) {
return(difficulty_names[_medal_difficulty]);
}
return(_medal_difficulty);
}
var _medal_unlocked = false;
var _icon_loaded = false;
var _icon_width = 50;
var _icon_height = 50;
var _icon_url = null;
static var difficulty_names = new Array(null, "Easy", "Moderate", "Challenging", "Difficult", "Brutal");
}
Symbol 95 MovieClip [__Packages.com.newgrounds.Score] Frame 0
class com.newgrounds.Score
{
var _board, _position, _username, _value, _numeric_value;
function Score (board, position, username, value, numeric_value) {
_board = board;
_position = position;
_username = username;
_value = value;
_numeric_value = numeric_value;
}
function get board() {
return(_board);
}
function get position() {
return(_position);
}
function get username() {
return(_username);
}
function get value() {
return(_value);
}
function get numeric_value() {
return(_numeric_value);
}
static function fromTime(time) {
var _local1 = time.split(":");
var _local2 = Math.round(Number(_local1.pop()) * 1000);
if (_local1.length > 0) {
_local2 = _local2 + (Number(_local1.pop()) * 60);
}
if (_local1.length > 0) {
_local2 = _local2 + (Number(_local1.pop()) * 3600);
}
return(_local2);
}
static function fromDistance(distance) {
var _local1 = distance.indexOf("'");
var _local5 = distance.indexOf("\"", _local1);
var _local3 = Number(distance.substr(0, _local1));
var _local4 = Number(distance.substring(_local1 + 1, _local5));
return(Math.round((_local3 * 12) + _local4));
}
}
Symbol 96 MovieClip [__Packages.com.newgrounds.encoders.RC4] Frame 0
class com.newgrounds.encoders.RC4
{
function RC4 () {
}
static function encrypt(src, key) {
var _local3 = strToChars(src);
var _local1 = strToChars(key);
var _local2 = calculate(_local3, _local1);
return(charsToHex(_local2));
}
static function encryptbin(src, key) {
var _local3 = strToChars(src);
var _local1 = strToChars(key);
var _local2 = calculate(_local3, _local1);
return(_local2);
}
static function decrypt(src, key) {
var _local3 = hexToChars(src);
var _local1 = strToChars(key);
var _local2 = calculate(_local3, _local1);
return(charsToStr(_local2));
}
static function initialize(pwd) {
var _local2 = 0;
var _local3;
var _local4 = pwd.length;
var _local1 = 0;
while (_local1 <= 255) {
mykey[_local1] = pwd[_local1 % _local4];
sbox[_local1] = _local1;
_local1++;
}
_local1 = 0;
while (_local1 <= 255) {
_local2 = ((_local2 + sbox[_local1]) + mykey[_local1]) % 256;
_local3 = sbox[_local1];
sbox[_local1] = sbox[_local2];
sbox[_local2] = _local3;
_local1++;
}
}
static function calculate(plaintxt, psw) {
initialize(psw);
var _local1 = 0;
var _local2 = 0;
var _local9 = new Array();
var _local7;
var _local5;
var _local6;
var _local3 = 0;
while (_local3 < plaintxt.length) {
_local1 = (_local1 + 1) % 256;
_local2 = (_local2 + sbox[_local1]) % 256;
_local5 = sbox[_local1];
sbox[_local1] = sbox[_local2];
sbox[_local2] = _local5;
var _local4 = (sbox[_local1] + sbox[_local2]) % 256;
_local7 = sbox[_local4];
_local6 = plaintxt[_local3] ^ _local7;
_local9.push(_local6);
_local3++;
}
return(_local9);
}
static function charsToHex(chars) {
var _local4 = new String("");
var _local3 = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");
var _local1 = 0;
while (_local1 < chars.length) {
_local4 = _local4 + (_local3[chars[_local1] >> 4] + _local3[chars[_local1] & 15]);
_local1++;
}
return(_local4);
}
static function hexToChars(hex) {
var _local3 = new Array();
var _local1 = ((hex.substr(0, 2) == "0x") ? 2 : 0);
while (_local1 < hex.length) {
_local3.push(parseInt(hex.substr(_local1, 2), 16));
_local1 = _local1 + 2;
}
return(_local3);
}
static function charsToStr(chars) {
var _local3 = new String("");
var _local1 = 0;
while (_local1 < chars.length) {
_local3 = _local3 + String.fromCharCode(chars[_local1]);
_local1++;
}
return(_local3);
}
static function strToChars(str) {
var _local3 = new Array();
var _local1 = 0;
while (_local1 < str.length) {
_local3.push(str.charCodeAt(_local1));
_local1++;
}
return(_local3);
}
static var sbox = new Array(255);
static var mykey = new Array(255);
}
Symbol 97 MovieClip [__Packages.com.newgrounds.encoders.JSON] Frame 0
class com.newgrounds.encoders.JSON
{
static var start, cache, interval;
function JSON () {
}
static function encode(arg, noquotes) {
var _local3;
var _local2;
var _local6;
var _local1 = "";
var _local4;
if (arg.isSServerVar()) {
var _local8 = "sservervariable";
} else {
var _local8 = typeof(arg);
}
switch (_local8) {
case "sservervariable" :
return("?" + arg.getEncodedValue());
case "object" :
if (arg) {
if (arg instanceof Array) {
_local2 = 0;
while (_local2 < arg.length) {
_local4 = encode(arg[_local2]);
if (_local1) {
_local1 = _local1 + ",";
}
_local1 = _local1 + _local4;
_local2++;
}
return(("[" + _local1) + "]");
}
if (typeof(arg.toString) != "undefined") {
for (_local2 in arg) {
_local4 = arg[_local2];
if ((typeof(_local4) != "undefined") && (typeof(_local4) != "function")) {
_local4 = encode(_local4);
if (_local1) {
_local1 = _local1 + ",";
}
_local1 = _local1 + ((encode(_local2) + ":") + _local4);
}
}
return(("{" + _local1) + "}");
}
}
return("null");
case "number" :
return((isFinite(arg) ? (String(arg)) : "null"));
case "string" :
_local6 = arg.length;
if (noquotes) {
var _local7 = "";
} else {
var _local7 = "\"";
}
_local1 = _local7;
_local2 = 0;
while (_local2 < _local6) {
_local3 = arg.charAt(_local2);
if (_local3 >= " ") {
if ((_local3 == "\\") || (_local3 == "\"")) {
_local1 = _local1 + "\\";
}
_local1 = _local1 + _local3;
} else {
switch (_local3) {
case "\b" :
_local1 = _local1 + "\\b";
break;
case "\f" :
_local1 = _local1 + "\\f";
break;
case newline :
_local1 = _local1 + "\\n";
break;
case "\r" :
_local1 = _local1 + "\\r";
break;
case "\t" :
_local1 = _local1 + "\\t";
break;
default :
_local3 = _local3.charCodeAt();
_local1 = _local1 + (("\\u00" + Math.floor(_local3 / 16).toString(16)) + (_local3 % 16).toString(16));
}
}
_local2 = _local2 + 1;
}
return(_local1 + _local7);
case "boolean" :
return(String(arg));
}
return("null");
}
static function background_encode(arg, callback) {
if (busy) {
trace("[Newgrounds Encoder] :: Cannot encode a new file until the previous file is completed");
return(false);
}
if (!callback) {
trace("[Newgrounds Encoder] :: Missing a callback function, skipping encode");
return(false);
}
busy = true;
var _local2 = new Date();
start = _local2.getTime();
cache = {busy:false, complete:false, arg:arg, target:arg, parents:[], encoded:"", callback:callback, encode_chunk:function () {
com.newgrounds.encoders.JSON.encode_chunk();
}};
if (getType(arg) == "object") {
cache.encoded = "{";
} else if (getType(arg) == "array") {
cache.encoded = "[";
}
interval = setInterval(cache, "encode_chunk", 25);
return(true);
}
static function background_decode(arg, callback) {
if (busy) {
trace("[Newgrounds Encoder] :: Cannot decode a new file until the previous file is completed");
return(false);
}
if (!callback) {
trace("[Newgrounds Encoder] :: Missing a callback function, skipping decode");
return(false);
}
busy = true;
var _local1 = new Date();
start = _local1.getTime();
cache = {busy:false, callback:callback, complete:false, arg:arg, pos:0, parents:["root"], target:null, scratch:"", decode_chunk:function () {
com.newgrounds.encoders.JSON.decode_chunk();
}};
interval = setInterval(cache, "decode_chunk", 25);
return(true);
}
static function decode(text) {
var at = 0;
var ch = " ";
var _value;
var _error = function (m) {
throw {name:"JSONError", message:m, at:at - 1, text:text};
};
var _next = function () {
ch = text.charAt(at);
at = at + 1;
return(ch);
};
var _white = function () {
while (ch) {
if (ch <= " ") {
_next();
} else if (ch == "/") {
switch (_next()) {
case "/" :
while ((_next() && (ch != newline)) && (ch != "\r")) {
}
break;
case "*" :
_next();
for(;;){
if (ch) {
if (ch == "*") {
if (_next() == "/") {
_next();
// unexpected jump
}
} else {
_next();
}
} else {
_error("Unterminated comment");
}
};
break;
default :
_error("Syntax error");
}
} else {
return;
}
}
};
var _string = function () {
var _local4;
var _local1 = "";
var _local3;
var _local2;
var _local5 = false;
if (ch == "\"") {
while (_next()) {
if (ch == "\"") {
_next();
return(_local1);
}
if (ch == "\\") {
switch (_next()) {
case "b" :
_local1 = _local1 + "\b";
break;
case "f" :
_local1 = _local1 + "\f";
break;
case "n" :
_local1 = _local1 + newline;
break;
case "r" :
_local1 = _local1 + "\r";
break;
case "t" :
_local1 = _local1 + "\t";
break;
case "u" :
_local2 = 0;
_local4 = 0;
while (_local4 < 4) {
_local3 = parseInt(_next(), 16);
if (!isFinite(_local3)) {
_local5 = true;
break;
}
_local2 = (_local2 * 16) + _local3;
_local4 = _local4 + 1;
}
if (_local5) {
_local5 = false;
break;
}
_local1 = _local1 + String.fromCharCode(_local2);
break;
default :
_local1 = _local1 + ch;
}
} else {
_local1 = _local1 + ch;
}
}
}
_error("Bad string");
};
var _array = function () {
var _local1 = [];
if (ch == "[") {
_next();
_white();
if (ch == "]") {
_next();
return(_local1);
}
while (ch) {
_local1.push(_value());
_white();
if (ch == "]") {
_next();
return(_local1);
}
if (ch != ",") {
break;
}
_next();
_white();
}
}
_error("Bad array");
};
var _object = function () {
var _local2;
var _local1 = {};
if (ch == "{") {
_next();
_white();
if (ch == "}") {
_next();
return(_local1);
}
while (ch) {
_local2 = _string();
_white();
if (ch != ":") {
break;
}
_next();
_local1[_local2] = _value();
_white();
if (ch == "}") {
_next();
return(_local1);
}
if (ch != ",") {
break;
}
_next();
_white();
}
}
_error("Bad object");
};
var _number = function () {
var _local1 = "";
var _local2;
if (ch == "-") {
_local1 = "-";
_next();
}
while ((ch >= "0") && (ch <= "9")) {
_local1 = _local1 + ch;
_next();
}
if (ch == ".") {
_local1 = _local1 + ".";
while ((_next() && (ch >= "0")) && (ch <= "9")) {
_local1 = _local1 + ch;
}
}
_local2 = 1 * _local1;
if (!isFinite(_local2)) {
_error("Bad number");
} else {
return(_local2);
}
};
var _word = function () {
switch (ch) {
case "t" :
if (((_next() == "r") && (_next() == "u")) && (_next() == "e")) {
_next();
return(true);
}
break;
case "f" :
if ((((_next() == "a") && (_next() == "l")) && (_next() == "s")) && (_next() == "e")) {
_next();
return(false);
}
break;
case "n" :
if (!(((_next() == "u") && (_next() == "l")) && (_next() == "l"))) {
break;
}
_next();
return(null);
}
_error("Syntax error");
};
_value = function () {
_white();
switch (ch) {
case "{" :
return(_object());
case "[" :
return(_array());
case "\"" :
return(_string());
case "-" :
return(_number());
}
return((((ch >= "0") && (ch <= "9")) ? (_number()) : (_word())));
};
return(_value());
}
static function getType(v) {
if (v instanceof Array) {
return("array");
}
return(typeof(v));
}
static function decode_chunk() {
if ((!cache.busy) && (!cache.complete)) {
cache.busy = true;
var _local1 = 0;
while (_local1 < decode_chunks) {
chunk_decoder();
if (cache.complete) {
break;
}
_local1++;
}
trace(Math.round((cache.pos / cache.arg.length) * 100) + "% decoded");
cache.busy = false;
}
if (cache.complete) {
var _local2 = new Date();
busy = false;
clearInterval(interval);
cache.callback(cache.root, _local2.getTime() - start);
cache.arg = "";
}
}
static function encode_chunk() {
if ((!cache.busy) && (!cache.complete)) {
cache.busy = true;
var _local1 = 0;
while (_local1 < encode_chunks) {
chunk_encoder();
if (cache.complete) {
break;
}
_local1++;
}
cache.busy = false;
}
if (cache.complete) {
var _local3 = new Date();
var _local2 = _local3.getTime();
busy = false;
clearInterval(interval);
cache.callback(cache.encoded, _local2 - start);
cache.encoded = "";
}
}
static function chunk_decoder() {
function _object() {
var _local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (!com.newgrounds.encoders.JSON.cache.mode) {
com.newgrounds.encoders.JSON.cache.mode = "object";
com.newgrounds.encoders.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (_local1 != "\"") {
throw "Malformed object key in encoded string. Keys must be wrapped in quotes (\"\")";
}
com.newgrounds.encoders.JSON.cache.scratch = "";
_setTargetValue({});
} else if (_local1 == ",") {
com.newgrounds.encoders.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (_local1 != "\"") {
throw "Malformed object key in encoded string. Keys must be wrapped in quotes (\"\")";
}
com.newgrounds.encoders.JSON.cache.scratch = "";
} else if (_local1 == "}") {
_useParent();
} else if (_local1 == "\"") {
com.newgrounds.encoders.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (_local1 != ":") {
throw "Malformed object notation. Object keys and values must be separated by colons(:)";
}
_addParent(com.newgrounds.encoders.JSON.cache.scratch);
com.newgrounds.encoders.JSON.cache.mode = null;
} else {
if (_local1 == "\\") {
com.newgrounds.encoders.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
}
com.newgrounds.encoders.JSON.cache.scratch = com.newgrounds.encoders.JSON.cache.scratch + _local1;
}
com.newgrounds.encoders.JSON.cache.pos++;
}
function _array() {
var _local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (!com.newgrounds.encoders.JSON.cache.mode) {
com.newgrounds.encoders.JSON.cache.mode = "array";
com.newgrounds.encoders.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
_setTargetValue([]);
if (_local1 != "]") {
_addArrayKey();
} else {
_useParent();
}
return(undefined);
}
if (_local1 == ",") {
_addArrayKey();
} else if (_local1 == "]") {
_useParent();
}
com.newgrounds.encoders.JSON.cache.pos++;
}
function _boolean() {
var _local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (_local1 == "t") {
_setTargetValue(true);
com.newgrounds.encoders.JSON.cache.pos = com.newgrounds.encoders.JSON.cache.pos + 3;
} else if (_local1 == "f") {
_setTargetValue(false);
com.newgrounds.encoders.JSON.cache.pos = com.newgrounds.encoders.JSON.cache.pos + 4;
} else {
throw "Bool values must be true or false";
}
_useParent();
}
function _null() {
var _local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (_local1 == "n") {
_setTargetValue(null);
com.newgrounds.encoders.JSON.cache.pos = com.newgrounds.encoders.JSON.cache.pos + 2;
} else {
throw "Null values must be null";
}
_useParent();
}
function _string() {
var _local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (!com.newgrounds.encoders.JSON.cache.mode) {
if (_local1 != "\"") {
throw "Strings must be wrapped in quotes (\"\")";
}
com.newgrounds.encoders.JSON.cache.scratch = "";
com.newgrounds.encoders.JSON.cache.mode = "string";
} else if (_local1 == "\"") {
_setTargetValue(com.newgrounds.encoders.JSON.cache.scratch);
_useParent();
} else {
if (_local1 == "\\") {
com.newgrounds.encoders.JSON.cache.pos++;
_local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
switch (_local1) {
case "n" :
_local1 = newline;
break;
case "r" :
_local1 = newline;
break;
case "t" :
_local1 = "\t";
break;
case "u" :
_local1 = "\\" + _local1;
}
}
com.newgrounds.encoders.JSON.cache.scratch = com.newgrounds.encoders.JSON.cache.scratch + _local1;
}
com.newgrounds.encoders.JSON.cache.pos++;
}
function _number() {
var _local1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
var _local2 = "01234567890.-";
if (!com.newgrounds.encoders.JSON.cache.mode) {
com.newgrounds.encoders.JSON.cache.mode = "number";
com.newgrounds.encoders.JSON.cache.scratch = "";
}
if (_local2.indexOf(_local1) < 0) {
_setTargetValue(Number(com.newgrounds.encoders.JSON.cache.scratch));
_useParent();
} else {
com.newgrounds.encoders.JSON.cache.scratch = com.newgrounds.encoders.JSON.cache.scratch + _local1;
com.newgrounds.encoders.JSON.cache.pos++;
}
}
function _setTargetValue(newval) {
var _local2 = _getParent().obj;
var _local1 = com.newgrounds.encoders.JSON.cache.parents[com.newgrounds.encoders.JSON.cache.parents.length - 1];
_local2[_local1] = newval;
}
function _useParent() {
com.newgrounds.encoders.JSON.cache.mode = com.newgrounds.encoders.JSON.getType(_getParent().obj);
com.newgrounds.encoders.JSON.cache.parents.pop();
}
function _getParent() {
var _local2 = com.newgrounds.encoders.JSON.cache;
var _local1 = 0;
while (_local1 < (com.newgrounds.encoders.JSON.cache.parents.length - 1)) {
_local2 = _local2[com.newgrounds.encoders.JSON.cache.parents[_local1]];
_local1++;
}
return({obj:_local2, name:com.newgrounds.encoders.JSON.cache.parents[_local1]});
}
function _getCurrent() {
var _local2 = com.newgrounds.encoders.JSON.cache;
var _local1 = 0;
while (_local1 < com.newgrounds.encoders.JSON.cache.parents.length) {
_local2 = _local2[com.newgrounds.encoders.JSON.cache.parents[_local1]];
_local1++;
}
return({obj:_local2, name:com.newgrounds.encoders.JSON.cache.parents[_local1]});
}
function _addParent(child) {
com.newgrounds.encoders.JSON.cache.parents.push(child);
}
function _addArrayKey() {
var _local1 = _getCurrent().obj.length;
com.newgrounds.encoders.JSON.cache.parents.push(_local1);
com.newgrounds.encoders.JSON.cache.mode = null;
}
if (cache.pos >= cache.arg.length) {
cache.complete = true;
return(undefined);
}
if (cache.mode) {
eval ("_" + cache.mode)();
} else {
var char = cache.arg.charAt(cache.pos);
switch (char) {
case "{" :
_object();
return;
case "[" :
_array();
return;
case "\"" :
_string();
return;
case "n" :
_null();
return;
case "t" :
_boolean();
return;
case "f" :
_boolean();
return;
default :
_number();
}
}
}
static function chunk_encoder() {
if (cache.complete) {
return(undefined);
}
var _local2 = getType(cache.target);
switch (_local2) {
case "number" :
cache.encoded = cache.encoded + cache.target;
getParent();
break;
case "string" :
cache.encoded = cache.encoded + (("\"" + cache.target.split("\"").join("\\\"")) + "\"");
getParent();
break;
case "boolean" :
cache.encoded = cache.encoded + ((cache.target == true) ? "true" : "false");
getParent();
break;
case "null" :
cache.encoded = cache.encoded + "null";
getParent();
break;
case "array" :
if (cache.target.length < 1) {
cache.encoded = cache.encoded + "]";
getParent();
} else {
cache.parents.push(cache.target);
cache.target = cache.target[0];
if (getType(cache.target) == "array") {
cache.encoded = cache.encoded + "[";
} else if (getType(cache.target) == "object") {
cache.encoded = cache.encoded + "{";
}
}
break;
case "object" :
for (var _local1 in cache.target) {
break;
}
if (_local1 === undefined) {
cache.encoded = cache.encoded + "}";
getParent();
} else {
cache.parents.push(cache.target);
cache.target = cache.target[_local1];
cache.encoded = cache.encoded + (("\"" + _local1.split("\"").join("\\\"")) + "\":");
if (getType(cache.target) == "array") {
cache.encoded = cache.encoded + "[";
} else if (getType(cache.target) == "object") {
cache.encoded = cache.encoded + "{";
}
}
break;
default :
cache.encoded = cache.encoded + "null";
getParent();
}
}
static function getParent() {
if (cache.parents.length > 0) {
var _local1 = cache.parents.pop();
if (getType(_local1) == "array") {
_local1.shift();
} else {
for (var _local3 in _local1) {
delete _local1[_local3];
break;
}
}
if ((getType(_local1) == "object") or (getType(_local1) == "array")) {
for (var _local2 in _local1) {
break;
}
if (!(_local2 === undefined)) {
cache.encoded = cache.encoded + ",";
}
}
cache.target = _local1;
} else {
cache.complete = true;
}
}
static var encode_chunks = 20000;
static var decode_chunks = 20000;
static var busy = false;
}
Symbol 99 MovieClip [__Packages.com.newgrounds.encoders.MD5] Frame 0
class com.newgrounds.encoders.MD5
{
function MD5 () {
}
static function calculate(src) {
return(hex_md5(src));
}
static function hex_md5(src) {
return(binl2hex(core_md5(str2binl(src), src.length * 8)));
}
static function core_md5(x, len) {
x[len >> 5] = x[len >> 5] | (128 << (len % 32));
x[(((len + 64) >>> 9) << 4) + 14] = len;
var _local4 = 1732584193 /* 0x67452301 */;
var _local3 = -271733879;
var _local2 = -1732584194;
var _local1 = 271733878 /* 0x10325476 */;
var _local5 = 0;
while (_local5 < x.length) {
var _local10 = _local4;
var _local9 = _local3;
var _local8 = _local2;
var _local7 = _local1;
_local4 = md5_ff(_local4, _local3, _local2, _local1, x[_local5 + 0], 7, -680876936);
_local1 = md5_ff(_local1, _local4, _local3, _local2, x[_local5 + 1], 12, -389564586);
_local2 = md5_ff(_local2, _local1, _local4, _local3, x[_local5 + 2], 17, 606105819);
_local3 = md5_ff(_local3, _local2, _local1, _local4, x[_local5 + 3], 22, -1044525330);
_local4 = md5_ff(_local4, _local3, _local2, _local1, x[_local5 + 4], 7, -176418897);
_local1 = md5_ff(_local1, _local4, _local3, _local2, x[_local5 + 5], 12, 1200080426);
_local2 = md5_ff(_local2, _local1, _local4, _local3, x[_local5 + 6], 17, -1473231341);
_local3 = md5_ff(_local3, _local2, _local1, _local4, x[_local5 + 7], 22, -45705983);
_local4 = md5_ff(_local4, _local3, _local2, _local1, x[_local5 + 8], 7, 1770035416);
_local1 = md5_ff(_local1, _local4, _local3, _local2, x[_local5 + 9], 12, -1958414417);
_local2 = md5_ff(_local2, _local1, _local4, _local3, x[_local5 + 10], 17, -42063);
_local3 = md5_ff(_local3, _local2, _local1, _local4, x[_local5 + 11], 22, -1990404162);
_local4 = md5_ff(_local4, _local3, _local2, _local1, x[_local5 + 12], 7, 1804603682);
_local1 = md5_ff(_local1, _local4, _local3, _local2, x[_local5 + 13], 12, -40341101);
_local2 = md5_ff(_local2, _local1, _local4, _local3, x[_local5 + 14], 17, -1502002290);
_local3 = md5_ff(_local3, _local2, _local1, _local4, x[_local5 + 15], 22, 1236535329);
_local4 = md5_gg(_local4, _local3, _local2, _local1, x[_local5 + 1], 5, -165796510);
_local1 = md5_gg(_local1, _local4, _local3, _local2, x[_local5 + 6], 9, -1069501632);
_local2 = md5_gg(_local2, _local1, _local4, _local3, x[_local5 + 11], 14, 643717713);
_local3 = md5_gg(_local3, _local2, _local1, _local4, x[_local5 + 0], 20, -373897302);
_local4 = md5_gg(_local4, _local3, _local2, _local1, x[_local5 + 5], 5, -701558691);
_local1 = md5_gg(_local1, _local4, _local3, _local2, x[_local5 + 10], 9, 38016083);
_local2 = md5_gg(_local2, _local1, _local4, _local3, x[_local5 + 15], 14, -660478335);
_local3 = md5_gg(_local3, _local2, _local1, _local4, x[_local5 + 4], 20, -405537848);
_local4 = md5_gg(_local4, _local3, _local2, _local1, x[_local5 + 9], 5, 568446438);
_local1 = md5_gg(_local1, _local4, _local3, _local2, x[_local5 + 14], 9, -1019803690);
_local2 = md5_gg(_local2, _local1, _local4, _local3, x[_local5 + 3], 14, -187363961);
_local3 = md5_gg(_local3, _local2, _local1, _local4, x[_local5 + 8], 20, 1163531501);
_local4 = md5_gg(_local4, _local3, _local2, _local1, x[_local5 + 13], 5, -1444681467);
_local1 = md5_gg(_local1, _local4, _local3, _local2, x[_local5 + 2], 9, -51403784);
_local2 = md5_gg(_local2, _local1, _local4, _local3, x[_local5 + 7], 14, 1735328473);
_local3 = md5_gg(_local3, _local2, _local1, _local4, x[_local5 + 12], 20, -1926607734);
_local4 = md5_hh(_local4, _local3, _local2, _local1, x[_local5 + 5], 4, -378558);
_local1 = md5_hh(_local1, _local4, _local3, _local2, x[_local5 + 8], 11, -2022574463);
_local2 = md5_hh(_local2, _local1, _local4, _local3, x[_local5 + 11], 16, 1839030562);
_local3 = md5_hh(_local3, _local2, _local1, _local4, x[_local5 + 14], 23, -35309556);
_local4 = md5_hh(_local4, _local3, _local2, _local1, x[_local5 + 1], 4, -1530992060);
_local1 = md5_hh(_local1, _local4, _local3, _local2, x[_local5 + 4], 11, 1272893353);
_local2 = md5_hh(_local2, _local1, _local4, _local3, x[_local5 + 7], 16, -155497632);
_local3 = md5_hh(_local3, _local2, _local1, _local4, x[_local5 + 10], 23, -1094730640);
_local4 = md5_hh(_local4, _local3, _local2, _local1, x[_local5 + 13], 4, 681279174);
_local1 = md5_hh(_local1, _local4, _local3, _local2, x[_local5 + 0], 11, -358537222);
_local2 = md5_hh(_local2, _local1, _local4, _local3, x[_local5 + 3], 16, -722521979);
_local3 = md5_hh(_local3, _local2, _local1, _local4, x[_local5 + 6], 23, 76029189);
_local4 = md5_hh(_local4, _local3, _local2, _local1, x[_local5 + 9], 4, -640364487);
_local1 = md5_hh(_local1, _local4, _local3, _local2, x[_local5 + 12], 11, -421815835);
_local2 = md5_hh(_local2, _local1, _local4, _local3, x[_local5 + 15], 16, 530742520);
_local3 = md5_hh(_local3, _local2, _local1, _local4, x[_local5 + 2], 23, -995338651);
_local4 = md5_ii(_local4, _local3, _local2, _local1, x[_local5 + 0], 6, -198630844);
_local1 = md5_ii(_local1, _local4, _local3, _local2, x[_local5 + 7], 10, 1126891415);
_local2 = md5_ii(_local2, _local1, _local4, _local3, x[_local5 + 14], 15, -1416354905);
_local3 = md5_ii(_local3, _local2, _local1, _local4, x[_local5 + 5], 21, -57434055);
_local4 = md5_ii(_local4, _local3, _local2, _local1, x[_local5 + 12], 6, 1700485571);
_local1 = md5_ii(_local1, _local4, _local3, _local2, x[_local5 + 3], 10, -1894986606);
_local2 = md5_ii(_local2, _local1, _local4, _local3, x[_local5 + 10], 15, -1051523);
_local3 = md5_ii(_local3, _local2, _local1, _local4, x[_local5 + 1], 21, -2054922799);
_local4 = md5_ii(_local4, _local3, _local2, _local1, x[_local5 + 8], 6, 1873313359);
_local1 = md5_ii(_local1, _local4, _local3, _local2, x[_local5 + 15], 10, -30611744);
_local2 = md5_ii(_local2, _local1, _local4, _local3, x[_local5 + 6], 15, -1560198380);
_local3 = md5_ii(_local3, _local2, _local1, _local4, x[_local5 + 13], 21, 1309151649);
_local4 = md5_ii(_local4, _local3, _local2, _local1, x[_local5 + 4], 6, -145523070);
_local1 = md5_ii(_local1, _local4, _local3, _local2, x[_local5 + 11], 10, -1120210379);
_local2 = md5_ii(_local2, _local1, _local4, _local3, x[_local5 + 2], 15, 718787259);
_local3 = md5_ii(_local3, _local2, _local1, _local4, x[_local5 + 9], 21, -343485551);
_local4 = safe_add(_local4, _local10);
_local3 = safe_add(_local3, _local9);
_local2 = safe_add(_local2, _local8);
_local1 = safe_add(_local1, _local7);
_local5 = _local5 + 16;
}
return(new Array(_local4, _local3, _local2, _local1));
}
static function md5_cmn(q, a, b, x, s, t) {
return(safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b));
}
static function md5_ff(a, b, c, d, x, s, t) {
return(md5_cmn((b & c) | ((~b) & d), a, b, x, s, t));
}
static function md5_gg(a, b, c, d, x, s, t) {
return(md5_cmn((b & d) | (c & (~d)), a, b, x, s, t));
}
static function md5_hh(a, b, c, d, x, s, t) {
return(md5_cmn((b ^ c) ^ d, a, b, x, s, t));
}
static function md5_ii(a, b, c, d, x, s, t) {
return(md5_cmn(c ^ (b | (~d)), a, b, x, s, t));
}
static function bit_rol(num, cnt) {
return((num << cnt) | (num >>> (32 - cnt)));
}
static function safe_add(x, y) {
var _local1 = (x & 65535) + (y & 65535);
var _local2 = ((x >> 16) + (y >> 16)) + (_local1 >> 16);
return((_local2 << 16) | (_local1 & 65535));
}
static function str2binl(str) {
var _local3 = new Array();
var _local4 = 255;
var _local1 = 0;
while (_local1 < (str.length * 8)) {
_local3[_local1 >> 5] = _local3[_local1 >> 5] | ((str.charCodeAt(_local1 / 8) & _local4) << (_local1 % 32));
_local1 = _local1 + 8;
}
return(_local3);
}
static function binl2hex(binarray) {
var _local4 = new String("");
var _local3 = new String("0123456789abcdef");
var _local1 = 0;
while (_local1 < (binarray.length * 4)) {
_local4 = _local4 + (_local3.charAt((binarray[_local1 >> 2] >> (((_local1 % 4) * 8) + 4)) & 15) + _local3.charAt((binarray[_local1 >> 2] >> ((_local1 % 4) * 8)) & 15));
_local1++;
}
return(_local4);
}
}
Symbol 159 MovieClip Frame 316
_parent._parent.nextFrame();
Symbol 163 Button
on (press) {
getURL ("http://www.phantasmagor.newgrounds.com", _blank);
}
Symbol 251 MovieClip Frame 159
stop();
_parent.nextFrame();
Symbol 252 Button
on (press) {
getURL ("http://www.bgroupproductions.com", _blank);
}
Symbol 257 MovieClip Frame 20
stop();
Symbol 258 MovieClip Frame 25
stop();
Symbol 287 MovieClip Frame 1
_root.stop();
Symbol 287 MovieClip Frame 267
_parent.nextFrame();
Symbol 288 Button
on (press) {
NewgroundsAPI.loadNewgrounds();
}
Symbol 294 MovieClip Frame 1
stop();
Symbol 294 MovieClip Frame 2
_root.playSound(1);
Symbol 303 MovieClip Frame 1
stop();
Symbol 303 MovieClip Frame 100
gotoAndStop (1);
Symbol 303 MovieClip Frame 200
gotoAndStop (1);
Symbol 303 MovieClip Frame 300
gotoAndStop (1);
Symbol 303 MovieClip Frame 400
gotoAndStop (1);
Symbol 303 MovieClip Frame 500
gotoAndStop (1);
Symbol 303 MovieClip Frame 600
gotoAndStop (1);
Symbol 303 MovieClip Frame 700
gotoAndStop (1);
Symbol 303 MovieClip Frame 800
gotoAndStop (1);
Symbol 311 MovieClip Frame 1
stop();
onEnterFrame = function () {
if (random(60) == 0) {
play();
}
};
Symbol 329 MovieClip Frame 1
stop();
onEnterFrame = function () {
if (random(30) == 0) {
play();
}
};
Symbol 330 MovieClip Frame 1
stop();
onEnterFrame = function () {
if (random(120) == 0) {
play();
}
};
Symbol 334 MovieClip Frame 1
if (_root.blondeLevel < 3) {
gotoAndStop (1);
} else {
gotoAndStop (2);
}
onEnterFrame = function () {
if (_root.blondeLevel < 3) {
gotoAndStop (1);
} else {
gotoAndStop (2);
}
};
Symbol 341 MovieClip Frame 1
stop();
onEnterFrame = function () {
if ((random(40) == 0) && ((((_parent._currentframe == 2) && (_root.player.talking)) && (_root.player._currentframe == 2)) || ((_parent._currentframe == 1) && (!_root.player.talking)))) {
play();
}
};
Symbol 342 MovieClip Frame 1
stop();
Symbol 347 MovieClip Frame 1
stop();
onEnterFrame = function () {
if ((random(40) == 0) && (_root.blonde._currentframe == 1)) {
play();
}
};
Symbol 349 MovieClip Frame 1
stop();
Symbol 368 MovieClip Frame 1
this._visible = _root.awd_Score;
onEnterFrame = function () {
this._visible = _root.awd_Score;
};
Symbol 378 MovieClip Frame 1
stop();
onEnterFrame = function () {
if ((random(40) == 0) && (_root.player.talking == true)) {
play();
}
};
Symbol 380 MovieClip Frame 1
this._visible = _root.awd_Score;
this.gotoAndStop(_parent.inside._currentframe);
onEnterFrame = function () {
this._visible = _root.awd_Score;
this.gotoAndStop(_parent.inside._currentframe);
};
Symbol 385 MovieClip Frame 1
stop();
if (_root.guy._currentframe == 3) {
gotoAndStop (2);
}
onEnterFrame = function () {
if (_root.guy._currentframe == 3) {
gotoAndStop (2);
}
};
Symbol 388 MovieClip Frame 1
this._visible = _root.awd_Score;
this.gotoAndStop(_parent.inside._currentframe);
onEnterFrame = function () {
this._visible = _root.awd_Score;
this.gotoAndStop(_parent.inside._currentframe);
};
Symbol 391 MovieClip Frame 1
stop();
talking = false;
onEnterFrame = function () {
if (_currentframe != 2) {
if (_root.blonde._currentframe == 2) {
_root.blonde.gotoAndStop(1);
}
}
if (_currentframe != 5) {
if (_root.guy._currentframe == 2) {
_root.guy.gotoAndStop(1);
}
}
if (_root.fatty._currentframe == 2) {
_root.blonde.gotoAndStop(2);
}
};
Symbol 398 MovieClip Frame 1
stop();
onEnterFrame = function () {
if (random(40) == 0) {
play();
}
};
Symbol 403 MovieClip Frame 1
stop();
Symbol 403 MovieClip Frame 3
_root.asian.gotoAndStop(2);
Symbol 410 MovieClip Frame 1
stop();
onEnterFrame = function () {
if ((random(40) == 0) && ((_root.guy._currentframe == 1) || (((_root.guy._currentframe == 3) && (_root.player._currentframe == 5)) && (_root.player.talking)))) {
play();
}
};
Symbol 412 MovieClip Frame 1
stop();
Symbol 428 Button
on (press) {
getURL ("http://www.thatcomposerguy.newgrounds.com", _blank);
}
Symbol 430 MovieClip Frame 230
stop();
Symbol 436 MovieClip Frame 21
stop();
Symbol 436 MovieClip Frame 100
gotoAndPlay (50);
Symbol 439 MovieClip Frame 1
playingNow = false;
if (_root.muted) {
stop();
playingNow = false;
} else if (!playingNow) {
playingNow = true;
play();
}
onEnterFrame = function () {
if (_root.muted) {
stop();
playingNow = false;
} else if (!playingNow) {
playingNow = true;
play();
}
};
Symbol 453 MovieClip Frame 1
stop();
Symbol 453 MovieClip Frame 3
overMsg.text = _root.Feedback.text;
_root.Feedback.text = "Type AWARDS to view achievements or type PLAY to try again";
if (_root.awards._currentframe == 1) {
_root.playSound(4);
}
Symbol 453 MovieClip Frame 4
overMsg.text = _root.Feedback.text;
_root.Feedback.text = "Type AWARDS to view achievements or type PLAY to try again";
if (_root.awards._currentframe == 1) {
_root.playSound(4);
}
Symbol 453 MovieClip Frame 5
overMsg.text = _root.Feedback.text;
_root.Feedback.text = "Type AWARDS to view achievements or type PLAY to try again";
if (_root.awards._currentframe == 1) {
_root.playSound(4);
}
Symbol 453 MovieClip Frame 6
overMsg.text = _root.Feedback.text;
_root.Feedback.text = "Type AWARDS to view achievements or type PLAY to try again";
if (_root.awards._currentframe == 1) {
_root.playSound(5);
}
Symbol 453 MovieClip Frame 7
overMsg.text = _root.Feedback.text;
_root.Feedback.text = "Type AWARDS to view achievements or type PLAY to try again";
if (_root.awards._currentframe == 1) {
_root.playSound(4);
}
Symbol 453 MovieClip Frame 8
overMsg.text = _root.Feedback.text;
_root.Feedback.text = "Type AWARDS to view achievements or type PLAY to try again";
if (_root.awards._currentframe == 1) {
_root.playSound(5);
}
Symbol 453 MovieClip Frame 9
overMsg.text = _root.Feedback.text;
_root.Feedback.text = "Type AWARDS to view achievements or type PLAY to try again";
if (_root.awards._currentframe == 1) {
_root.playSound(5);
}
Symbol 453 MovieClip Frame 10
overMsg.text = _root.Feedback.text;
_root.Feedback.text = "Type AWARDS to view achievements or type PLAY to try again";
if (_root.awards._currentframe == 1) {
_root.playSound(4);
}
Symbol 453 MovieClip Frame 11
overMsg.text = _root.Feedback.text;
_root.Feedback.text = "Type AWARDS to view achievements or type PLAY to try again";
if (_root.awards._currentframe == 1) {
_root.playSound(4);
}
Symbol 453 MovieClip Frame 12
overMsg.text = _root.Feedback.text;
_root.Feedback.text = "Type AWARDS to view achievements or type PLAY to try again";
if (_root.awards._currentframe == 1) {
_root.playSound(5);
}
Symbol 453 MovieClip Frame 13
overMsg.text = _root.Feedback.text;
_root.Feedback.text = "Type AWARDS to view achievements or type PLAY to try again";
if (_root.awards._currentframe == 1) {
_root.playSound(4);
}
Symbol 503 MovieClip Frame 1
this._visible = _root.awd_BoozeHound;
Symbol 506 MovieClip Frame 1
this._visible = _root.awd_Sleazebag;
Symbol 509 MovieClip Frame 1
this._visible = _root.awd_Experimenting;
Symbol 512 MovieClip Frame 1
this._visible = _root.awd_CockBlock;
Symbol 515 MovieClip Frame 1
this._visible = _root.awd_AlphaMale;
Symbol 518 MovieClip Frame 1
this._visible = _root.awd_ScooterRooter;
Symbol 521 MovieClip Frame 1
this._visible = _root.awd_Quitter;
Symbol 524 MovieClip Frame 1
this._visible = _root.awd_Rejection;
Symbol 527 MovieClip Frame 1
this._visible = _root.awd_Violence;
Symbol 530 MovieClip Frame 1
this._visible = _root.awd_TrueGentleman;
Symbol 533 MovieClip Frame 1
this._visible = _root.awd_Hospitalized;
Symbol 536 MovieClip Frame 1
this._visible = _root.awd_Frotteurism;
Symbol 539 MovieClip Frame 1
this._visible = _root.awd_Thirsty;
Symbol 542 MovieClip Frame 1
this._visible = _root.awd_Hungry;
Symbol 545 MovieClip Frame 1
this._visible = _root.awd_Deaf;
Symbol 548 MovieClip Frame 1
this._visible = _root.awd_Flash;
Symbol 551 MovieClip Frame 1
this._visible = _root.awd_Beached;
Symbol 554 MovieClip Frame 1
this._visible = _root.awd_LadiesMan;
Symbol 557 MovieClip Frame 1
this._visible = _root.awd_Score;
Symbol 560 MovieClip Frame 1
this._visible = _root.awd_Casanova;
Symbol 563 MovieClip Frame 1
this._visible = _root.awd_Multiculturalism;
Symbol 566 MovieClip Frame 1
stop();
Symbol 566 MovieClip Frame 2
_root.Feedback.text = "Type CLOSE to hide list of awards";
if (_root.awd_Thirsty) {
thirsty.text = "Nothing like that first taste of cold beer!";
}
if (_root.awd_Hungry) {
hungry.text = "They looked like mints, but they weren't at all!";
}
if (_root.awd_Deaf) {
deaf.text = "The sound of silence...";
}
if (_root.awd_Quitter) {
quitter.text = "Only losers give up and go home alone.";
}
if (_root.awd_LadiesMan) {
ladiesMan.text = "...a hell of a good time!";
}
if (_root.awd_BoozeHound) {
boozeHound.text = "Drink til you drop.";
}
if (_root.awd_ScooterRooter) {
scooterRooter.text = "Fun to ride, but don't let anyone catch you on one.";
}
if (_root.awd_TrueGentleman) {
trueGentleman.text = "Treat her like a lady.";
}
if (_root.awd_Sleazebag) {
sleazebag.text = "Can anyone say... Date rape?";
}
if (_root.awd_Hospitalized) {
hospitalized.text = "Let's take this outside!";
}
if (_root.awd_Experimenting) {
experimenting.text = "Proven to double your chances!";
}
if (_root.awd_Rejection) {
rejection.text = "Love hurts.";
}
if (_root.awd_CockBlock) {
cockBlock.text = "Chicks before dicks.";
}
if (_root.awd_Violence) {
violence.text = "Put em up.";
}
if (_root.awd_Frotteurism) {
frotteurism.text = "It's just too hard to resist...";
}
if (_root.awd_Multiculturalism) {
multicultural.text = "Ahh... Theres nothing like a little asian takeaway!";
}
if (_root.awd_AlphaMale) {
alphaMale.text = "Sometimes you just have to establish dominance.";
}
if (_root.awd_Casanova) {
casanova.text = "There's clearly no one that you can't please!";
}
if (_root.awd_Flash) {
theFlash.text = "Sometimes things are best kept to yourself!";
}
if (_root.awd_Beached) {
beached.text = "Ohh noo! She's beached as bru!";
}
if (_root.awd_Score) {
score.text = "You are officially the master of scoring!";
}
Symbol 566 MovieClip Frame 3
_root.playSound(6);