Combined Code
movieClip 13 {
}
movieClip 16 {
}
movieClip 26 {
}
movieClip 28 {
frame 40 {
stop();
}
}
movieClip 34 {
}
button 35 {
on (release) {
startMovie();
}
}
movieClip 36 Preloader Bar (NewgroundsAPI) {
#initclip
Object.registerClass('Preloader Bar (NewgroundsAPI)', com.newgrounds.components.PreloaderBar);
#endinitclip
}
button 63 {
on (release) {
com.newgrounds.API.loadNewgrounds();
}
}
movieClip 69 {
frame 1 {
onEnterFrame = function () {
if (_visible) {
_rotation = _rotation + 30;
} else {
delete onEnterFrame;
}
};
}
}
movieClip 70 {
frame 11 {
gotoAndPlay(1);
}
}
movieClip 71 Flash Ad (NewgroundsAPI) {
#initclip
Object.registerClass('Flash Ad (NewgroundsAPI)', com.newgrounds.components.FlashAd);
#endinitclip
}
movieClip 80 {
frame 10 {
stop();
}
}
movieClip 82 {
frame 37 {
_parent.setGotoFrame('done');
stop();
}
}
movieClip 84 {
}
movieClip 86 NewgroundsAPIAsset_Medal_Icon_Placeholder {
}
movieClip 93 NewgroundsAPIAsset_Medal_Popup {
frame 1 {
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay('closeme');
}
_visible = true;
icon._visible = false;
pop_delay = setInterval(endDelay, 3000);
}
frame 2 {
medal.attachIcon(icon);
}
frame 10 {
icon._visible = true;
medal_name = medal.getName();
medal_value = medal.getValue() + 'pts';
stop();
}
frame 21 {
this.removeMovieClip();
_visible = false;
stop();
}
}
movieClip 99 NewgroundsAPIAsset_Login_Warning {
frame 1 {
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay('closeme');
}
_x = 0;
_y = 0;
_visible = true;
pop_delay = setInterval(endDelay, 6000);
}
frame 10 {
stop();
}
frame 21 {
this.removeMovieClip();
_visible = false;
stop();
}
}
movieClip 102 NewgroundsAPIAsset_Connection_Error {
frame 1 {
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay('closeme');
}
_x = 0;
_y = 0;
_visible = true;
pop_delay = setInterval(endDelay, 6000);
}
frame 10 {
stop();
}
frame 21 {
this.removeMovieClip();
_visible = false;
stop();
}
}
movieClip 104 {
}
movieClip 106 {
}
movieClip 108 {
}
movieClip 110 {
}
movieClip 112 {
}
movieClip 114 {
}
movieClip 116 {
}
movieClip 118 {
}
movieClip 120 {
}
movieClip 122 {
}
movieClip 123 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;
}
}
button 127 {
on (release) {
this._visible = false;
this.removeMovieClip();
}
}
button 133 {
on (release) {
getURL(official_version_url, '_blank');
}
}
movieClip 135 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);
}
}
button 136 {
on (release) {
getURL(official_version_url, '_blank');
}
}
movieClip 140 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);
}
}
movieClip 141 API Connector (NewgroundsAPI) {
#initclip
Object.registerClass('API Connector (NewgroundsAPI)', com.newgrounds.components.APIConnector);
#endinitclip
frame 20 {
_visible = false;
}
}
frame 1 {
function __com_mochibot__(swfid, mc, lv, trk) {
var x;
var g;
var s;
var fv;
var sb;
var u;
var res;
var mb;
var mbc;
var pv;
mb = '__mochibot__';
mbc = 'mochibot.com';
g = _global ? _global : _level0._root;
if (g[mb + swfid]) {
return g[mb + swfid];
}
s = System.security;
x = mc._root.getSWFVersion;
fv = x ? mc.getSWFVersion() : (_global ? 6 : 5);
if (!s) {
s = {};
}
sb = s.sandboxType;
if (sb == 'localWithFile') {
return null;
}
x = s.allowDomain;
if (x) {
s.allowDomain(mbc);
}
x = s.allowInsecureDomain;
if (x) {
s.allowInsecureDomain(mbc);
}
pv = (fv == 5) ? /:$version : System.capabilities.version;
u = 'http://' + mbc + '/my/core.swf?mv=8&fv=' + fv + '&v=' + escape(pv) + '&swfid=' + escape(swfid) + '&l=' + lv + '&f=' + mc + (sb ? '&sb=' + sb : '') + (trk ? '&t=1' : '');
lv = fv > 6 ? mc.getNextHighestDepth() : (g[mb + 'level'] ? g[mb + 'level'] + 1 : lv);
g[mb + 'level'] = lv;
if (fv == 5) {
res = '_level' + lv;
if (!eval(res)) {
loadMovieNum(u, lv);
}
return res;
}
res = mc.createEmptyMovieClip(mb + swfid, lv);
res.loadMovie(u);
return res;
}
__com_mochibot__('82d02166', this, 10301, true);
}
instance of movieClip 36 Preloader Bar (NewgroundsAPI) {
onClipEvent (construct) {
AUTO_PLAY = false;
}
}
instance of movieClip 71 Flash Ad (NewgroundsAPI) {
onClipEvent (construct) {
show_background = true;
}
}
instance of movieClip 141 API Connector (NewgroundsAPI) {
onClipEvent (construct) {
api_id = '16945:3uKqI00z';
encryption_key = 'COpzpJ1aSJFThVdpNQUUVLLM9A0JZppG';
version = '1';
fake_session = true;
debug = true;
error_screens = true;
medal_popups = true;
}
}
movieClip 147 {
}
movieClip 151 {
}
movieClip 38 __Packages.com.newgrounds.API {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.API) {
var v1 = function () {};
com.newgrounds.API = v1;
var v2 = v1.prototype;
v1.setVersion = function (v) {
com.newgrounds.API.version = v;
};
v1.setUserEmail = function (e) {
com.newgrounds.API.user_email = e;
};
v1.setFakeSession = function (fake) {
com.newgrounds.API.fake_session = fake;
};
v1.setPreload = function (p) {
com.newgrounds.API.preload = p;
};
v1.getPercentLoaded = function () {
var v2;
if (com.newgrounds.API.preload && com.newgrounds.API.preload_items > 0) {
v2 = 80;
var v4 = Math.round((com.newgrounds.API.preload_items_loaded / com.newgrounds.API.preload_items) * 20);
var v3 = Math.round((_root.getBytesLoaded() / _root.getBytesTotal()) * v2) + v4;
return v3;
}
v2 = 100;
v3 = Math.round((_root.getBytesLoaded() / _root.getBytesTotal()) * v2);
return v3;
};
v1.reportNewAsset = function () {
if (com.newgrounds.API.preload) {
++com.newgrounds.API.preload_items;
}
};
v1.reportAssetLoaded = function () {
if (com.newgrounds.API.preload) {
++com.newgrounds.API.preload_items_loaded;
}
};
v1.populateMedals = function (medal_list) {
if (com.newgrounds.API.medals === null) {
com.newgrounds.API.medals = new Array();
var v2 = 0;
while (v2 < medal_list.length) {
var v1 = medal_list[v2];
com.newgrounds.API.medals.push(new com.newgrounds.Medal(v1.medal_id, v1.medal_name, v1.medal_value, v1.medal_difficulty, v1.medal_unlocked, v1.medal_icon));
++v2;
}
}
};
v1.populateSaveGroups = function (save_group_list, file_path, image_path) {
com.newgrounds.SaveFile.setFilePath(file_path);
com.newgrounds.SaveFile.setImagePath(image_path);
com.newgrounds.API.save_groups = new Array();
var v6 = 0;
while (v6 < save_group_list.length) {
var v2 = save_group_list[v6];
var v5 = new com.newgrounds.SaveGroup(v2.group_id, v2.group_name, v2.group_type);
var v4 = 0;
while (v4 < v2.keys.length) {
var v3 = v2.keys[v4];
v5.addKey(v3.id, v3.name, v3.type);
++v4;
}
v4 = 0;
while (v4 < v2.ratings.length) {
var v1 = v2.ratings[v4];
v5.addRating(v1.id, v1.name, v1.min, v1.max, v1.float);
++v4;
}
com.newgrounds.API.save_groups.push(v5);
++v6;
}
};
v1.populateScoreBoards = function (score_boards) {
com.newgrounds.API.scoreboards = new Array();
var v1 = 0;
while (v1 < score_boards.length) {
com.newgrounds.API.scoreboards.push(new com.newgrounds.ScoreBoard(score_boards[v1].id, score_boards[v1].name));
++v1;
}
};
v1.getOfficialURL = function () {
var v1 = com.newgrounds.API.GATEWAY_URL + '?tracker_id=' + com.newgrounds.API.movie_id + '&command_id=loadOfficalVersion&seed=' + Math.random();
if (com.newgrounds.API.debug) {
v1 += '&debug=1';
}
return v1;
};
v1.loadOfficialURL = function () {
getURL(com.newgrounds.API.getOfficialURL(), '_blank');
};
v1.hasUserSession = function () {
if (com.newgrounds.API.session_id && com.newgrounds.API.publisher_id) {
return true;
return false;
}
if (_root.NewgroundsAPI_PublisherID && _root.NewgroundsAPI_SessionID) {
return true;
}
return false;
};
v1.hostIsCompatible = function () {
return _root.NewgroundsAPI_PublisherID !== undefined;
};
v1.isNewgrounds = function () {
return com.newgrounds.API.publisher_id == 1 || _root.NewgroundsAPI_PublisherID == 1 || ((com.newgrounds.API.getHost()).toLowerCase()).indexOf('ungrounded.net') > -1 || ((com.newgrounds.API.getHost()).toLowerCase()).indexOf('newgrounds.com') > -1;
};
v1.hasPublisher = function () {
return com.newgrounds.API.publisher_id || _root.NewgroundsAPI_PublisherID;
};
v1.hasUserEmail = function () {
if (com.newgrounds.API.user_email) {
return true;
}
return false;
};
v1.isConnected = function () {
return com.newgrounds.API.connected;
};
v1.getID = function () {
return com.newgrounds.API.getTrackerID();
};
v1.getTrackerID = function () {
return com.newgrounds.API.tracker_id;
};
v1.getUserID = function () {
return com.newgrounds.API.user_id;
};
v1.getUserName = function () {
return com.newgrounds.API.user_name;
};
v1.connectionTimeOut = function () {
com.newgrounds.API.reportAssetLoaded();
clearInterval(com.newgrounds.API.timeout);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.API_CONNECTED, false, new com.newgrounds.APIError('CONNECTION_FAILED', 'Connection to API gateway timed out.'));
};
v1.connect = function (m_id, encrypt_key, debug_mode) {
if (com.newgrounds.API.connected) {
return undefined;
}
com.newgrounds.API.sendMessage('Connecting to the Newgrounds API Gateway...');
var v2 = function () {
com.newgrounds.API.connectionTimeOut();
};
com.newgrounds.API.timeout = setInterval(v2, 10000, null);
if (!m_id) {
com.newgrounds.API.fatalError('API.connect() - missing required movie_id parameter', 'connect');
}
com.newgrounds.API.movie_id = String(m_id);
com.newgrounds.API.tracker_id = Number(com.newgrounds.API.movie_id.substring(0, com.newgrounds.API.movie_id.indexOf(':')));
com.newgrounds.API.encryption_key = encrypt_key;
com.newgrounds.API.debug = debug_mode;
com.newgrounds.API.user_id = 0;
com.newgrounds.API.user_name = 'Guest';
if (_root.NewgroundsAPI_PublisherID) {
com.newgrounds.API.publisher_id = _root.NewgroundsAPI_PublisherID;
if (_root.NewgroundsAPI_SessionID) {
com.newgrounds.API.session_id = _root.NewgroundsAPI_SessionID;
}
} else {
if (com.newgrounds.API.fake_session) {
com.newgrounds.API.publisher_id = 1;
com.newgrounds.API.session_id = 'D3bu64p1U53R';
com.newgrounds.API.user_id = 10;
com.newgrounds.API.user_name = 'API-Debugger';
} else {
if (com.newgrounds.API.debug) {
com.newgrounds.API.publisher_id = 1;
}
com.newgrounds.API.session_id = null;
}
}
if (_root.NewgroundsAPI_UserName) {
com.newgrounds.API.user_name = _root.NewgroundsAPI_UserName;
}
if (_root.NewgroundsAPI_UserID) {
com.newgrounds.API.user_id = _root.NewgroundsAPI_UserID;
}
if (_root.NewgroundsAPI_UserpageFormat) {
com.newgrounds.API.userpage_format = _root.NewgroundsAPI_UserpageFormat;
}
com.newgrounds.API.reportNewAsset();
com.newgrounds.API.connected = true;
com.newgrounds.API.sendCommand('connectMovie', {'host': com.newgrounds.API.getHost(), 'movie_version': com.newgrounds.API.version});
};
v1.getHost = function () {
if (!com.newgrounds.API.host) {
var v1 = _url;
if ((v1.toLowerCase()).indexOf('http://') > -1 or (v1.toLowerCase()).indexOf('https://') > -1) {
if ((v1.toLowerCase()).indexOf(com.newgrounds.API.NEWGROUNDS_PREVIEW) > -1) {
com.newgrounds.API.host = com.newgrounds.API.NEWGROUNDS_PREVIEW;
} else {
com.newgrounds.API.host = (v1.split('/'))[2].toLowerCase();
}
return com.newgrounds.API.host;
}
com.newgrounds.API.host = com.newgrounds.API.LOCAL_HOST;
}
return com.newgrounds.API.host;
};
v1.isPublishedHost = function () {
for (var v1 in com.newgrounds.API.PREVIEW_HOSTS) {
if (com.newgrounds.API.getHost() == com.newgrounds.API.PREVIEW_HOSTS[v1]) {
return false;
}
}
return true;
};
v1.loadUserPage = function (u_id, u_name) {
if (u_id == undefined && u_name == undefined) {
if (com.newgrounds.API.hasUserSession()) {
u_id = com.newgrounds.API.user_id;
u_name = com.newgrounds.API.user_name;
} else {
return false;
}
}
if (com.newgrounds.API.publisher_id == 1) {
var v1 = 'http://' + com.newgrounds.API.user_name.toLowerCase() + '.newgrounds.com';
getURL(v1, '_blank');
return true;
return false;
}
if (com.newgrounds.API.userpage_format) {
v1 = com.newgrounds.API.userpage_format;
v1 = (v1.split(':user_id:')).join(u_id.toString());
v1 = (v1.split(':user_name:')).join(escape(u_name));
getURL(v1, '_blank');
return true;
}
return false;
};
v1.loadNewgrounds = function () {
com.newgrounds.API.sendCommand('loadNewgrounds', {'host': com.newgrounds.API.getHost()}, true);
};
v1.loadMySite = function () {
com.newgrounds.API.sendCommand('loadMySite', {'host': com.newgrounds.API.getHost()}, true);
};
v1.loadCustomLink = function (link) {
com.newgrounds.API.sendCommand('loadCustomLink', {'host': com.newgrounds.API.getHost(), 'link': link}, true);
};
v1.logCustomEvent = function (event) {
com.newgrounds.API.sendCommand('logCustomEvent', {'host': com.newgrounds.API.getHost(), 'event': event});
};
v1.getScoreBoard = function (board) {
if (!com.newgrounds.API.scoreboards || com.newgrounds.API.scoreboards.length < 1) {
com.newgrounds.API.sendWarning('You do not have any scoreboards configured in your API setup.');
return null;
}
for (var v2 in com.newgrounds.API.scoreboards) {
if (typeof board == 'string' && com.newgrounds.API.scoreboards[v2].name == board) {
return com.newgrounds.API.scoreboards[v2];
} else {
if (typeof board == 'number' && com.newgrounds.API.scoreboards[v2].id == board) {
return com.newgrounds.API.scoreboards[v2];
}
}
}
com.newgrounds.API.sendWarning('Could not find any scoreboards named \'' + board + '\'.');
return null;
};
v1.postScore = function (board_name, value, tag) {
var v3 = com.newgrounds.API.getScoreBoard(board_name);
if (tag === undefined) {
tag = '';
}
if (!v3) {
com.newgrounds.API.sendError({'command_id': 'postScore'}, new com.newgrounds.APIError('INVALID_SCOREBOARD', 'Failed to post score. Check the spelling of your board name.'));
return undefined;
}
if (value == undefined) {
com.newgrounds.API.sendError({'command_id': 'postScore'}, new com.newgrounds.APIError('MISSING_PARAM', 'Missing score value'));
return undefined;
}
com.newgrounds.API.sendSecureCommand('postScore', {'user_name': com.newgrounds.API.user_name, 'board': v3.id, 'value': value, 'tag': tag, 'publisher_id': com.newgrounds.API.publisher_id});
};
v1.loadScores = function (board_name, period, tag) {
var v3 = 'loadScores';
var v2 = com.newgrounds.API.getScoreBoard(board_name);
if (!v2) {
com.newgrounds.API.sendError({'command_id': v3}, new com.newgrounds.APIError('INVALID_SCOREBOARD', 'Failed to load scores. Check the spelling of your board name.'));
return undefined;
}
var v1 = {};
v1.publisher_id = com.newgrounds.API.publisher_id;
v1.board = v2.id;
v1.num_results = v2.num_results;
v1.page = v2.page;
if (period === undefined) {
v1.period = v2.period;
} else {
v1.period = period;
}
if (tag === undefined) {
v1.tag = v2.tag;
} else {
v1.tag = tag;
}
com.newgrounds.API.sendCommand(v3, v1);
};
v1.unlockMedal = function (medal, x, y) {
if (!medal) {
com.newgrounds.API.sendError({'command_id': 'unlockMedal'}, new com.newgrounds.APIError('MISSING_PARAM', 'missing required medal name'));
return undefined;
}
if (typeof medal != 'object') {
medal = com.newgrounds.API.getMedal(medal);
}
if (!medal) {
com.newgrounds.API.sendError({'command_id': 'unlockMedal'}, new com.newgrounds.APIError('INVALID_MEDAL', 'medal unlock failed, check your medal name for correct spelling.'));
return undefined;
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.UNLOCK_MEDAL, true, {'medal': medal, 'x': x, 'y': y});
if (com.newgrounds.API.hasUserSession() or com.newgrounds.API.debug) {
com.newgrounds.API.sendMessage('Attempting to unlock \'' + medal.getName() + '\'');
var v3 = new Object();
v3.medal_id = medal.getID();
com.newgrounds.API.sendSecureCommand('unlockMedal', v3);
} else {
com.newgrounds.API.sendMessage('Unlocking \'' + medal.getName() + '\'');
medal.setUnlocked(true);
var v2 = com.newgrounds.API.loadLocal('medals_unlocked');
if (!v2) {
v2 = new Object();
}
v2[medal.getID()] = true;
com.newgrounds.API.saveLocal('medals_unlocked', v2);
}
};
v1.loadMedals = function () {
if (com.newgrounds.API.medals) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.MEDALS_LOADED, true, {'medals': com.newgrounds.API.medals});
return undefined;
}
var v1 = new Object();
if (com.newgrounds.API.hasUserSession()) {
v1.publisher_id = com.newgrounds.API.publisher_id;
v1.user_id = com.newgrounds.API.user_id;
}
com.newgrounds.API.sendCommand('getMedals', v1);
};
v1.getMedals = function () {
return com.newgrounds.API.medals;
};
v1.getMedal = function (identifier) {
if (!com.newgrounds.API.medals || com.newgrounds.API.medals.length < 1) {
com.newgrounds.API.sendWarning('You do not have any medals configured on your API setup!');
return false;
}
for (var v3 in com.newgrounds.API.medals) {
var v1 = com.newgrounds.API.medals[v3];
if (typeof identifier == 'string' && v1.getName() == identifier) {
return v1;
} else {
if (v1.getID() == identifier) {
return v1;
}
}
}
com.newgrounds.API.sendWarning('Could not find any medals named \'' + identifier + '\'.');
return false;
};
v1.saveLocal = function (save_id, save_data, size_allocation) {
if (!com.newgrounds.API.sharedObjects[save_id]) {
com.newgrounds.API.sharedObjects[save_id] = SharedObject.getLocal('ng_ap_secure_' + com.newgrounds.API.movie_id + '_' + save_id);
}
com.newgrounds.API.sharedObjects[save_id].data[save_id] = com.newgrounds.API.encodeData(save_data);
com.newgrounds.API.sharedObjects[save_id].flush();
};
v1.loadLocal = function (save_id) {
if (!com.newgrounds.API.sharedObjects[save_id]) {
com.newgrounds.API.sharedObjects[save_id] = SharedObject.getLocal('ng_ap_secure_' + com.newgrounds.API.movie_id + '_' + save_id);
}
com.newgrounds.API.sharedObjects[save_id].flush();
com.newgrounds.API.echo('sharedobject ' + save_id + ' is: ' + com.newgrounds.API.sharedObjects[save_id].data[save_id]);
if (com.newgrounds.API.sharedObjects[save_id].data[save_id]) {
com.newgrounds.API.echo('decoded: ' + com.newgrounds.API.decodeData(com.newgrounds.API.sharedObjects[save_id].data[save_id]));
return com.newgrounds.API.decodeData(com.newgrounds.API.sharedObjects[save_id].data[save_id]);
} else {
return null;
}
};
v1.encodeData = function (data) {
return com.newgrounds.API.compressHex(com.newgrounds.encoders.RC4.encrypt(com.newgrounds.encoders.JSON.encode(data), com.newgrounds.API.encryption_key));
};
v1.decodeData = function (base) {
return com.newgrounds.encoders.JSON.decode(com.newgrounds.encoders.RC4.decrypt(com.newgrounds.API.uncompressHex(base), com.newgrounds.API.encryption_key));
};
v1.compressHex = function (hex_value) {
var v6 = hex_value.length % 6;
var v4 = '';
var v5 = new com.newgrounds.encoders.BaseN(com.newgrounds.API.compression_radix);
var v1 = 0;
while (v1 < hex_value.length) {
var v2 = Number('0x' + hex_value.substr(v1, 6));
v4 += v5.encode(v2, 4);
v1 += 6;
}
return v6 + v4;
};
v1.uncompressHex = function (base_value) {
var v9 = Number(base_value.charAt(0));
var v7 = '';
var v3;
var v8 = new com.newgrounds.encoders.BaseN(com.newgrounds.API.compression_radix);
var v2 = 1;
while (v2 < base_value.length) {
var v6 = base_value.substr(v2, 4);
var v5 = v8.decode(v6);
var v1 = com.newgrounds.API.dec2hex(v5);
if (v2 + 4 < base_value.length) {
v3 = 6;
} else {
v3 = v9;
}
while (v1.length < v3) {
v1 = '0' + v1;
}
v7 += v1;
v2 += 4;
}
return v7;
};
v1.dec2hex = function (dec) {
var v4 = '0123456789ABCDEF';
var v3 = '';
while (dec > 0) {
var v2 = dec % 16;
v3 = v4.charAt(v2) + v3;
dec = (dec - v2) / 16;
}
return v3;
};
v1.getSaveGroup = function (group) {
if (com.newgrounds.API.save_groups == null || com.newgrounds.API.save_groups.length < 1) {
com.newgrounds.API.sendWarning('You do not have any save groups configured in your API setup!');
return null;
}
var v1 = 0;
while (v1 <= com.newgrounds.API.save_groups.length) {
if (typeof group == 'number' or (Number(group)).toString() == String(group)) {
if (com.newgrounds.API.save_groups[v1].getID() == Number(group)) {
return com.newgrounds.API.save_groups[v1];
}
} else {
if (typeof group == 'string') {
if ((com.newgrounds.API.save_groups[v1].getName()).toLowerCase() == group.toLowerCase()) {
return com.newgrounds.API.save_groups[v1];
}
}
}
++v1;
}
com.newgrounds.API.sendWarning('Could not find any save groups named \'' + group + '\'.');
return null;
};
v1.getCurrentSaveFile = function () {
return com.newgrounds.API.save_file;
};
v1.setCurrentSaveFile = function (current) {
com.newgrounds.API.save_file = current;
};
v1.loadSaveFile = function (save_id, get_contents) {
if (get_contents === undefined) {
get_contents = true;
}
var v1 = 'loadSaveFile';
var v2 = {'publisher_id': com.newgrounds.API.publisher_id, 'save_id': save_id, 'get_contents': get_contents};
com.newgrounds.API.save_file = null;
com.newgrounds.API.sendCommand(v1, v2);
};
v1.loadFilesByDate = function (group_name, sort_descending, key_name, key_value) {
if (sort_descending === undefined) {
sort_descending = true;
}
var v2 = com.newgrounds.API.getSaveGroup(group_name);
if (!v2) {
var v3 = new com.newgrounds.APIError('QUERY_INCOMPLETE', 'The query could not be preformed, check the spelling of your save group name.');
com.newgrounds.API.sendError({'command_id': 'loadFilesByDate'}, v3);
return undefined;
}
var v1 = new com.newgrounds.SaveGroupQuery(v2);
if (key_name) {
v1.addKeyCondition(key_name, '=', key_value);
}
v1.sortOn('CREATED_ON', sort_descending ? 'DESC' : 'ASC');
v1.execute();
};
v1.loadFilesByViews = function (group_name, sort_descending, key_name, key_value) {
if (sort_descending === undefined) {
sort_descending = true;
}
var v2 = com.newgrounds.API.getSaveGroup(group_name);
if (!v2) {
var v3 = new com.newgrounds.APIError('QUERY_INCOMPLETE', 'The query could not be preformed, check the spelling of your save group name.');
com.newgrounds.API.sendError({'command_id': 'loadFilesByViews'}, v3);
return undefined;
}
var v1 = new com.newgrounds.SaveGroupQuery(v2);
if (key_name) {
v1.addKeyCondition(key_name, '=', key_value);
}
v1.sortOn('TOTAL_VIEWS', sort_descending ? 'DESC' : 'ASC');
v1.execute();
};
v1.loadFilesByRating = function (group_name, rating_name, sort_descending, key_name, key_value) {
if (sort_descending === undefined) {
sort_descending = true;
}
var v2 = com.newgrounds.API.getSaveGroup(group_name);
if (!v2) {
var v3 = new com.newgrounds.APIError('QUERY_INCOMPLETE', 'The query could not be preformed, check the spelling of your save group name.');
com.newgrounds.API.sendError({'command_id': 'loadFilesByRating'}, v3);
return undefined;
}
var v1 = new com.newgrounds.SaveGroupQuery(v2);
if (key_name) {
v1.addKeyCondition(key_name, '=', key_value);
}
v1.sortOnRating(rating_name, sort_descending ? 'DESC' : 'ASC', 'score');
v1.execute();
};
v1.lookupSaveFiles = function (save_group) {
var v1 = 'lookupSaveFiles';
var v2 = {'publisher_id': com.newgrounds.API.publisher_id, 'group_id': save_group.getID(), 'query': com.newgrounds.encoders.JSON.encode(save_group.getQuery(true))};
com.newgrounds.API.sendCommand(v1, v2);
};
v1.newSaveFile = function (group) {
var v1 = com.newgrounds.API.getSaveGroup(group);
if (v1) {
return v1.newFile();
} else {
var v2 = new com.newgrounds.APIError('INVALID_SAVE_GROUP', 'You can not create new files in invalid groups.');
com.newgrounds.API.sendError({'command_id': 'newSaveFile'}, v2);
}
};
v1.newSaveQuery = function (group) {
var v1 = com.newgrounds.API.getSaveGroup(group);
if (v1) {
return v1.newQuery();
} else {
var v2 = new com.newgrounds.APIError('INVALID_SAVE_GROUP', '\'' + group + '\' is not a valid save group.');
com.newgrounds.API.sendError({'command_id': 'newSaveQuery'}, v2);
}
};
v1.checkFilePrivs = function (file) {
if (com.newgrounds.API.user_id) {
var v1 = com.newgrounds.API.user_id;
} else {
var v1 = 0;
}
var v2 = {'group': (file.getGroup()).getID(), 'filename': file.getName(), 'user_id': v1, 'publisher_id': com.newgrounds.API.publisher_id};
com.newgrounds.API.sendCommand('checkFilePrivs', v2);
};
v1.saveFile = function (file, overwrite) {
var v1;
v1 = {'group': (file.getGroup()).getID(), 'filename': file.getName(), 'description': file.getDescription(), 'draft': file.__get__draft(), 'user_name': com.newgrounds.API.user_name};
if (overwrite) {
v1.overwrite = overwrite;
}
if (file.getDuplicateID()) {
v1.save_id = file.getDuplicateID();
}
if ((file.getKeys()).length > 0) {
v1.keys = file.getKeys();
}
var v3;
v3 = {'file': file.getRawContents()};
if (file.getThumbnailImageScan()) {
v3.thumbnail = file.getThumbnailImageScan();
}
com.newgrounds.API.save_file = file;
com.newgrounds.API.sendSecureCommand('saveFile', v1, null, v3);
};
v1.rateSaveFile = function (file, rating, vote) {
var v1 = {'group': (file.getGroup()).getID(), 'save_id': file.getID(), 'rating_id': rating.rating_id, 'vote': vote, 'user_id': com.newgrounds.API.user_id};
com.newgrounds.API.sendSecureCommand('rateSaveFile', v1);
};
v1.getConfirmation = function (command_name, event, msg, target, confirm, cancel) {
var v1 = new com.newgrounds.APIError('CONFIRM_REQUEST', msg);
v1.confirm = function () {
target[confirm]();
};
v1.cancel = function () {
target[cancel]();
};
v1.command = command_name;
com.newgrounds.API.callListener(event, false, v1);
};
v1.onRemoteAuthentication = function (auth_result) {
var v1 = com.newgrounds.encoders.JSON.decode(com.newgrounds.encoders.RC4.decrypt(auth_result, com.newgrounds.API.encryption_key));
delete com.newgrounds.API.remote_auth;
com.newgrounds.API.user_id = v1.NewgroundsAPI_UserID;
com.newgrounds.API.user_name = v1.NewgroundsAPI_UserName;
com.newgrounds.API.session_id = v1.NewgroundsAPI_SessionID;
com.newgrounds.API.publisher_id = v1.NewgroundsAPI_PublisherID;
};
v1.doEvent = function (e) {
switch (e.command_id) {
case 'connectMovie':
clearInterval(com.newgrounds.API.timeout);
com.newgrounds.API.sendMessage('You have successfully connected to the Newgrounds API Gateway');
com.newgrounds.API.sendMessage('Movie identified as "' + e.movie_name + '"');
com.newgrounds.API.callListener(com.newgrounds.APIEvent.API_CONNECTED, e.success, {'title': e.movie_name});
var v7 = false;
if (e.ad_status === -1) {
var v11 = 'This movie was not approved to run Flash Ads.';
com.newgrounds.API.sendWarning(v11);
com.newgrounds.API.sendWarning('visit ' + com.newgrounds.API.AD_TERMS_URL + ' to view our approval guidelines');
if (!e.ad_url) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.ADS_APPROVED, false, new com.newgrounds.APIError('FLASH_ADS_NOT_APPROVED', v11));
} else {
v7 = true;
}
} else {
if (e.ad_status === 0) {
var v11 = 'Flash Ads are currently awaiting approval.';
com.newgrounds.API.sendNotice(v11);
if (!e.ad_url) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.ADS_APPROVED, false, new com.newgrounds.APIError('FLASH_ADS_NOT_APPROVED', v11));
} else {
v7 = true;
}
}
}
if (e.ad_url) {
com.newgrounds.API.ad_url = unescape(e.ad_url);
if (!v7) {
com.newgrounds.API.sendMessage('This movie has been approved to run Flash Ads!');
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.ADS_APPROVED, true);
}
if (e.deny_host) {
v11 = com.newgrounds.API.getHost() + ' does not have permission to run this movie!';
com.newgrounds.API.sendWarning(v11);
com.newgrounds.API.sendWarning('\tUpdate your API configuration to unblock ' + com.newgrounds.API.getHost());
com.newgrounds.API.callListener(com.newgrounds.APIEvent.HOST_BLOCKED, true, {'real_url': unescape(e.movie_url), 'url': com.newgrounds.API.getOfficialURL()});
} else {
if (e.movie_version) {
com.newgrounds.API.sendWarning('According to your API Configuration, this version is out of date.');
if (com.newgrounds.API.version) {
com.newgrounds.API.sendWarning('\tThe this movie is version ' + com.newgrounds.API.version);
}
com.newgrounds.API.sendWarning('\tThe most current version is ' + e.movie_version);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.NEW_VERSION_AVAILABLE, true, {'version': e.movie_version, 'real_url': unescape(e.movie_url), 'url': com.newgrounds.API.getOfficialURL()});
}
}
if (e.request_portal_url) {
com.newgrounds.API.sendCommand('setPortalID', {'portal_url': _url});
}
if (com.newgrounds.API.preload) {
com.newgrounds.API.reportNewAsset();
var v8 = {};
if (com.newgrounds.API.hasUserSession()) {
v8.publisher_id = com.newgrounds.API.publisher_id;
v8.user_id = com.newgrounds.API.user_id;
}
com.newgrounds.API.sendCommand('preloadSettings', v8);
}
com.newgrounds.API.reportAssetLoaded();
break;
case 'preloadSettings':
if (e.medals) {
com.newgrounds.API.populateMedals(e.medals);
if (!com.newgrounds.API.hasUserSession() and !com.newgrounds.API.debug) {
com.newgrounds.API.echo('checking for sharedobject medals...');
var v4 = com.newgrounds.API.loadLocal('medals_unlocked');
if (v4) {
for (var v32 in v4) {
v32 = Number(v32);
if (v4[v32]) {
var v3 = com.newgrounds.API.getMedal(v32);
com.newgrounds.API.echo('now unlocking ' + v3.getName());
v3.setUnlocked(true);
}
}
}
}
}
if (e.save_groups) {
com.newgrounds.API.populateSaveGroups(e.save_groups, e.save_file_path);
}
if (e.score_boards) {
com.newgrounds.API.populateScoreBoards(e.score_boards);
}
if (_root.NewgroundsAPI_SaveFileID && _root.NewgroundsAPI_SaveGroupID) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_REQUESTED, true, {'save_id': _root.NewgroundsAPI_SaveFileID, 'group': com.newgrounds.API.getSaveGroup(_root.NewgroundsAPI_SaveGroupID)});
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.METADATA_LOADED, true);
com.newgrounds.API.reportAssetLoaded();
break;
case 'logCustomEvent':
if (e.success) {
com.newgrounds.API.sendMessage('Event \'' + e.event + '\' was logged.');
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.EVENT_LOGGED, e.success, {'event': e.event});
break;
case 'postScore':
var v9;
if (e.success) {
var v5 = 'User';
if (com.newgrounds.API.user_email) {
v5 = com.newgrounds.API.user_email;
} else {
if (com.newgrounds.API.user_name) {
v5 = com.newgrounds.API.user_name;
}
}
var v19 = com.newgrounds.API.getScoreBoard(e.board);
com.newgrounds.API.sendMessage(v5 + ' posted ' + e.value + ' to \'' + v19.name + '\'');
v9 = {'board': v19, 'value': e.value, 'username': v5};
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.SCORE_POSTED, e.success, v9);
break;
case 'loadScores':
var v9 = new Object();
var v19 = com.newgrounds.API.getScoreBoard(e.board);
if (v19.exists()) {
v19.setScores(e.scores, e.period, e.page, e.num_results);
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.SCORES_LOADED, e.success, {'board': v19});
break;
case 'unlockMedal':
var v24 = com.newgrounds.API.getMedal(e.medal_name);
v24.setUnlocked(true);
com.newgrounds.API.sendMessage('Successfuly unlocked \'' + v24.getName() + '\'');
com.newgrounds.API.callListener(com.newgrounds.APIEvent.MEDAL_UNLOCKED, e.success, {'medal_id': v24.id, 'medal': v24});
break;
case 'getMedals':
com.newgrounds.API.populateMedals(e.medals);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.MEDALS_LOADED, e.success, {'medals': com.newgrounds.API.medals});
break;
case 'loadSaveFile':
var v16 = com.newgrounds.API.getSaveGroup(e.group_id);
var v14 = new com.newgrounds.SaveFile(v16);
v14.id = e.file.save_id;
v14.name = e.file.filename;
v14.fileUrl = e.file.file;
v14.thumbnailUrl = e.file.thumb;
v14.authorName = e.file.user_name;
v14.authorId = e.file.user_id;
v14.description = e.file.description;
v14.setPermissions(e.file.status, e.file.locked);
for (var v6 in e.file.keys) {
v14.setKey(e.file.keys[v6].id, e.file.keys[v6].value);
}
for (v6 in e.file.ratings) {
v14.setRating(e.file.ratings[v6].id, e.file.ratings[v6].votes, e.file.ratings[v6].score);
}
if (e.get_contents) {
v14.loadContents();
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_INITIALIZED, e.success, {'save_id': v14.id, 'file': v14});
com.newgrounds.API.save_file = v14;
break;
case 'lookupSaveFiles':
var v12 = (com.newgrounds.API.getSaveGroup(e.group_id)).getQuery();
v12.onExecuted(e.files);
break;
case 'rateSaveFile':
var v16 = com.newgrounds.API.getSaveGroup(e.group_id);
var v14 = v16.getFile(e.save_id);
if (e.already_voted) {
var v27 = new com.newgrounds.APIError('PERMISSION_DENIED', 'You have already voted on this item today');
com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, false, {'error': v27, 'file': v14, 'save_id': v14.id});
return undefined;
} else {
if (e.success) {
var v10 = v14.onVoted(e);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, e.success, {'rating': v10, 'file': v14, 'save_id': v14.id});
} else {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, e.success, {'file': v14, 'save_id': v14.id});
com.newgrounds.API.sendError('Your vote was not accepted.');
}
}
break;
case 'saveFile':
if (com.newgrounds.API.save_file) {
if (!com.newgrounds.API.save_file.exists()) {
com.newgrounds.API.save_file.setID(e.save_id, true);
}
com.newgrounds.API.save_file.onSaved(e);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_SAVED, e.success, {'save_id': com.newgrounds.API.save_file.__get__id(), 'file': com.newgrounds.API.save_file});
if (e.success) {
com.newgrounds.API.sendMessage('You just saved a new file (id #' + e.save_id + ') to the \'' + (com.newgrounds.API.save_file.__get__group()).__get__name() + '\' save group.');
}
}
com.newgrounds.API.save_file = null;
break;
case 'checkFilePrivs':
var v9 = {'file': com.newgrounds.API.save_file, 'filename': e.filename, 'group': e.group, 'exists': e.exists, 'can_write': e.can_write};
if (e.duplicate_id) {
v9.duplicate_id = e.duplicate_id;
}
if (!e.success) {
com.newgrounds.API.sendWarning('You do not have permission to save this file!');
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_PRIVS_LOADED, e.success, v9);
}
};
v1.getDispatcher = function () {
if (!com.newgrounds.API.eventDispatcher) {
com.newgrounds.API.eventDispatcher = new com.newgrounds.APIEventDispatcher();
}
return com.newgrounds.API.eventDispatcher;
};
v1.hasEventListener = function (event) {
return (com.newgrounds.API.getDispatcher()).hasEventListener(event);
};
v1.addEventListener = function (event, listener, target) {
com.newgrounds.API.echo('Adding a listener for \'' + event + '\'');
(com.newgrounds.API.getDispatcher()).addEventListener(event, listener, target);
};
v1.removeEventListener = function (event, target) {
(com.newgrounds.API.getDispatcher()).removeEventListener(event, target);
};
v1.callListener = function (event, success, data, target) {
com.newgrounds.API.echo('Fired Event: ' + event);
var v2 = new com.newgrounds.APIEvent(event, success, data);
(com.newgrounds.API.getDispatcher()).dispatchEvent(v2);
if (event == com.newgrounds.APIEvent.API_CONNECTED && !success) {
com.newgrounds.API.connected = false;
}
com.newgrounds.API.bridge.sendEvent(event, {'success': success, 'data': data});
};
v1.sendError = function (c, e) {
switch (c.command_id) {
case 'connectMovie':
clearInterval(com.newgrounds.API.timeout);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.API_CONNECTED, false, {'error': e, 'response': c});
break;
case 'saveFile':
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_SAVED, false, {'error': e, 'file': com.newgrounds.API.save_file, 'response': c});
com.newgrounds.API.save_file = null;
}
var v3 = '[Newgrounds API ERROR] :: ' + c.command_id + '() - ' + e.name + ':' + '\n' + '\t\t\t\t' + e.message;
trace(v3);
com.newgrounds.API.bridge.sendEvent('trace', {'data': v3});
};
v1.sendWarning = function (m, c) {
if (c) {
m += '\r[Newgrounds API WARNING] :: \tSee ' + com.newgrounds.API.COMMANDS_WIKI_URL + c.toLowerCase() + ' for additional information.';
}
var v1 = '[Newgrounds API WARNING] :: ' + m;
trace(v1);
com.newgrounds.API.bridge.sendEvent('trace', {'data': v1});
};
v1.sendNotice = function (m, c) {
if (c) {
m += '\r[Newgrounds API NOTICE] :: \tSee ' + com.newgrounds.API.COMMANDS_WIKI_URL + c.toLowerCase() + ' for additional information.';
}
trace('[Newgrounds API NOTICE] :: ' + m);
};
v1.fatalError = function (m, c) {
if (c) {
m += '\r\tSee ' + com.newgrounds.API.COMMANDS_WIKI_URL + c.toLowerCase() + ' for additional information.';
}
throw '***ERROR*** frame=' + _root._currentframe + ', class=API' + '\n' + '\n' + m;
};
v1.openLoginPage = function () {
if (com.newgrounds.API.hasUserSession()) {
return undefined;
}
if (!com.newgrounds.API.remote_auth) {
var v1 = com.newgrounds.encoders.MD5.calculate(Math.random() + 'a' + com.newgrounds.API.movie_id);
v1 = 'POOPYPANTS';
com.newgrounds.API.remote_auth = new com.newgrounds.RemoteAuth(v1);
}
var v2 = com.newgrounds.encoders.RC4.encrypt(com.newgrounds.API.remote_auth.__get__token(), com.newgrounds.API.encryption_key);
trace(v2);
getURL(com.newgrounds.API.LOGIN_URL + '?api_auth_id=' + com.newgrounds.API.movie_id + '&api_auth_key=' + v2, '_blank');
};
v1.sendSecureCommand = function (command, secure_params, unsecure_params, files) {
if (!com.newgrounds.API.debug && !com.newgrounds.API.hasUserSession() && !com.newgrounds.API.hasUserEmail()) {
com.newgrounds.API.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) {
com.newgrounds.API.fatalError('Missing command', 'sendSecureCommand');
}
if (!secure_params) {
com.newgrounds.API.fatalError('Missing secure_params', 'sendSecureCommand');
}
if (!unsecure_params) {
unsecure_params = new Object();
}
var v2 = '';
var v1 = 0;
while (v1 < 16) {
v2 += com.newgrounds.API.compression_radix.charAt(Math.floor(Math.random() * com.newgrounds.API.compression_radix.length));
++v1;
}
if (com.newgrounds.API.debug && !com.newgrounds.API.fake_session && !com.newgrounds.API.session_id) {
secure_params.session_id = '';
} else {
secure_params.session_id = com.newgrounds.API.session_id;
}
secure_params.as_version = 2;
secure_params.user_email = com.newgrounds.API.user_email;
secure_params.publisher_id = com.newgrounds.API.publisher_id;
secure_params.seed = v2;
secure_params.command_id = command;
var v6 = com.newgrounds.encoders.JSON.encode(secure_params);
trace('JSON: ' + v6 + '\n');
var v9 = com.newgrounds.encoders.MD5.calculate(v2);
var v7 = com.newgrounds.encoders.RC4.encrypt(v6, com.newgrounds.API.encryption_key);
var v8 = v9 + v7;
unsecure_params.secure = com.newgrounds.API.compressHex(v8);
com.newgrounds.API.sendCommand('securePacket', unsecure_params, false, files);
};
v1.sendCommand = function (command, params, open_browser, files) {
if (!com.newgrounds.API.connected and command != 'connectMovie') {
var v12 = 'API.' + command + '() - API.connect() must be called before this command can be called' + '\n';
com.newgrounds.API.fatalError(v12, 'connect');
}
if (open_browser) {
var v2 = new Object();
} else {
var v2 = new LoadVars();
}
v2.command_id = command;
v2.tracker_id = com.newgrounds.API.movie_id;
if (com.newgrounds.API.debug) {
v2.debug = com.newgrounds.API.debug;
}
if (params) {
for (var v9 in params) {
v2[v9] = params[v9];
}
}
if (files) {
for (v9 in files) {
v2[v9] = files[v9];
}
}
if (open_browser) {
var v6 = com.newgrounds.API.GATEWAY_URL + '?seed=' + Math.random();
for (v9 in v2) {
v6 += '&' + escape(v9) + '=' + escape(v2[v9]);
}
trace('OPENING ' + v6);
getURL(v6, '_blank');
v2.removeMovieClip();
} else {
var v10 = new LoadVars();
v10.remember_command_id = v2.command_id;
v10.onData = function (data) {
com.newgrounds.API.echo('INPUT: \r' + data + '\n');
if (data) {
var v2 = com.newgrounds.encoders.JSON.decode(data);
} else {
var v2 = {'success': false};
}
if (!v2.success) {
if (!v2.error_code && !v2.error_msg) {
v2.error_code = 'CONNECTION_FAILED';
v2.error_msg = 'Could not contact the API Gateway';
v2.command_id = this.remember_command_id;
}
var v4 = new com.newgrounds.APIError(v2.error_code, v2.error_msg);
com.newgrounds.API.sendError(v2, v4);
} else {
com.newgrounds.API.doEvent(v2);
}
};
var v7 = new Array();
for (var v8 in v2) {
v7.push(v8 + '=' + escape(v2[v8]));
}
com.newgrounds.API.echo('POST ' + com.newgrounds.API.GATEWAY_URL + '?' + v7.join('&'));
v2.sendAndLoad(com.newgrounds.API.GATEWAY_URL + '?seed=' + Math.random(), v10, 'POST');
com.newgrounds.API.last_command = v2.command_id;
}
};
v1.renderAd = function (target) {
if (com.newgrounds.API.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);
target.clip.ad._lockroot = true;
loadMovie(com.newgrounds.API.ad_swf_url, target.clip.ad);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.AD_ATTACHED, true, {'target': target});
} else {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.AD_ATTACHED, false, new com.newgrounds.APIError('FLASH_ADS_NOT_APPROVED', 'Unable to render ad'));
}
};
v1.attachFlashAd = function (target) {
if (com.newgrounds.API.checkAdFlood()) {
com.newgrounds.API.ad_swf_url = null;
} else {
if (com.newgrounds.API.checkAdCache()) {
com.newgrounds.API.reportNewAsset();
var v1 = new LoadVars();
v1.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 (com.newgrounds.API.ad_url.indexOf('?') > -1) {
v1.load(com.newgrounds.API.ad_url + '&random=' + Math.random());
} else {
v1.load(com.newgrounds.API.ad_url + '?random=' + Math.random());
}
if (!com.newgrounds.API.ad_warning) {
com.newgrounds.API.ad_warning = true;
com.newgrounds.API.sendMessage('You may get a security sandbox violation from this ad. This is nothing to worry about!');
}
} else {
if (com.newgrounds.API.ad_swf_url) {
com.newgrounds.API.renderAd(target);
}
}
}
};
v1.checkAdFlood = function () {
if (!com.newgrounds.API.ad_url) {
return false;
}
var v2 = new Date();
var v1 = v2.getTime();
if (v1 >= com.newgrounds.API.ad_flood) {
if (v1 - com.newgrounds.API.ad_flood > 1000) {
com.newgrounds.API.ad_flood = v1 + 1000;
return false;
}
com.newgrounds.API.ad_flood = v1;
com.newgrounds.API.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;
};
v1.checkAdCache = function () {
if (!com.newgrounds.API.ad_url) {
return false;
}
var v2 = new Date();
var v1 = v2.getTime();
if (v1 >= com.newgrounds.API.ad_url_cache) {
com.newgrounds.API.ad_url_cache = v1 + 300000;
return true;
}
return false;
};
v1.sendMessage = function (m, r) {
var v1 = '[Newgrounds API] :: ' + m;
if (r) {
return v1;
} else {
trace(v1);
com.newgrounds.API.bridge.sendEvent('trace', {'data': v1});
}
};
v1.echo = function (m) {
if (com.newgrounds.API.do_echo) {
trace(m);
}
};
v1.LOGIN_URL = 'http://ng-local.newgrounds.com/apilogin/';
v1.do_echo = true;
v1.GATEWAY_URL = 'http://www.ngads.com/gateway_v2.php';
v1.NEWGROUNDS_PREVIEW = 'uploads.ungrounded.net/previews';
v1.AD_TERMS_URL = 'http://www.newgrounds.com/wiki/using-the-site/terms-of-use/flash-ads/';
v1.COMMANDS_WIKI_URL = 'http://www.newgrounds.com/wiki/developer-resources/flash-api/commands/';
v1.LOCAL_HOST = 'localhost';
v1.NEWGROUNDS_WWW = 'www.newgrounds.com';
v1.PREVIEW_HOSTS = new Array(com.newgrounds.API.LOCAL_HOST, com.newgrounds.API.NEWGROUNDS_PREVIEW);
v1.ad_url_cache = 0;
v1.ad_flood = 0;
v1.ad_warning = false;
v1.save_file = null;
v1.publisher_id = 1;
v1.fake_session = false;
v1.medals = null;
v1.userpage_format = null;
v1.scoreboards = new Array();
v1.save_groups = null;
v1.compression_radix = '/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X';
v1.errors = com.newgrounds.APIError.init_codes();
v1.sharedObjects = new Object();
v1.bridge = new com.newgrounds.Bridge(_root.NewgroundsAPI_SandboxID);
v1.preload = true;
v1.preload_items = 0;
v1.preload_items_loaded = 0;
ASSetPropFlags(com.newgrounds.API.prototype, null, 1);
}
#endinitclip
}
movieClip 39 __Packages.com.newgrounds.Bridge {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.Bridge) {
var v1 = function (id) {
this.widget_id = id;
this.receiver = new LocalConnection();
this.transmitter = new LocalConnection();
this.receiver.receiveEvent = function (event, params) {
com.newgrounds.API.callListener(event, params.success, params.data);
};
try {
this.receiver.connect('rec_' + this.widget_id);
}
catch (v0) {
if (Error(v0) != null) {
var error = Error(v0);
} else {
throw v0;
}
}
};
com.newgrounds.Bridge = v1;
var v2 = v1.prototype;
v2.sendEvent = function (event, params) {
if (this.widget_id) {
this.transmitter.send(this.widget_id, 'sendEvent', event, this.validateParams(params));
}
};
v2.sendCommand = function (command, params) {
if (this.widget_id) {
this.transmitter.send(this.widget_id, 'sendCommand', command, this.validateParams(params));
}
};
v2.validateParams = function (params) {
var v2 = {};
for (var v3 in params) {
if (typeof params[v3] == 'string' || typeof params[v3] == 'number') {
v2[v3] = params[v3];
}
}
return v2;
};
ASSetPropFlags(com.newgrounds.Bridge.prototype, null, 1);
}
#endinitclip
}
movieClip 40 __Packages.com.newgrounds.SaveFile {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.SaveFile) {
var v1 = function (_group) {
this._group = _group;
this._filename = null;
this._file_id = null;
this._contents = null;
this._thumbnail = null;
this._thumbnail_url = null;
this.raw = null;
this.img = null;
this._draft = false;
this._keys = new Array();
this._ratings = new Array();
this._file_url = null;
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.FILE_PRIVS_LOADED, this.checkPrivs, this);
};
com.newgrounds.SaveFile = v1;
var v2 = v1.prototype;
v1.setFilePath = function (path) {
com.newgrounds.SaveFile.file_path = path + '/';
};
v1.setImagePath = function (path) {
com.newgrounds.SaveFile.image_path = path + '/';
};
v2.__get__name = function () {
return this._filename;
};
v2.__set__name = function (s) {
this._filename = s;
return this.__get__name();
};
v2.__get__id = function () {
return this._file_id;
};
v2.__get__description = function () {
return this._description;
};
v2.__set__description = function (s) {
this._description = s;
return this.__get__description();
};
v2.__get__contents = function () {
return this._contents;
};
v2.__set__contents = function (o) {
this._contents = o;
return this.__get__contents();
};
v2.__get__thumbnailUrl = function () {
return com.newgrounds.SaveFile.image_path + this._thumbnail_url;
};
v2.__set__thumbnailUrl = function (s) {
this._thumbnail_url = s;
return this.__get__thumbnailUrl();
};
v2.__get__fileUrl = function () {
return com.newgrounds.SaveFile.file_path + this._file_url;
};
v2.__set__fileUrl = function (s) {
this._file_url = s;
return this.__get__fileUrl();
};
v2.__get__authorID = function () {
return this._author_id;
};
v2.__set__authorID = function (i) {
this._author_id = i;
return this.__get__authorID();
};
v2.__get__authorName = function () {
return this._author_name;
};
v2.__set__authorName = function (n) {
this._author_name = n;
return this.__get__authorName();
};
v2.__get__views = function () {
return this._views;
};
v2.__get__draft = function () {
return this._draft;
};
v2.__set__draft = function (d) {
this._draft = d;
return this.__get__draft();
};
v2.__get__group = function () {
return this._group;
};
v2.__get__groupId = function () {
return this._group.getID();
};
v2.__get__groupName = function () {
return this._group.getName();
};
v2.__get__groupType = function () {
return this._group.getType();
};
v2.__get__locked = function () {
return this._locked;
};
v2.__get__shared = function () {
return this._isShared();
};
v2.__get__isPrivate = function () {
return this._isPrivate();
};
v2.__get__isPublic = function () {
return this._isPublic();
};
v2.__get__approved = function () {
return this._isApproved();
};
v2.__get__keys = function () {
return this._keys;
};
v2.__get__ratings = function () {
return this._ratings;
};
v2.loadAuthorPage = function () {
com.newgrounds.API.loadUserPage(this._author_id, this._author_name);
};
v2.getID = function () {
return this._file_id;
};
v2.exists = function () {
return this._file_id !== null;
};
v2.getGroup = function () {
return this._group;
};
v2.getName = function () {
return this._filename;
};
v2._isPrivate = function () {
return this.status == com.newgrounds.SaveFile.STATUS.PRIVATE;
};
v2._isShared = function () {
return this.status > com.newgrounds.SaveFile.STATUS.PRIVATE;
};
v2._isApproved = function () {
return this.status > com.newgrounds.SaveFile.STATUS.UNAPPROVED;
};
v2._isPublic = function () {
if (this._isPrivate()) {
return false;
return false;
}
if (this._group.isType('SYSTEM') or this._group.isType('PRIVATE')) {
return false;
return false;
}
if (this._group.isType('PUBLIC')) {
return true;
return false;
}
if (this._isApproved()) {
return true;
}
return false;
};
v2.isLocked = function () {
return this._locked;
};
v2.getDescription = function () {
return this._description;
};
v2.getShared = function () {
return this._draft;
};
v2.getThumbnailImageScan = function () {
return this.img;
};
v2.getRawContents = function () {
return this.raw;
};
v2.getDuplicateID = function () {
return this.duplicate_id;
};
v2.getKeys = function () {
return this._keys;
};
v2.getKey = function (key) {
var v3 = (this.getGroup()).getKey(key);
var v2 = 0;
while (v2 < this._keys.length) {
if (this._keys[v2].id == v3.key_id) {
return this._keys[v2].value;
}
++v2;
}
};
v2.getRating = function (rating) {
var v2 = (this.getGroup()).getRating(rating);
if (this._ratings[v2.rating_id]) {
return this._ratings[v2.rating_id];
} else {
return null;
}
};
v2.overwriteAllowed = function () {
return this.overwrite;
};
v2.getFileURL = function () {
return com.newgrounds.SaveFile.file_path + this._file_url;
};
v2.getThumbnailURL = function () {
return com.newgrounds.SaveFile.image_path + this._thumbnail_url;
};
v2.overwriteExisting = function () {
this.overwrite = true;
};
v2.setID = function (id, add_to_group) {
this._file_id = id;
if (add_to_group) {
(this.getGroup()).addFile(this);
}
};
v2.setName = function (filename, locked) {
this._filename = filename;
this._locked = locked;
};
v2.setDescription = function (description) {
this._description = description;
};
v2.setDraft = function (draft) {
this._draft = draft;
};
v2.setContents = function (_contents) {
this._contents = _contents;
};
v2.setThumbnail = function (thumb) {
if (thumb) {
this._thumbnail = thumb;
} else {
this._thumbnail = null;
}
};
v2.setThumbnailURL = function (url) {
this._thumbnail_url = url;
};
v2.setFileURL = function (url) {
this._file_url = url;
};
v2.setPermissions = function (status, _locked) {
this._locked = _locked;
this.status = status;
};
v2.setKey = function (key, val) {
var v4 = (this.getGroup()).getKeyID(key);
var v2;
if (!v4) {
this.onError('\'' + key + '\' is not a valid key for the \'' + this._group.__get__name() + '\' save group', 'setKey', 'INVALID_VALUE', true);
return undefined;
}
if (!this._group.keyValueIsValid(key, val) && val !== null) {
this.onError('\'' + val + '\' is not a valid ' + this._group.getKeyType(key, true), 'setKey', 'INVALID_VALUE', true);
return undefined;
}
switch (this._group.getKeyType(key, true)) {
case 'string':
if (val) {
val = String(val);
} else {
val = undefined;
}
break;
default:
val = Number(val);
}
var v5 = {'id': v4, 'value': val};
for (var v6 in this._keys) {
v2 = this._keys[v6];
if (v2.id == v4) {
this._keys[v6] = v5;
return undefined;
}
}
this._keys.push(v5);
};
v2.setRating = function (rating, votes, score) {
var v2 = (this.getGroup()).getRating(rating);
if (!votes) {
votes = 0;
}
if (!score) {
score = 0;
}
if (!v2.is_float) {
score = Math.round(Number(score));
}
this._ratings[v2.rating_id] = {'id': Number(v2.rating_id), 'name': v2.rating_name, 'votes': Number(votes), 'score': Number(score)};
return this._ratings[v2.rating_id];
};
v2.clearBuffer = function () {
this._contents = null;
this.raw = null;
this.img = null;
this.scanner = null;
this.overwrite = false;
this.duplicate_id = null;
};
v2.onError = function (msg, funct, code) {
com.newgrounds.SaveFile.busy = false;
if (!code) {
code = 'SAVE_FILE_ERROR';
}
if (!funct) {
funct = 'unknown_function';
}
var v3 = 'getSaveGroup(\'' + this._group.getName() + '\')';
if (this.exists()) {
funct = v3 + '.getFile(\'' + this.getName() + '\').' + funct;
} else {
funct = v3 + '.getNewFile().' + funct;
}
var v5 = new com.newgrounds.APIError(code, msg);
com.newgrounds.API.sendError({'command_id': funct}, v5);
};
v2.onSaved = function (p) {
com.newgrounds.SaveFile.busy = false;
if (!this.exists()) {
this.setID(p.save_id, true);
}
this.setName(p.filename);
this.setFileURL(p.file_url);
if (p.thumbnail) {
this._thumbnail_url = p.thumbnail;
}
};
v2.onVoted = function (p) {
trace('ONVOTED WAS CALLED');
return this.setRating(p.rating_id, p.votes, p.score);
};
v2.sendRating = function (rating, vote) {
var v6 = null;
if (!com.newgrounds.API.hasUserSession()) {
v6 = new com.newgrounds.APIError('PERMISSION_DENIED', 'You must be logged in to vote on save files');
}
var v2 = this._group.getRating(rating);
if (!v2) {
v6 = new com.newgrounds.APIError('PERMISSION_DENIED', '\'' + rating + '\' is not a valid rating for the \'' + this._group.getName() + '\' save group');
}
if (this.voted === true) {
v6 = new com.newgrounds.APIError('PERMISSION_DENIED', 'You have already voted on this item today');
}
if (vote < v2.min_value or vote > v2.max_value) {
v6 = new com.newgrounds.APIError('PERMISSION_DENIED', '\'' + rating + '\' votes must be between ' + v2.min_value + ' and ' + v2.max_value);
}
if (v6) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, false, {'error': v6, 'file': this});
return undefined;
}
this.voted = true;
com.newgrounds.API.rateSaveFile(this, v2, vote);
};
v2.replace = function () {
if (com.newgrounds.SaveFile.busy) {
this.onError('Another file is currently being saved, please try again later', 'replace');
return undefined;
}
this.overwriteExisting();
this.save();
};
v2.save = function () {
if (com.newgrounds.API.hasUserSession() && !this._author_id && !this._author_name) {
this._author_id = com.newgrounds.API.getUserID();
this._author_name = com.newgrounds.API.getUserName();
}
if (com.newgrounds.SaveFile.busy) {
this.onError('Another file is currently being saved, please try again later', 'save', 'UPLOAD_IN_PROGRESS');
return undefined;
}
com.newgrounds.SaveFile.busy = true;
if (this.isLocked()) {
this.onError('This file is _locked and cannot be overwritten.', 'save', 'PERMISSION_DENIED');
return undefined;
}
if (!this._filename) {
this.onError('Please provide a name for your file.', 'save', 'MISSING_PARAM');
return undefined;
} else {
if (!this._contents) {
this.onError('The file is empty.', 'save', 'MISSING_PARAM');
return undefined;
}
}
this.img = null;
com.newgrounds.API.checkFilePrivs(this);
};
v2.checkPrivs = function (e) {
if (e.data.file.id != this.__get__id()) {
return undefined;
}
if (e.success) {
if (e.data.can_write) {
this.can_write = e.data.can_write;
if (e.data.duplicate_id) {
this.duplicate_id = e.data.duplicate_id;
}
if (e.data.exists && !this.overwriteAllowed()) {
this.onError('You already have a file named \'' + this.getName() + '\'', 'save', 'CONFIRM_REQUEST');
} else {
this.startFile();
}
} else {
this.onError('This file is _locked and cannot be overwritten', 'save', 'PERMISSION_DENIED');
}
} else {
this.onError('There was a problem looking up your file\'s details. The server may be down.', 'save', 'UNKNOWN_ERROR');
}
};
v2.startFile = function () {
if (this.can_write) {
if (this._thumbnail) {
this.scanner = new com.newgrounds.encoders.ImageScanner(this._thumbnail);
this.scanner.setCallback(this, 'encodeFile');
this.scanner.startScan(100, 100, true);
} else {
this.encodeFile();
}
} else {
this.onError('You do not have permission to save this file.', 'save', 'PERMISSION_DENIED');
}
};
v2.encodeFile = function (img) {
this.img = img;
this.raw = (com.newgrounds.encoders.SerialXML.encode(this._contents)).toString();
this.compressFile();
};
v2.compressFile = function () {
com.newgrounds.encoders.LZW2.compress(this.raw, function (s, p) {
p.file.onCompressed(s);
}, {'file': this});
};
v2.onCompressed = function (compressed) {
this.raw = escape(compressed);
this.writeFile();
};
v2.getProgress = function () {};
v2.writeFile = function () {
((this.getGroup()).getQuery()).clearCache();
com.newgrounds.API.saveFile(this);
this.clearBuffer();
};
v2.loadContents = function () {
if (this._contents) {
com.newgrounds.API.setCurrentSaveFile(this);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, true, {'file': this});
return undefined;
}
if (!this.getFileURL()) {
var v4 = 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': v4});
return undefined;
}
var v2 = new LoadVars();
v2.target = this;
var target = this;
v2.onData = function (encoded) {
target.onLoaded(encoded);
};
v2.load(this.getFileURL());
};
v2.onLoaded = function (encoded) {
if (encoded == undefined) {
var v3 = 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': v3});
return undefined;
}
com.newgrounds.encoders.LZW.setXMLSafe(true);
this._contents = com.newgrounds.encoders.SerialXML.decode(com.newgrounds.encoders.LZW.decompress(encoded));
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, true, {'file': this});
};
v2.setViews = function (n) {
this._views = n;
};
v1.busy = false;
v2.can_write = false;
v2._draft = false;
v2.status = 0;
v2.voted = false;
v2._views = 0;
v2._locked = false;
v2.overwrite = false;
v2.duplicate_id = null;
v2._keys = null;
v2._ratings = null;
v2._author_id = null;
v2._author_name = null;
v1.STATUS = {'PRIVATE': 1, 'PUBLIC': 2, 'UNAPPROVED': 3, 'APPROVED': 4};
v2.addProperty('approved', v2.__get__approved, function () {});
v2.addProperty('authorID', v2.__get__authorID, v2.__set__authorID);
v2.addProperty('authorName', v2.__get__authorName, v2.__set__authorName);
v2.addProperty('contents', v2.__get__contents, v2.__set__contents);
v2.addProperty('description', v2.__get__description, v2.__set__description);
v2.addProperty('draft', v2.__get__draft, v2.__set__draft);
v2.addProperty('fileUrl', v2.__get__fileUrl, v2.__set__fileUrl);
v2.addProperty('group', v2.__get__group, function () {});
v2.addProperty('groupId', v2.__get__groupId, function () {});
v2.addProperty('groupName', v2.__get__groupName, function () {});
v2.addProperty('groupType', v2.__get__groupType, function () {});
v2.addProperty('id', v2.__get__id, function () {});
v2.addProperty('isPrivate', v2.__get__isPrivate, function () {});
v2.addProperty('isPublic', v2.__get__isPublic, function () {});
v2.addProperty('keys', v2.__get__keys, function () {});
v2.addProperty('locked', v2.__get__locked, function () {});
v2.addProperty('name', v2.__get__name, v2.__set__name);
v2.addProperty('ratings', v2.__get__ratings, function () {});
v2.addProperty('shared', v2.__get__shared, function () {});
v2.addProperty('thumbnailUrl', v2.__get__thumbnailUrl, v2.__set__thumbnailUrl);
v2.addProperty('views', v2.__get__views, function () {});
ASSetPropFlags(com.newgrounds.SaveFile.prototype, null, 1);
}
#endinitclip
}
movieClip 41 __Packages.com.newgrounds.SaveGroup {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.SaveGroup) {
var v1 = function (group_id, group_name, group_type) {
this.group_name = group_name;
this.group_id = group_id;
this.group_type = group_type;
this.query = new com.newgrounds.SaveGroupQuery(this);
this.ratings = new Array();
this.keys = new Array();
this.files = new Array();
};
com.newgrounds.SaveGroup = v1;
var v2 = v1.prototype;
v2.__get__id = function () {
return this.group_id;
};
v2.__get__name = function () {
return this.group_name;
};
v2.__get__type = function () {
return this.group_type;
};
v2.addFile = function (file) {
var v2 = 0;
while (v2 < this.files.length) {
if (this.files[v2].getID() == file.getID()) {
this.files[v2] = file;
return undefined;
}
++v2;
}
this.files.push(file);
};
v2.getFile = function (file_id) {
trace('getting the file ' + file_id);
var v2 = 0;
while (v2 < this.files.length) {
trace('Looking up ' + file_id + ' :: ' + this.files[v2].getID() + ' || ' + this.files[v2].getName());
if (com.newgrounds.SaveGroup.isNumeric(file_id) and this.files[v2].getID() == Number(file_id)) {
return this.files[v2];
} else {
if (this.files[v2].getName() == file_id) {
return this.files[v2];
}
}
++v2;
}
return null;
};
v2.addRating = function (rating_id, rating_name, min_value, max_value, is_float) {
var v3 = {'rating_id': rating_id, 'rating_name': rating_name, 'min_value': min_value, 'max_value': max_value, 'is_float': is_float};
if (!this.getRatingID(rating_name)) {
this.ratings.push(v3);
}
};
v2.getRating = function (rating_id) {
var v2 = 0;
while (v2 < this.ratings.length) {
if (com.newgrounds.SaveGroup.isNumeric(rating_id) and this.ratings[v2].rating_id == rating_id) {
return this.ratings[v2];
} else {
if (this.ratings[v2].rating_name == rating_id) {
return this.ratings[v2];
}
}
++v2;
}
return null;
};
v2.getRatingID = function (rating_id) {
var v2 = this.getRating(rating_id);
if (v2) {
return v2.rating_id;
}
return null;
};
v2.getRatingName = function (rating_id) {
var v2 = this.getRating(rating_id);
if (v2) {
return v2.rating_name;
}
return null;
};
v2.addKey = function (key_id, key_name, key_type) {
trace('>>>>>>>>>>> ADDING KEY ' + key_id + ' ' + key_name + ' ' + key_type);
var v2 = {'key_id': key_id, 'key_name': key_name, 'key_type': key_type};
if (!this.getKey(key_name)) {
this.keys.push(v2);
}
};
v2.getKey = function (key_id) {
var v2 = 0;
while (v2 < this.keys.length) {
if (com.newgrounds.SaveGroup.isNumeric(key_id) and this.keys[v2].key_id == key_id) {
return this.keys[v2];
} else {
if (this.keys[v2].key_name == key_id) {
return this.keys[v2];
}
}
++v2;
}
return null;
};
v2.getKeyType = function (key_name, as_string) {
var v2 = this.getKey(key_name);
if (v2) {
return as_string ? com.newgrounds.SaveGroup.KEY_TYPES[v2.key_type] : v2.key_type;
}
return null;
};
v2.getKeyID = function (key_id) {
var v2 = this.getKey(key_id);
if (v2) {
return v2.key_id;
}
return null;
};
v2.getKeyName = function (key_id) {
var v2 = this.getKey(key_id);
if (v2) {
return v2.key_name;
}
return null;
};
v2.keyValueIsValid = function (key, value) {
var v4;
var v7;
if (typeof value == 'number' or (Number(value)).toString() == String(value)) {
value = Number(value);
v4 = (Math.round(value) === value) ? 'integer' : 'float';
} else {
v4 = typeof value;
if (v4 == 'string') {
var v6 = '01234567890.-';
var v5 = true;
var v2 = 0;
while (v2 < value.length) {
if (v6.indexOf(value.charAt(v2)) < 0) {
v5 = false;
break;
}
++v2;
}
if (v5) {
value = Number(value);
v4 = 'float';
}
}
}
switch (this.getKeyType(key, true)) {
case 'integer':
v7 = v4 == 'integer' or v4 == 'boolean';
return v7;
case 'float':
v7 = v4 == 'float' or v4 == 'integer' or v4 == 'boolean';
return v7;
case 'string':
v7 = v4 == 'string' or v4 == 'float' or v4 == 'integer' or v4 == 'boolean';
return v7;
case 'boolean':
v7 = v4 == 'boolean' or value == 1 or value == 0 or value == '';
return v7;
}
v7 = false;
return v7;
};
v2.isType = function (type) {
return this.group_type == com.newgrounds.SaveGroup.TYPES[type.toUpperCase()];
};
v2.getID = function () {
return this.group_id;
};
v2.getName = function () {
return this.group_name;
};
v2.getType = function () {
return this.group_type;
};
v2.isSystem = function () {
return undefined;
};
v2.getQuery = function (as_object) {
if (as_object) {
return this.query.toObject();
}
return this.query;
};
v2.newQuery = function () {
this.query.reset();
return this.query;
};
v2.clearQuery = function () {
this.query.reset();
};
v2.newFile = function () {
var v2 = new com.newgrounds.SaveFile(this);
return v2;
};
v1.isNumeric = function (value) {
return typeof value == 'number' or (Number(value)).toString() == String(value);
};
v1.KEY_TYPES = [null, 'float', 'integer', 'string', 'boolean'];
v1.TYPES = {'SYSTEM': 0, 'PRIVATE': 1, 'PUBLIC': 2, 'MODERATED': 3};
v2.addProperty('id', v2.__get__id, function () {});
v2.addProperty('name', v2.__get__name, function () {});
v2.addProperty('type', v2.__get__type, function () {});
ASSetPropFlags(com.newgrounds.SaveGroup.prototype, null, 1);
}
#endinitclip
}
movieClip 44 __Packages.com.newgrounds.SaveGroupQuery {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.SaveGroupQuery) {
var v1 = function (_group) {
this._group = _group;
this.reset();
};
com.newgrounds.SaveGroupQuery = v1;
var v2 = v1.prototype;
v2.__get__group = function () {
return this._group;
};
v2.__get__groupId = function () {
return this._group.getID();
};
v2.__get__resultsPerPage = function () {
return this._num_results;
};
v2.__set__resultsPerPage = function (n) {
this._num_results = n;
return this.__get__resultsPerPage();
};
v2.__get__pages = function () {
return this._pages;
};
v2.__get__page = function () {
return this._page;
};
v2.__set__page = function (n) {
this._page = n;
return this.__get__page();
};
v2.__get__randomize = function () {
return this._randomize_results;
};
v2.__set__randomize = function (b) {
this._randomize_results = b;
return this.__get__randomize();
};
v2.__get__results = function () {
return this._results;
};
v2.clearCache = function () {
this._results = [];
};
v2.reset = function () {
this.file_conditions = new Array();
this.key_conditions = new Array();
this.rating_conditions = new Array();
this.sort_conditions = new Array();
this.lookup_keys = new Object();
this.lookup_ratings = new Object();
this._num_results = 20;
this._page = 1;
this._randomize_results = false;
this._group_by = new Array();
this.clearCache();
};
v2.getGroup = function () {
return this._group;
};
v2.getGroupID = function () {
return this._group.getID();
};
v2.isRandomized = function () {
return this._randomize_results;
};
v2.toObject = function () {
var v2;
var v11 = {'page': this._page, 'num_results': this._num_results};
if (this._randomize_results) {
v11.randomize = 1;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.file_conditions)) {
var v12 = [];
v2 = 0;
while (v2 < this.file_conditions.length) {
var v6 = this.file_conditions[v2];
v12.push({'field': com.newgrounds.SaveGroupQuery.file_fields[v6.field.toUpperCase()].id, 'operator': v6.operator, 'value': v6.value});
++v2;
}
v11.file_conditions = v12;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.key_conditions)) {
v11.key_conditions = this.key_conditions;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.rating_conditions)) {
v11.rating_conditions = this.rating_conditions;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.sort_conditions)) {
var v14 = [];
v2 = 0;
while (v2 < this.sort_conditions.length) {
var v3 = this.sort_conditions[v2];
if (v3.table == com.newgrounds.SaveGroupQuery.TABLE_FILES) {
var v8 = com.newgrounds.SaveGroupQuery.file_fields[v3.field.toUpperCase()].id;
} else {
var v8 = v3.field;
}
var v5 = {'field': v8, 'table': v3.table};
if (v3.desc) {
v5.desc = 1;
}
if (v3.extra) {
v5.extra = v3.extra;
}
v14.push(v5);
++v2;
}
v11.sort_conditions = v14;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.lookup_keys)) {
var v15 = [];
for (v2 in this.lookup_keys) {
v15.push(v2);
}
v11.lookup_keys = v15;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.lookup_ratings)) {
var v13 = [];
for (v2 in this.lookup_ratings) {
v13.push(v2);
}
v11.lookup_ratings = v13;
}
if (!com.newgrounds.ValidationTools.isEmpty(this._group_by)) {
var v16 = [];
v2 = 0;
while (v2 < this._group_by.length) {
var v4 = this._group_by[v2];
if (v4.table == com.newgrounds.SaveGroupQuery.TABLE_FILES) {
v8 = com.newgrounds.SaveGroupQuery.file_fields[v4.field.toUpperCase()].id;
} else {
v8 = v4.field;
}
v16.push({'field': v8, 'table': v4.table});
++v2;
}
v11.group_by = v16;
}
return v11;
};
v2.toString = function () {
var v9;
var v2;
var v11 = [];
v9 = 'Lookup:\r';
var v14 = [];
for (var v6 in com.newgrounds.SaveGroupQuery.file_fields) {
v14.push(' ' + v6);
v2 = true;
}
v9 += v14.join('\n');
v11.push(v9);
v9 = '';
v2 = false;
var v16 = [];
for (v6 in this.lookup_keys) {
v16.push(' KEY \'' + this._group.getKeyName(v6) + '\'');
v2 = true;
}
if (v2) {
v9 += v16.join('\n');
v11.push(v9);
}
v9 = '';
v2 = false;
var v15 = [];
for (v6 in this.lookup_ratings) {
v15.push(' RATING \'' + this._group.getRatingName(v6) + '\'');
v2 = true;
}
if (v2) {
v9 += v15.join('\n');
v11.push(v9);
}
v9 = 'Where:\r';
v2 = false;
var v8 = [];
v6 = 0;
while (v6 < this.file_conditions.length) {
var v7 = this.file_conditions[v6];
var v10 = ' ' + v7.field + ' ' + v7.operator + ' ' + v7.value;
v8.push(v10);
v2 = true;
++v6;
}
v6 = 0;
while (v6 < this.key_conditions.length) {
v7 = this.key_conditions[v6];
v10 = ' KEY \'' + this._group.getKeyName(v7.key_id) + '\' ' + v7.operator + ' ' + v7.value;
v8.push(v10);
v2 = true;
++v6;
}
v6 = 0;
while (v6 < this.rating_conditions.length) {
v7 = this.rating_conditions[v6];
v10 = ' RATING \'' + this._group.getRatingName(v7.rating_id) + '\' ' + v7.operator + ' ' + v7.value;
v8.push(v10);
v2 = true;
++v6;
}
if (v2) {
v9 += v8.join('\n');
v11.push(v9);
}
v9 = 'Group By:\r';
v2 = false;
var v13 = [];
v6 = 0;
while (v6 < this._group_by.length) {
var v4 = this._group_by[v6];
var v5;
if (v4.table == com.newgrounds.SaveGroupQuery.TABLE_KEYS) {
v5 = ' KEY \'' + this._group.getKeyName(v4.field) + '\'';
} else {
if (v4.table == com.newgrounds.SaveGroupQuery.TABLE_RATINGS) {
v5 = ' RATING \'' + this._group.getRatingName(v4.field) + '\'';
} else {
v5 = ' ' + v4.field;
}
}
v13.push(v5);
v2 = true;
++v6;
}
if (v2) {
v9 += v13.join('\n');
v11.push(v9);
}
v9 = 'Order By:\r';
v2 = false;
var v12 = [];
if (this.isRandomized()) {
v12.push(' RANDOM');
v2 = true;
}
v6 = 0;
while (v6 < this.sort_conditions.length) {
var v3 = this.sort_conditions[v6];
if (v3.table == com.newgrounds.SaveGroupQuery.TABLE_KEYS) {
v5 = ' KEY \'' + this._group.getKeyName(v3.field) + '\'';
} else {
if (v3.table == com.newgrounds.SaveGroupQuery.TABLE_RATINGS) {
v5 = ' RATING \'' + this._group.getRatingName(v3.field) + '\' ' + ((v3.extra == 'votes') ? 'VOTES' : 'SCORE');
} else {
v5 = ' ' + v3.field;
}
}
v5 += v3.desc ? ' (DESCENDING)' : '';
v12.push(v5);
v2 = true;
++v6;
}
if (v2) {
v9 += v12.join('\n');
v11.push(v9);
}
v11.push('Page:\r ' + this._page);
v11.push('Results Per Page:\r ' + this._num_results);
return v11.join('\n');
};
v2.setResultsPerPage = function (r) {
this._num_results = r;
this.clearCache();
};
v2.setPage = function (p) {
this._page = p;
this.clearCache();
};
v2.setRandomize = function (bool) {
this._randomize_results = (bool === false) ? false : true;
};
v2.includeKey = function (key) {
if (!this._group.getKeyID(key)) {
trace('[SaveGroupQuery Error] :: \'' + key + '\' is not a valid key for the \'' + this._group.__get__name() + '\' group.');
return undefined;
}
this.lookup_keys[this._group.getKeyID(key)] = 1;
this.clearCache();
};
v2.includeRating = function (rating) {
if (!this._group.getRatingID(rating)) {
trace('[SaveGroupQuery Error] :: \'' + rating + '\' is not a valid rating for the \'' + this._group.__get__name() + '\' group.');
return undefined;
}
this.lookup_ratings[this._group.getRatingID(rating)] = 1;
this.clearCache();
};
v2.groupBy = function (field) {
this.addGroupItem(com.newgrounds.SaveGroupQuery.TABLE_FILES, field);
};
v2.groupByKey = function (key) {
if (!this._group.getKeyID(key)) {
this.error('\'' + key + '\' is not a valid key for the \'' + this._group.getName() + '\' _group');
return undefined;
}
this.addGroupItem(com.newgrounds.SaveGroupQuery.TABLE_KEYS, this._group.getKeyID(key));
};
v2.groupByRating = function (rating) {
if (!this._group.getRatingID(rating)) {
this.error('\'' + rating + '\' is not a valid rating for the \'' + this._group.getName() + '\' _group');
return undefined;
}
this.addGroupItem(com.newgrounds.SaveGroupQuery.TABLE_RATINGS, this._group.getRatingID(rating));
};
v2.addGroupItem = function (table, field) {
this._group_by.push({'table': table, 'field': field});
this.clearCache();
};
v2.excludeKey = function (key) {
delete this.lookup_keys[this._group.getKeyID(key)];
this.clearCache();
};
v2.excludeRating = function (rating) {
delete this.lookup_ratings[this._group.getRatingID(rating)];
this.clearCache();
};
v2.addCondition = function (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 (!this.validateOperator(operator) or !this.validateValue(field, value)) {
return undefined;
}
this.file_conditions.push({'field': field, 'operator': operator, 'value': value});
this.clearCache();
};
v2.addKeyCondition = function (key, operator, value) {
if (!this._group.getKeyID(key)) {
this.error('\'' + key + '\' is not a valid key for the \'' + this._group.getName() + '\' save _group');
} else {
if (!this.validateOperator(operator) or !this.validateKeyValue(key, value)) {
return undefined;
}
}
this.key_conditions.push({'key_id': this._group.getKeyID(key), 'operator': operator, 'value': value});
this.clearCache();
};
v2.addRatingCondition = function (rating, operator, value, column) {
if (!column) {
column = 'SCORE';
}
if (!this._group.getRatingID(rating)) {
this.error('\'' + rating + '\' is not a valid rating for the \'' + this._group.getName() + '\' save _group');
} else {
if (!this.validateOperator(operator)) {
return undefined;
} else {
if (!com.newgrounds.ValidationTools.isNumber(value)) {
this.error('Expected numeric value for rating \'' + rating + '\'');
return undefined;
}
}
}
if (!com.newgrounds.SaveGroupQuery.rating_columns[column]) {
var v2 = [];
for (var v3 in com.newgrounds.SaveGroupQuery.rating_columns) {
v2.push(v3);
}
this.error('Invalid rating column \'' + column + '\'. Valid columns are ' + v2.join(', '));
return undefined;
}
this.rating_conditions.push({'rating_id': this._group.getRatingID(rating), 'operator': operator, 'value': value, 'column': com.newgrounds.SaveGroupQuery.rating_columns[column]});
this.clearCache();
};
v2.sortOn = function (field, order) {
if (!com.newgrounds.SaveGroupQuery.file_fields[field]) {
var v2 = [];
for (var v3 in com.newgrounds.SaveGroupQuery.file_fields) {
v2.push(v3);
}
this.error('\'' + field + '\' is not a valid sort field. Valid fields are: ' + v2.join(', '));
return undefined;
}
this.addSortCondition(com.newgrounds.SaveGroupQuery.TABLE_FILES, field, order);
};
v2.sortOnKey = function (key, order) {
if (!this._group.getKeyID(key)) {
this.error('\'' + key + '\' is not a valid key for the \'' + this._group.getName() + '\' _group');
return undefined;
}
this.addSortCondition(com.newgrounds.SaveGroupQuery.TABLE_KEYS, this._group.getKeyID(key), order);
};
v2.sortOnRating = function (rating, order, column) {
if (!this._group.getRatingID(rating)) {
this.error('\'' + rating + '\' is not a valid rating for the \'' + this._group.getName() + '\' _group');
return undefined;
}
if (!column) {
column = 'score';
}
this.addSortCondition(com.newgrounds.SaveGroupQuery.TABLE_RATINGS, this._group.getRatingID(rating), order, column);
};
v2.sortOnRatingScore = function (rating, order) {
this.sortOnRating(rating, order, 'score');
};
v2.sortOnRatingVotes = function (rating, order) {
this.sortOnRating(rating, order, 'votes');
};
v2.addSortCondition = function (table, field, order, extra) {
var v7;
if (!order or order == '' or order.toUpperCase() == 'ASC') {
v7 = false;
} else {
if (order.toUpperCase() == 'DESC') {
v7 = true;
} else {
this.error('\'' + order + '\' is not a valid sort order!');
return undefined;
}
}
var v3 = {'table': table, 'field': field, 'desc': v7};
if (extra) {
v3.extra = extra;
}
this.sort_conditions.push(v3);
this.clearCache();
};
v2.onExecuted = function (results) {
this._results = [];
var v6 = 0;
while (v6 < results.length) {
var v2 = results[v6];
var v3 = new com.newgrounds.SaveFile(this._group);
v3.setName(v2.filename);
v3.setID(v2.save_id);
v3.setDescription(v2.description);
v3.setThumbnailURL(v2.thumb);
v3.setFileURL(v2.file);
if (v2.views) {
v3.setViews(v2.views);
}
v3.setPermissions(v2.status, v2.locked);
v3.authorName = v2.user_name;
v3.authorID = v2.user_id;
var v5 = 0;
while (v5 < v2.keys.length) {
v3.setKey(v2.keys[v5].id, v2.keys[v5].value);
++v5;
}
var v4 = 0;
while (v4 < v2.ratings.length) {
v3.setRating(v2.ratings[v4].id, v2.ratings[v4].votes, v2.ratings[v4].score);
++v4;
}
(this.getGroup()).addFile(v3);
this._results.push(v3);
++v6;
}
this.callEventDispatcher();
};
v2.hasResults = function () {
return this._results && this._results.length > 0;
};
v2.callEventDispatcher = function () {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.QUERY_COMPLETE, true, {'query': this});
};
v2.execute = function () {
if (this.hasResults() && !this.isRandomized()) {
this.callEventDispatcher();
return undefined;
}
this._group.query = this;
com.newgrounds.API.lookupSaveFiles(this._group);
};
v2.processResults = function (files) {
return null;
};
v2.validateKeyValue = function (key, value) {
var v3 = this._group.getKeyType(key);
if (v3) {
var v2 = com.newgrounds.SaveGroup.KEY_TYPES[v3];
if (v2 == 'float' and com.newgrounds.ValidationTools.isFloat(value)) {
return true;
} else {
if (v2 == 'integer' and com.newgrounds.ValidationTools.isInteger(value)) {
return true;
} else {
if (v2 == 'string' and com.newgrounds.ValidationTools.isString(value)) {
return true;
}
}
}
this.error('Expected type ' + v2 + ' for key \'' + key + '\'');
}
return false;
};
v2.validateValue = function (field, value) {
if (com.newgrounds.SaveGroupQuery.file_fields[field]) {
if (com.newgrounds.SaveGroupQuery.file_fields[field].type == 'integer' and com.newgrounds.ValidationTools.isInteger(value)) {
return true;
} else {
if (com.newgrounds.SaveGroupQuery.file_fields[field].type == 'float' and com.newgrounds.ValidationTools.isFloat(value)) {
return true;
} else {
if (com.newgrounds.SaveGroupQuery.file_fields[field].type == 'string' and com.newgrounds.ValidationTools.isString(value)) {
return true;
} else {
this.error('Expecting ' + com.newgrounds.SaveGroupQuery.file_fields[field].type + ' value on \'' + field + '\' condition');
}
}
}
return false;
}
var v2 = [];
for (var v4 in com.newgrounds.SaveGroupQuery.file_fields) {
v2.push(v4);
}
this.error('\'' + field + '\' is not a searchable field. Valid fields are: ' + v2.join(', '));
return false;
};
v2.validateOperator = function (operator) {
var v2 = 0;
while (v2 < com.newgrounds.SaveGroupQuery.valid_operators.length) {
if (operator == com.newgrounds.SaveGroupQuery.valid_operators[v2]) {
return true;
}
++v2;
}
this.error('\'' + operator + '\' is not a valid lookup operation. Valid operations are: ' + com.newgrounds.SaveGroupQuery.valid_operators.join(', '));
return false;
};
v2.error = function (msg) {
trace('[QUERY ERROR] :: ' + msg);
};
v1.TABLE_FILES = 1;
v1.TABLE_KEYS = 2;
v1.TABLE_RATINGS = 3;
v2._results = [];
v1.file_fields = {'FILE_ID': {'id': 0, 'field': 'file_id', 'type': 'integer'}, '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'}};
v1.rating_columns = {'TOTAL_VOTES': 'votes', 'SCORE': 'score'};
v1.valid_operators = ['=', '<', '>', '!=', '<>', '<=', '>=', '*', '!*', '!*=', '!=*', '*=', '=*'];
v2.addProperty('group', v2.__get__group, function () {});
v2.addProperty('groupId', v2.__get__groupId, function () {});
v2.addProperty('page', v2.__get__page, v2.__set__page);
v2.addProperty('pages', v2.__get__pages, function () {});
v2.addProperty('randomize', v2.__get__randomize, v2.__set__randomize);
v2.addProperty('results', v2.__get__results, function () {});
v2.addProperty('resultsPerPage', v2.__get__resultsPerPage, v2.__set__resultsPerPage);
ASSetPropFlags(com.newgrounds.SaveGroupQuery.prototype, null, 1);
}
#endinitclip
}
movieClip 46 __Packages.com.newgrounds.encoders.ImageScanner {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.ImageScanner) {
var v1 = function (the_source) {
if (the_source) {
this.image_source = the_source;
} else {
this.image_source = _root;
}
this.reset();
if (typeof this.image_source == 'movieclip') {
if (this.image_source == _root) {
this.source_width = Stage.width;
this.source_height = Stage.height;
} else {
this.source_width = Math.floor(this.image_source._width);
this.source_height = Math.floor(this.image_source._height);
}
this.sourceBitmap = new flash.display.BitmapData(this.source_width, this.source_height, false, 4294967295.0);
this.sourceBitmap.draw(_root);
} else {
if (this.image_source.width) {
this.source_width = this.image_source.width;
this.source_height = this.image_source.height;
this.sourceBitmap = this.image_source;
} else {
this.error('You can only use BitMaptData and MovieClip objects to create images');
}
}
};
com.newgrounds.encoders.ImageScanner = v1;
var v2 = v1.prototype;
v2.setCallback = function (target, funct) {
if (target && funct) {
this.callback_target = target;
this.callback_function = funct;
}
};
v2.reset = function () {
this.callback_target = null;
this.callback_function = null;
this.debug.bad_pixels = 0;
this.hash = '0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ<>?:;-_=+()!&';
var v3 = Math.pow(this.hash.length, 2);
trace('MAX COLORS: ' + v3);
var v2 = Math.floor(Math.pow(v3, 0.3333333333333333)) - 1;
var v4 = Math.pow(v2, 3);
this.cube = v2;
this.basen = new com.newgrounds.encoders.BaseN(this.hash);
this.xpos = 0;
this.ypos = 0;
this.pixels = 0;
this.busy = false;
};
v2.startScan = function (w, h, s) {
if (w) {
this.image_width = w;
}
if (h) {
this.image_height = h;
}
if (s != undefined) {
this.crop = s;
}
var v7 = _root.getNextHighestDepth();
var v6 = _root.createEmptyMovieClip('API_image_container_' + v7, v7);
var v5 = v6.createEmptyMovieClip('canvas', 100);
v5.attachBitmap(this.sourceBitmap, 100);
if (this.crop) {
if (this.image_width / this.source_width > this.image_height / this.source_height) {
this.canvas_width = this.image_width;
this.canvas_height = Math.ceil(this.source_height * (this.image_width / this.source_width));
} else {
this.canvas_height = this.image_height;
this.canvas_width = Math.ceil(this.source_width * (this.image_height / this.source_height));
}
} else {
this.canvas_width = this.image_width;
this.canvas_height = this.image_height;
}
v5._x = Math.round((this.image_width - this.canvas_width) / 2);
v5._width = this.canvas_width;
v5._height = this.canvas_height;
this.resizedBitmap = new flash.display.BitmapData(this.image_width, this.image_height, false, 4294967295.0);
this.resizedBitmap.draw(v6);
v6.removeMovieClip();
this.copyBitmap = new flash.display.BitmapData(this.image_width, this.image_height, false, 4294967295.0);
var v3 = '' + this.image_width;
while (v3.length < 3) {
v3 = '0' + v3;
}
var v4 = '' + this.image_height;
while (v4.length < 3) {
v4 = '0' + v4;
}
this.output = v3 + v4;
this.draw_interval = setInterval(this, 'drawChunk', 10);
this.busy = false;
return this.resizedBitmap;
};
v2.getBitmapData = function () {
return this.copyBitmap;
};
v2.getBytesTotal = function () {
return this.image_width * this.image_height * 2;
};
v2.getBytesScanned = function () {
return this.pixels * 2;
};
v2.getProgress = function () {
return Math.round((this.getBytesScanned() / this.getBytesTotal()) * 100);
};
v2.drawChunk = function () {
if (!this.busy) {
this.busy = true;
var v2 = 0;
while (v2 < this.pixels_per_chunk) {
if (!this.nextPixel()) {
clearInterval(this.draw_interval);
this.callback_interval = setInterval(this, 'doCallback', 25);
this.busy = true;
break;
}
++v2;
}
this.busy = false;
}
};
v2.doCallback = function () {
this.busy = false;
clearInterval(this.callback_interval);
if (this.callback_target and this.callback_function) {
this.callback_target[this.callback_function](this.output);
} else {
this.onScanComplete(this.output);
}
};
v2.onScanComplete = function (packet) {
this.sendMessage('packet size: ' + this.output.length + ' bytes', 'onScanComplete');
};
v2.nextPixel = function () {
var v15 = this.xpos;
var v14 = this.ypos;
var v7 = this.resizedBitmap.getPixel(v15, v14);
var v17 = v7 >> 16 & 255;
var v20 = v7 >> 8 & 255;
var v16 = v7 >> 0 & 255;
var v11 = Math.round(((v17 + 1) / 256) * this.cube);
var v10 = Math.round(((v20 + 1) / 256) * this.cube);
var v13 = Math.round(((v16 + 1) / 256) * this.cube);
var v12 = v11 * (this.cube + 1) * (this.cube + 1) + v10 * (this.cube + 1) + v13;
var v6 = this.basen.encode(v12, 2);
this.output += v6;
if (v6.length != 2) {
trace('bad pixel ' + v6);
}
var v5 = this.basen.decode(v6);
var v18 = v5;
var v8 = v5 % (this.cube + 1);
v5 = (v5 - v8) / (this.cube + 1);
var v9 = v5 % (this.cube + 1);
var v19 = (v5 - v9) / (this.cube + 1);
if (v13 != v8 and v10 != v9 and v11 != v10) {
++this.debug.bad_pixels;
trace('BAD PIXEL ' + this.debug.bad_pixels + ') ' + v12 + ' != ' + v18 + ' ' + v6);
trace(this.basen.debug.lastencode);
}
var v2 = (Math.round((v19 / this.cube) * 255)).toString(16);
var v4 = (Math.round((v9 / this.cube) * 255)).toString(16);
var v3 = (Math.round((v8 / this.cube) * 255)).toString(16);
while (v2.length < 2) {
v2 = '0' + v2;
}
while (v4.length < 2) {
v4 = '0' + v4;
}
while (v3.length < 2) {
v3 = '0' + v3;
}
this.copyBitmap.setPixel(v15, v14, Number('0x' + v2 + v4 + v3));
++this.pixels;
if (this.pixels >= this.image_width * this.image_height) {
return false;
}
++this.xpos;
if (this.xpos >= this.image_width) {
this.xpos = 0;
++this.ypos;
}
return true;
};
v2.error = function (e, f) {
this.sendMessage(e, f, 'ERROR');
};
v2.sendMessage = function (msg, func, type) {
var v1 = 'ImageScanner';
if (func) {
v1 += '.' + func + '()';
}
if (type) {
v1 = type + ' in ' + v1;
}
v1 += ' :: ' + msg;
trace(v1);
};
v2.image_width = 100;
v2.image_height = 100;
v2.crop = true;
v2.pixels_per_chunk = 500;
v2.debug = new Object();
ASSetPropFlags(com.newgrounds.encoders.ImageScanner.prototype, null, 1);
}
#endinitclip
}
movieClip 45 __Packages.com.newgrounds.encoders.BaseN {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.BaseN) {
var v1 = function (hash) {
this.ceiling = 100000000000000.0;
if (hash) {
this.hashIndex = hash;
} else {
this.hashIndex = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~@#$%^&*()+|;/';
}
this.bitSize = this.hashIndex.length;
this.hashVal = new Object();
this.i = 0;
while (this.i < this.bitSize) {
this.hashVal[this.hashIndex.charAt(this.i)] = this.i;
++this.i;
}
};
com.newgrounds.encoders.BaseN = v1;
var v2 = v1.prototype;
v2.verify = function (s) {
if (this.hashVal[s] != undefined) {
return true;
} else {
return false;
}
};
v2.encode = function (n, minchars) {
this.debug.lastencode = '';
if (typeof this.i != 'string') {
n = n.toString();
}
if (n.charAt(0) == '-') {
var v3 = '-';
n = n.substring(1);
} else {
var v3 = '';
}
if ((String(n)).indexOf('.') > -1) {
var v4 = (String(n)).split('.', 2);
return v3 + this.baseNEncoder(v4[0], minchars) + '.' + this.baseNEncoder(v4[1]);
} else {
this.debug.lastencode += '\tNo decimal\r';
return v3 + this.baseNEncoder(n, minchars);
}
};
v2.decode = function (s) {
var v4 = 1;
if (s.charAt(0) == '-') {
v4 = -1;
s = s.substring(1, s.length);
}
var v3 = s.indexOf('.');
if (v3 > -1) {
var v5 = Math.pow(10, this.baseNDecoder(s.substring(v3 + 1, s.length)));
return (this.baseNDecoder(s.substring(0, v3)) / v5) * v4;
} else {
return this.baseNDecoder(s) * v4;
}
};
v2.baseNEncoder = function (n, minchars) {
if (!minchars) {
minchars = 1;
}
var v4 = '';
while (n != 0) {
n = Math.round(n);
var v3 = n % this.bitSize;
if (Math.round(v3) != v3) {
trace('BaseN failed on ' + n + '%' + this.bitSize + ' = ' + v3 + ' ' + int(n) + ' ' + int(this.bitSize));
}
v4 = this.hashIndex.charAt(v3) + v4;
this.debug.lastencode += '\t-> n:' + n + ' % bitSize:' + this.bitSize + ' = ' + v3 + ', final char=' + v4 + '\n';
n -= v3;
n /= this.bitSize;
}
if (minchars) {
while (v4.length < minchars) {
v4 = this.hashIndex.charAt(0) + v4;
}
}
return v4;
};
v2.baseNDecoder = function (s) {
var v2 = 0;
var v6 = 0;
this.i = 0;
while (this.i < s.length) {
var v3 = s.charAt(s.length - this.i - 1);
if (v3 == this.hashIndex.charAt(0)) {
var v5 = 0;
} else {
var v5 = this.hashVal[v3] * Math.pow(this.bitSize, this.i);
}
v2 += v5;
if (v2 >= this.ceiling) {
v6 += (v2 - v2 % this.ceiling) / this.ceiling;
v2 %= this.ceiling;
}
++this.i;
}
if (v6 > 0) {
v2 = '' + v2;
while (v2.length < (this.ceiling.toString()).length - 1) {
v2 = '0' + v2;
}
v2 = '' + v6 + v2;
}
return v2;
};
v2.debug = new Object();
ASSetPropFlags(com.newgrounds.encoders.BaseN.prototype, null, 1);
}
#endinitclip
}
movieClip 56 __Packages.com.newgrounds.APIEventDispatcher {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.APIEventDispatcher) {
var v1 = function () {};
com.newgrounds.APIEventDispatcher = v1;
var v2 = v1.prototype;
v2.addEventListener = function (event, callback, target) {
if (!target) {
throw 'Attempted to create a listener without providing a target object.';
}
if (!this.listeners[event]) {
this.listeners[event] = [];
} else {
this.removeEventListener(event, target);
}
this.listeners[event].push({'target': target, 'callback': callback});
};
v2.removeEventListener = function (event, target) {
if (!target) {
throw 'Attempted to remove a listener without providing a target object.';
}
if (!this.listeners[event] || this.listeners[event].length < 1) {
return undefined;
}
var v4 = [];
var v2 = 0;
while (v2 < this.listeners[event].length) {
if (this.listeners[event][v2].target != target) {
v4.push(this.listeners[event][v2]);
}
++v2;
}
this.listeners[event] = v4;
};
v2.dispatchEvent = function (event) {
if (!this.hasEventListener(event.__get__type())) {
return false;
}
this.collectGarbage(event.__get__type());
var v2 = 0;
while (v2 < this.listeners[event.__get__type()].length) {
var v4 = this.listeners[event.__get__type()][v2].callback;
if (this.listeners[event.__get__type()][v2].target) {
var v5 = this.listeners[event.__get__type()][v2].target;
v4.call(v5, event);
} else {
v4(event);
}
++v2;
}
return true;
};
v2.hasEventListener = function (event) {
return this.listeners[event] != undefined && this.listeners[event].length > 0;
};
v2.collectGarbage = function (event) {
var v5 = [];
if (!this.hasEventListener) {
return undefined;
}
var v2 = 0;
while (v2 < this.listeners[event].length) {
var v4 = this.listeners[event][v2].target;
if (v4) {
v5.push(this.listeners[event][v2]);
}
++v2;
}
this.listeners[event] = v5;
};
v2.listeners = {};
ASSetPropFlags(com.newgrounds.APIEventDispatcher.prototype, null, 1);
}
#endinitclip
}
movieClip 43 __Packages.com.newgrounds.APIEvent {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.APIEvent) {
var v1 = function (type, success, data) {
this._type = type;
this._success = success;
if (data.isError()) {
this._error = data;
this.data = null;
} else {
if (data.error && data.error.isError()) {
this._error = data.error;
this.data = data;
} else {
this.data = data;
this._error = null;
}
}
};
com.newgrounds.APIEvent = v1;
var v2 = v1.prototype;
v2.__get__error = function () {
return this._error;
};
v2.__get__type = function () {
return this._type;
};
v2.__get__success = function () {
return this._success;
};
v1.API_CONNECTED = 'apiConnected';
v1.ADS_APPROVED = 'adsApproved';
v1.AD_ATTACHED = 'adAttached';
v1.HOST_BLOCKED = 'hostBlocked';
v1.NEW_VERSION_AVAILABLE = 'newVersionAvailable';
v1.EVENT_LOGGED = 'eventLogged';
v1.SCORE_POSTED = 'scorePosted';
v1.SCORES_LOADED = 'scoresLoaded';
v1.UNLOCK_MEDAL = 'unlockMedal';
v1.MEDAL_UNLOCKED = 'medalUnlocked';
v1.MEDALS_LOADED = 'medalsLoaded';
v1.METADATA_LOADED = 'metadataLoaded';
v1.FILE_PRIVS_LOADED = 'filePrivsLoaded';
v1.FILE_SAVED = 'fileSaved';
v1.FILE_LOADED = 'fileLoaded';
v1.FILE_INITIALIZED = 'fileInitialized';
v1.FILE_REQUESTED = 'fileRequested';
v1.QUERY_COMPLETE = 'queryComplete';
v1.VOTE_COMPLETE = 'voteComplete';
v1.API_ERROR = 'apiError';
v1.UNCAUGHT_EVENT = 'uncaughtEvent';
v2.addProperty('error', v2.__get__error, function () {});
v2.addProperty('success', v2.__get__success, function () {});
v2.addProperty('type', v2.__get__type, function () {});
ASSetPropFlags(com.newgrounds.APIEvent.prototype, null, 1);
}
#endinitclip
}
movieClip 37 __Packages.com.newgrounds.APIError {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.APIError) {
var v1 = function (error, msg) {
if ((Number(error)).toString() == String(error)) {
error = Number(error);
} else {
if (com.newgrounds.APIError.error_codes[String(error)]) {
error = com.newgrounds.APIError.error_codes[String(error)];
} else {
error = 0;
}
}
this.code = error;
this.message = msg;
this.name = com.newgrounds.APIError.error_names[error];
this.alias = com.newgrounds.APIError.aliases[error];
};
com.newgrounds.APIError = v1;
var v2 = v1.prototype;
v1.init_codes = function () {
var v2 = new Object();
var v1 = 0;
while (v1 < com.newgrounds.APIError.aliases.length) {
v2[com.newgrounds.APIError.aliases[v1]] = v1;
++v1;
}
return v2;
};
v1.init_names = function () {
var v5 = new Array();
var v3 = 0;
while (v3 < com.newgrounds.APIError.aliases.length) {
var v2 = (com.newgrounds.APIError.aliases[v3].toLowerCase()).split('_');
var v1 = 0;
while (v1 < v2.length) {
v2[v1] = (v2[v1].substr(0, 1)).toUpperCase() + v2[v1].substr(1, v2[v1].length);
for (var v4 in com.newgrounds.APIError.always_caps) {
if (v2[v1].toUpperCase() == com.newgrounds.APIError.always_caps[v4]) {
v2[v1] = v2[v1].toUpperCase();
}
}
++v1;
}
v5[v3] = v2.join(' ');
++v3;
}
return v5;
};
v2.isError = function () {
return true;
};
v1.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', 'INVALID_SCOREBOARD');
v1.always_caps = new Array('API', 'URL', 'ID');
v1.error_codes = com.newgrounds.APIError.init_codes();
v1.error_names = com.newgrounds.APIError.init_names();
v2.code = 0;
ASSetPropFlags(com.newgrounds.APIError.prototype, null, 1);
}
#endinitclip
}
movieClip 50 __Packages.com.newgrounds.RemoteAuth {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.RemoteAuth) {
var v1 = function (id) {
this.auth_token = id;
System.security.allowDomain('*');
this.receiver = new LocalConnection();
this.receiver.allowDomain = function () {
return true;
};
this.receiver.onAuth = function (auth_result) {
trace('remote login is a success! ' + auth_result);
com.newgrounds.API.onRemoteAuthentication(auth_result);
};
this.receiver.connect('_' + this.auth_token);
};
com.newgrounds.RemoteAuth = v1;
var v2 = v1.prototype;
v2.__get__token = function () {
return this.auth_token;
};
v2.addProperty('token', v2.__get__token, function () {});
ASSetPropFlags(com.newgrounds.RemoteAuth.prototype, null, 1);
}
#endinitclip
}
movieClip 5 __Packages.com.newgrounds.components.PreloaderBar {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.components) {
_global.com.newgrounds.components = new Object();
}
if (!_global.com.newgrounds.components.PreloaderBar) {
var v1 = function () {
super();
};
com.newgrounds.components.PreloaderBar = v1;
com.newgrounds.components.PreloaderBar extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
_root.stop();
var v3 = com.newgrounds.API.getPercentLoaded();
if (v3 == 100) {
if (this.AUTO_PLAY) {
this.startMovie();
} else {
this.gotoAndStop(this._totalframes);
}
} else {
this.advanceFrame(this, false, false);
this.FRAME_TIME = 1000 / this.FRAME_RATE;
this.loadingComplete = false;
this.intervalId = setInterval(this, 'timerHandler', this.FRAME_TIME / 2);
this.frameAccum = 0;
this.time = getTimer();
this.timerHandler();
}
};
v2.timerHandler = function () {
if (!this.loadingComplete) {
var v4 = com.newgrounds.API.getPercentLoaded();
this.bar._xscale = v4;
if (v4 == 100) {
this.loadingComplete = true;
if (this.AUTO_PLAY) {
this.startMovie();
}
return undefined;
}
}
var v3 = getTimer() - this.time;
this.time += v3;
this.frameAccum += v3;
var v2 = 0;
for (;;) {
if (!(this.frameAccum >= this.FRAME_TIME && v2 < this.MAX_FRAME_SKIP)) break;
if (this.loadingComplete) {
this.advanceFrame(this, false, false);
}
this.frameAccum -= this.FRAME_TIME;
v2++;
}
updateAfterEvent();
};
v2.advanceFrame = function (clip, recurse, loop) {
if (!clip) {
return undefined;
}
clip.stop();
if (clip._currentframe == clip._totalframes) {
if (loop) {
clip.gotoAndStop(1);
}
} else {
clip.nextFrame();
}
if (recurse) {
for (var v5 in clip) {
if (typeof clip[v5] == 'movieclip') {
this.advanceFrame(clip[v5], recurse, loop);
}
}
}
};
v2.startMovie = function () {
clearInterval(this.intervalId);
_root.play();
};
v1.symbolName = 'preloaderBar';
v1.symbolOwner = 'com.newgrounds.API';
v2.AUTO_PLAY = false;
v2.FRAME_RATE = 30;
v2.MAX_FRAME_SKIP = 5;
v2.loadingComplete = false;
v2.frameAccum = 0;
ASSetPropFlags(com.newgrounds.components.PreloaderBar.prototype, null, 1);
}
#endinitclip
}
movieClip 42 __Packages.com.newgrounds.ValidationTools {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.ValidationTools) {
var v1 = function () {};
com.newgrounds.ValidationTools = v1;
var v2 = v1.prototype;
v1.isNumber = function (v) {
if (typeof v == 'number') {
return true;
return false;
}
if (typeof v == 'string' and (Number(v)).toString() == v) {
return true;
}
return false;
};
v1.isInteger = function (v) {
if (com.newgrounds.ValidationTools.isNumber(v)) {
v = Number(v);
return Math.floor(v) == v;
}
return false;
};
v1.isFloat = function (v) {
return com.newgrounds.ValidationTools.isNumber(v);
};
v1.isString = function (v) {
if (typeof v == 'string' or typeof v == 'number') {
return true;
}
return false;
};
v1.isEmpty = function (o) {
for (var v2 in o) {
return false;
}
return true;
};
ASSetPropFlags(com.newgrounds.ValidationTools.prototype, null, 1);
}
#endinitclip
}
movieClip 47 __Packages.com.newgrounds.encoders.SerialXML {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.SerialXML) {
var v1 = function () {};
com.newgrounds.encoders.SerialXML = v1;
var v2 = v1.prototype;
v1.decode = function (xml) {
if (!(xml instanceof XML)) {
xml = new XML(xml);
}
var v2 = com.newgrounds.encoders.SerialXML.populateObject(xml.firstChild, {});
return v2.DATA;
};
v1.encode = function (obj) {
var v1 = new XML();
com.newgrounds.encoders.SerialXML.populateXML(v1, obj, 'DATA');
return v1;
};
v1.populateObject = function (child, object) {
var v6 = child.nodeName;
var v5 = com.newgrounds.encoders.SerialXML.getValue(v6, child.attributes.v);
var v4 = child.attributes.n;
if (object instanceof Array) {
v4 = object.length;
object.push(v5);
} else {
object[v4] = v5;
}
if (child.hasChildNodes()) {
var v1 = 0;
while (v1 < child.childNodes.length) {
com.newgrounds.encoders.SerialXML.populateObject(child.childNodes[v1], object[v4]);
++v1;
}
}
return object;
};
v1.populateXML = function (child, obj, name) {
if (obj === undefined) {
return undefined;
}
var v5 = new XML();
var v2;
if (obj instanceof Array) {
v2 = v5.createElement(com.newgrounds.encoders.SerialXML.getType(obj));
if (name) {
v2.attributes.n = name;
}
child.appendChild(v2);
var v4 = 0;
while (v4 < obj.length) {
com.newgrounds.encoders.SerialXML.populateXML(v2, obj[v4]);
++v4;
}
} else {
if (typeof obj == 'object') {
v2 = v5.createElement(com.newgrounds.encoders.SerialXML.getType(obj));
if (name) {
v2.attributes.n = name;
}
child.appendChild(v2);
for (var v4 in obj) {
com.newgrounds.encoders.SerialXML.populateXML(v2, obj[v4], v4);
}
} else {
v2 = v5.createElement(com.newgrounds.encoders.SerialXML.getType(obj));
if (name) {
v2.attributes.n = name;
}
if ((com.newgrounds.encoders.SerialXML.getType(obj)).length == 1) {
v2.attributes.v = obj;
}
child.appendChild(v2);
}
}
};
v1.getValue = function (type, stringval) {
switch (type.toUpperCase()) {
case 'O':
return new Object();
break;
case 'A':
return new Array();
break;
case 'N':
return Number(stringval);
break;
case 'S':
return String(stringval);
break;
case 'TRUE':
return true;
break;
case 'FALSE':
return false;
break;
default:
return null;
}
};
v1.getType = function (obj) {
switch (obj instanceof Array ? 'array' : typeof obj) {
case 'array':
return 'A';
break;
case 'object':
return 'O';
break;
case 'string':
return 'S';
break;
case 'number':
return 'N';
case 'boolean':
return (obj === true) ? 'TRUE' : 'FALSE';
break;
default:
return 'NULL';
}
};
ASSetPropFlags(com.newgrounds.encoders.SerialXML.prototype, null, 1);
}
#endinitclip
}
movieClip 48 __Packages.com.newgrounds.encoders.LZW2 {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.LZW2) {
var v1 = function () {};
com.newgrounds.encoders.LZW2 = v1;
var v2 = v1.prototype;
v1.doCompressorConfig = function () {
com.newgrounds.encoders.LZW2.comp_dict = [];
var v1 = 0;
while (v1 < 256) {
com.newgrounds.encoders.LZW2.comp_dict[String.fromCharCode(v1)] = v1;
++v1;
}
com.newgrounds.encoders.LZW2.comp_dict.< = 256;
com.newgrounds.encoders.LZW2.comp_dict.> = 257;
com.newgrounds.encoders.LZW2.comp_dict.& = 258;
com.newgrounds.encoders.LZW2.comp_dict." = 259;
com.newgrounds.encoders.LZW2.comp_dict.\' = 260;
com.newgrounds.encoders.LZW2.pos = 0;
com.newgrounds.encoders.LZW2.result = '';
com.newgrounds.encoders.LZW2.buffer = '';
com.newgrounds.encoders.LZW2.nbChar = 256 + com.newgrounds.encoders.LZW2.skipnum;
};
v1.compress = function (string, callback, callback_params) {
com.newgrounds.encoders.LZW2.doCompressorConfig();
if (com.newgrounds.encoders.LZW2.busy) {
trace('[LZW COMPRESSOR] :: Compression can not begin until previous compression or decompression is complete!');
return undefined;
}
com.newgrounds.encoders.LZW2.splitStr = string.split('');
string = '';
com.newgrounds.encoders.LZW2.len = com.newgrounds.encoders.LZW2.splitStr.length;
com.newgrounds.encoders.LZW2.local = {'delay': 30, 'callback': callback, 'callback_params': callback_params, 'compress_chunk': function () {
com.newgrounds.encoders.LZW2.compress_chunk();
}, 'busy': false, 'complete': false};
com.newgrounds.encoders.LZW2.interval = setInterval(com.newgrounds.encoders.LZW2.local, 'compress_chunk', 5);
};
v1.getProgress = function () {
return Math.round((com.newgrounds.encoders.LZW2.pos / com.newgrounds.encoders.LZW2.len) * 100);
};
v1.compress_chunk = function () {
if (com.newgrounds.encoders.LZW2.local.delay > 0) {
--com.newgrounds.encoders.LZW2.local.delay;
} else {
if (!com.newgrounds.encoders.LZW2.local.busy) {
com.newgrounds.encoders.LZW2.local.busy = true;
var v1 = 0;
while (v1 < com.newgrounds.encoders.LZW2.max_chunk_length) {
com.newgrounds.encoders.LZW2.encode_next();
if (com.newgrounds.encoders.LZW2.local.complete) {
break;
}
++v1;
}
com.newgrounds.encoders.LZW2.local.busy = false;
}
}
if (com.newgrounds.encoders.LZW2.local.complete) {
trace('LZW2 complete ' + com.newgrounds.encoders.LZW2.nbChar + ' ' + com.newgrounds.encoders.LZW2.comp_dict.length + ' ' + com.newgrounds.encoders.LZW2.len + ' ' + com.newgrounds.encoders.LZW2.pos + ' ' + com.newgrounds.encoders.LZW2.skipnum);
clearInterval(com.newgrounds.encoders.LZW2.interval);
com.newgrounds.encoders.LZW2.local.callback(com.newgrounds.encoders.LZW2.result, com.newgrounds.encoders.LZW2.local.callback_params);
com.newgrounds.encoders.LZW2.result = '';
com.newgrounds.encoders.LZW2.buffer = '';
}
};
v1.encode_next = function () {
if (com.newgrounds.encoders.LZW2.pos <= com.newgrounds.encoders.LZW2.len) {
var v1 = com.newgrounds.encoders.LZW2.splitStr[com.newgrounds.encoders.LZW2.pos];
if (com.newgrounds.encoders.LZW2.comp_dict[com.newgrounds.encoders.LZW2.buffer + v1] !== undefined) {
com.newgrounds.encoders.LZW2.buffer += v1;
} else {
com.newgrounds.encoders.LZW2.result += String.fromCharCode(com.newgrounds.encoders.LZW2.comp_dict[com.newgrounds.encoders.LZW2.buffer]);
com.newgrounds.encoders.LZW2.comp_dict[com.newgrounds.encoders.LZW2.buffer + v1] = com.newgrounds.encoders.LZW2.nbChar;
++com.newgrounds.encoders.LZW2.nbChar;
com.newgrounds.encoders.LZW2.buffer = v1;
}
++com.newgrounds.encoders.LZW2.pos;
} else {
com.newgrounds.encoders.LZW2.local.complete = true;
return undefined;
}
};
v1.comp_config = false;
v1.skipnum = 5;
v1.busy = false;
v1.max_chunk_length = 12000;
ASSetPropFlags(com.newgrounds.encoders.LZW2.prototype, null, 1);
}
#endinitclip
}
movieClip 49 __Packages.com.newgrounds.encoders.LZW {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.LZW) {
var v1 = function () {};
com.newgrounds.encoders.LZW = v1;
var v2 = v1.prototype;
v1.setXMLSafe = function (x) {
com.newgrounds.encoders.LZW.xmlsafe = x;
};
v1.compress = function (str, escape_chars) {
var v2 = new Array();
var v11 = com.newgrounds.encoders.LZW.xmlsafe ? 5 : 0;
var v5 = 0;
while (v5 < 256) {
v2[String.fromCharCode(v5)] = v5;
++v5;
}
if (com.newgrounds.encoders.LZW.xmlsafe) {
v2.< = 256;
v2.> = 257;
v2.& = 258;
v2." = 259;
v2.\' = 260;
}
var v7 = '';
var v8 = str.split('');
var v9 = v8.length;
var v6 = 256 + v11;
var v1 = '';
var v4;
v5 = 0;
while (v5 <= v9) {
var v3 = v8[v5];
if (v2[v1 + v3] !== undefined) {
v1 += v3;
} else {
v4 = String.fromCharCode(v2[v1]);
if (escape_chars and (v2[v1] < 33 or v2[v1] > 126 or v4 == '%')) {
v4 = escape(v4);
}
v7 += v4;
v2[v1 + v3] = v6;
++v6;
v1 = v3;
}
++v5;
}
return v7;
};
v1.decompress = function (str) {
var v4 = new Array();
var v10 = com.newgrounds.encoders.LZW.xmlsafe ? 5 : 0;
var v6 = 0;
while (v6 < 256) {
var v9 = String.fromCharCode(v6);
v4[v6] = v9;
++v6;
}
if (com.newgrounds.encoders.LZW.xmlsafe) {
v4[256] = '<';
v4[257] = '>';
v4[258] = '&';
v4[259] = '"';
v4[260] = '\'';
}
var v11 = str;
var v13 = v11.split('');
var v12 = v13.length;
var v7 = 256 + v10;
var v1 = '';
var v2 = '';
var v8 = '';
v6 = 0;
while (v6 < v12) {
var v5 = v11.charCodeAt(v6);
var v3 = v4[v5];
if (v1 == '') {
v1 = v3;
v8 += v3;
} else {
if (v5 <= 255 + v10) {
v8 += v3;
v2 = v1 + v3;
v4[v7] = v2;
++v7;
v1 = v3;
} else {
v2 = v4[v5];
if (v2 == undefined) {
v2 = v1 + v1.slice(0, 1);
}
v8 += v2;
v4[v7] = v1 + v2.slice(0, 1);
++v7;
v1 = v2;
}
}
++v6;
}
return v8;
};
v1.compress_fp6 = function (str) {
var v3 = new Array();
var v10 = com.newgrounds.encoders.LZW.xmlsafe ? 5 : 0;
var v4 = 0;
while (v4 < 256) {
v3[String(v4)] = v4;
++v4;
}
if (com.newgrounds.encoders.LZW.xmlsafe) {
var v14 = String((new String('<')).charCodeAt(0));
var v11 = String((new String('>')).charCodeAt(0));
var v13 = String((new String('&')).charCodeAt(0));
var v15 = String((new String('"')).charCodeAt(0));
var v12 = String((new String('\'')).charCodeAt(0));
v3[v14] = 256;
v3[v11] = 257;
v3[v13] = 258;
v3[v15] = 259;
v3[v12] = 260;
}
var v7 = '';
var v16 = str;
var v8 = v16.split('');
var v9 = v8.length;
var v6 = 256 + v10;
var v1 = new Array();
v4 = 0;
while (v4 <= v9) {
var v2 = v8[v4];
if (v1.length == 0) {
var v5 = String(v2.charCodeAt(0));
} else {
var v5 = v1.join('-') + '-' + String(v2.charCodeAt(0));
}
if (v3[v5] !== undefined) {
v1.push(v2.charCodeAt(0));
} else {
v7 += String.fromCharCode(v3[v1.join('-')]);
v3[v5] = v6;
++v6;
false;
v1 = new Array();
v1.push(v2.charCodeAt(0));
}
++v4;
}
return v7;
};
v1.xmlsafe = false;
ASSetPropFlags(com.newgrounds.encoders.LZW.prototype, null, 1);
}
#endinitclip
}
movieClip 51 __Packages.com.newgrounds.Medal {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.Medal) {
var v1 = function (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');
}
this._medal_id = id;
this._medal_name = name;
this._medal_value = value;
this._medal_difficulty = difficulty;
if (unlocked) {
this._medal_unlocked = true;
}
if (_icon_url) {
this._icon_url = _icon_url;
}
};
com.newgrounds.Medal = v1;
var v2 = v1.prototype;
v2.__get__difficulty = function () {
return com.newgrounds.Medal.difficulty_names[this._medal_difficulty];
};
v2.__get__difficultyId = function () {
return this._medal_difficulty;
};
v2.__get__icon_url = function () {
return this._icon_url;
};
v2.__get__id = function () {
return this._medal_id;
};
v2.__get__name = function () {
return this._medal_name;
};
v2.__get__unlocked = function () {
return this._medal_unlocked;
};
v2.__get__value = function () {
return this._medal_value;
};
v2.isUnlocked = function () {
return this._medal_unlocked;
};
v2.unlock = function () {
if (!this.isUnlocked()) {
com.newgrounds.API.unlockMedal(this);
}
};
v2.setUnlocked = function (u) {
this._medal_unlocked = u;
};
v2.attachIcon = function (target, depth) {
if (!depth) {
depth = target.getNextHighestDepth();
}
var v3 = target.createEmptyMovieClip('Asset_Medal_Icon_' + this.getID(), depth);
if (this._icon_url) {
v3.loadMovie(this._icon_url);
} else {
var v4 = flash.display.BitmapData.loadBitmap('Asset_default_medal_icon_' + this.getDifficulty(), depth);
v3.attachBitmap(v4, depth, true);
}
};
v2.getID = function () {
return this._medal_id;
};
v2.getName = function () {
return this._medal_name;
};
v2.getValue = function () {
return this._medal_value;
};
v2.getDifficulty = function (as_string) {
if (as_string) {
return com.newgrounds.Medal.difficulty_names[this._medal_difficulty];
} else {
return this._medal_difficulty;
}
};
v2._medal_unlocked = false;
v2._icon_loaded = false;
v2._icon_width = 50;
v2._icon_height = 50;
v2._icon_url = null;
v1.difficulty_names = new Array(null, 'Easy', 'Moderate', 'Challenging', 'Difficult', 'Brutal');
v2.addProperty('difficulty', v2.__get__difficulty, function () {});
v2.addProperty('difficultyId', v2.__get__difficultyId, function () {});
v2.addProperty('icon_url', v2.__get__icon_url, function () {});
v2.addProperty('id', v2.__get__id, function () {});
v2.addProperty('name', v2.__get__name, function () {});
v2.addProperty('unlocked', v2.__get__unlocked, function () {});
v2.addProperty('value', v2.__get__value, function () {});
ASSetPropFlags(com.newgrounds.Medal.prototype, null, 1);
}
#endinitclip
}
movieClip 52 __Packages.com.newgrounds.ScoreBoard {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.ScoreBoard) {
var v1 = function (id, name, tag) {
this._name = name;
this._id = id;
if (tag !== undefined) {
this._tag = tag;
}
};
com.newgrounds.ScoreBoard = v1;
var v2 = v1.prototype;
v2.exists = function () {
return Number(this._id) > 0;
};
v2.__get__id = function () {
return this._id;
};
v2.__get__name = function () {
return this._name;
};
v2.__get__period = function () {
return this._period;
};
v2.__get__tag = function () {
return this._tag;
};
v2.__get__page = function () {
return this._page;
};
v2.__get__num_results = function () {
return this._num_results;
};
v2.__get__scores = function () {
return this._scores;
};
v2.postScore = function (value, tag) {
if (tag !== undefined) {
this._tag = tag;
}
com.newgrounds.API.postScore(this._name, value, this._tag);
};
v2.loadScores = function (period, page, num_results, tag) {
if (period) {
this._period = period;
}
if (page) {
this._page = page;
}
if (num_results) {
this._num_results = num_results;
}
this._scores = [];
com.newgrounds.API.loadScores(this._name, this._period, tag);
};
v2.setScores = function (scores, period, page, num_results) {
if (period) {
this._period = period;
}
if (page) {
this._page = page;
}
if (num_results) {
this._num_results = num_results;
}
this._scores = [];
var v2 = 0;
while (v2 < scores.length) {
var v4 = this._num_results * (this._page - 1) + 1 + v2;
this._scores.push(new com.newgrounds.Score(this, v4, scores[v2].username, scores[v2].value, scores[v2].numeric_value));
++v2;
}
};
v2._period = 'Today';
v2._num_results = 10;
v2._page = 1;
v2._tag = '';
v2.addProperty('id', v2.__get__id, function () {});
v2.addProperty('name', v2.__get__name, function () {});
v2.addProperty('num_results', v2.__get__num_results, function () {});
v2.addProperty('page', v2.__get__page, function () {});
v2.addProperty('period', v2.__get__period, function () {});
v2.addProperty('scores', v2.__get__scores, function () {});
v2.addProperty('tag', v2.__get__tag, function () {});
ASSetPropFlags(com.newgrounds.ScoreBoard.prototype, null, 1);
}
#endinitclip
}
movieClip 53 __Packages.com.newgrounds.Score {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.Score) {
var v1 = function (board, position, username, value, numeric_value) {
this._board = board;
this._position = position;
this._username = username;
this._value = value;
this._numeric_value = numeric_value;
};
com.newgrounds.Score = v1;
var v2 = v1.prototype;
v2.__get__board = function () {
return this._board;
};
v2.__get__position = function () {
return this._position;
};
v2.__get__username = function () {
return this._username;
};
v2.__get__value = function () {
return this._value;
};
v2.__get__numeric_value = function () {
return this._numeric_value;
};
v1.fromTime = function (time) {
var v1 = time.split(':');
var v2 = Math.round(Number(v1.pop()) * 1000);
if (v1.length > 0) {
v2 += Number(v1.pop()) * 60;
}
if (v1.length > 0) {
v2 += Number(v1.pop()) * 3600;
}
return v2;
};
v1.fromDistance = function (distance) {
var v1 = distance.indexOf('\'');
var v5 = distance.indexOf('"', v1);
var v3 = Number(distance.substr(0, v1));
var v4 = Number(distance.substring(v1 + 1, v5));
return Math.round(v3 * 12 + v4);
};
v2.addProperty('board', v2.__get__board, function () {});
v2.addProperty('numeric_value', v2.__get__numeric_value, function () {});
v2.addProperty('position', v2.__get__position, function () {});
v2.addProperty('username', v2.__get__username, function () {});
v2.addProperty('value', v2.__get__value, function () {});
ASSetPropFlags(com.newgrounds.Score.prototype, null, 1);
}
#endinitclip
}
movieClip 54 __Packages.com.newgrounds.encoders.RC4 {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.RC4) {
var v1 = function () {};
com.newgrounds.encoders.RC4 = v1;
var v2 = v1.prototype;
v1.encrypt = function (src, key) {
var v3 = com.newgrounds.encoders.RC4.strToChars(src);
var v1 = com.newgrounds.encoders.RC4.strToChars(key);
var v2 = com.newgrounds.encoders.RC4.calculate(v3, v1);
return com.newgrounds.encoders.RC4.charsToHex(v2);
};
v1.encryptbin = function (src, key) {
var v3 = com.newgrounds.encoders.RC4.strToChars(src);
var v1 = com.newgrounds.encoders.RC4.strToChars(key);
var v2 = com.newgrounds.encoders.RC4.calculate(v3, v1);
return v2;
};
v1.decrypt = function (src, key) {
var v3 = com.newgrounds.encoders.RC4.hexToChars(src);
var v1 = com.newgrounds.encoders.RC4.strToChars(key);
var v2 = com.newgrounds.encoders.RC4.calculate(v3, v1);
return com.newgrounds.encoders.RC4.charsToStr(v2);
};
v1.initialize = function (pwd) {
var v2 = 0;
var v3;
var v4 = pwd.length;
var v1 = 0;
while (v1 <= 255) {
com.newgrounds.encoders.RC4.mykey[v1] = pwd[v1 % v4];
com.newgrounds.encoders.RC4.sbox[v1] = v1;
++v1;
}
v1 = 0;
while (v1 <= 255) {
v2 = (v2 + com.newgrounds.encoders.RC4.sbox[v1] + com.newgrounds.encoders.RC4.mykey[v1]) % 256;
v3 = com.newgrounds.encoders.RC4.sbox[v1];
com.newgrounds.encoders.RC4.sbox[v1] = com.newgrounds.encoders.RC4.sbox[v2];
com.newgrounds.encoders.RC4.sbox[v2] = v3;
++v1;
}
};
v1.calculate = function (plaintxt, psw) {
com.newgrounds.encoders.RC4.initialize(psw);
var v1 = 0;
var v2 = 0;
var v9 = new Array();
var v7;
var v5;
var v6;
var v3 = 0;
while (v3 < plaintxt.length) {
v1 = (v1 + 1) % 256;
v2 = (v2 + com.newgrounds.encoders.RC4.sbox[v1]) % 256;
v5 = com.newgrounds.encoders.RC4.sbox[v1];
com.newgrounds.encoders.RC4.sbox[v1] = com.newgrounds.encoders.RC4.sbox[v2];
com.newgrounds.encoders.RC4.sbox[v2] = v5;
var v4 = (com.newgrounds.encoders.RC4.sbox[v1] + com.newgrounds.encoders.RC4.sbox[v2]) % 256;
v7 = com.newgrounds.encoders.RC4.sbox[v4];
v6 = plaintxt[v3] ^ v7;
v9.push(v6);
++v3;
}
return v9;
};
v1.charsToHex = function (chars) {
var v4 = new String('');
var v3 = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
var v1 = 0;
while (v1 < chars.length) {
v4 += v3[chars[v1] >> 4] + v3[chars[v1] & 15];
++v1;
}
return v4;
};
v1.hexToChars = function (hex) {
var v3 = new Array();
var v1 = (hex.substr(0, 2) == '0x') ? 2 : 0;
while (v1 < hex.length) {
v3.push(parseInt(hex.substr(v1, 2), 16));
v1 += 2;
}
return v3;
};
v1.charsToStr = function (chars) {
var v3 = new String('');
var v1 = 0;
while (v1 < chars.length) {
v3 += String.fromCharCode(chars[v1]);
++v1;
}
return v3;
};
v1.strToChars = function (str) {
var v3 = new Array();
var v1 = 0;
while (v1 < str.length) {
v3.push(str.charCodeAt(v1));
++v1;
}
return v3;
};
v1.sbox = new Array(255);
v1.mykey = new Array(255);
ASSetPropFlags(com.newgrounds.encoders.RC4.prototype, null, 1);
}
#endinitclip
}
movieClip 55 __Packages.com.newgrounds.encoders.JSON {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.JSON) {
var v1 = function () {};
com.newgrounds.encoders.JSON = v1;
var v2 = v1.prototype;
v1.encode = function (arg, noquotes) {
var v3;
var v2;
var v6;
var v1 = '';
var v4;
if (arg.isSServerVar()) {
var v8 = 'sservervariable';
} else {
var v8 = typeof arg;
}
switch (v8) {
return 'null';
case 'sservervariable':
return '?' + arg.getEncodedValue();
break;
case 'object':
if (arg) {
if (arg instanceof Array) {
v2 = 0;
while (v2 < arg.length) {
v4 = com.newgrounds.encoders.JSON.encode(arg[v2]);
if (v1) {
v1 += ',';
}
v1 += v4;
++v2;
}
return '[' + v1 + ']';
} else {
if (typeof arg.toString != 'undefined') {
for (v2 in arg) {
v4 = arg[v2];
if (typeof v4 != 'undefined' && typeof v4 != 'function') {
v4 = com.newgrounds.encoders.JSON.encode(v4);
if (v1) {
v1 += ',';
}
v1 += com.newgrounds.encoders.JSON.encode(v2) + ':' + v4;
}
}
return '{' + v1 + '}';
}
}
}
return 'null';
case 'number':
return isFinite(arg) ? String(arg) : 'null';
case 'string':
v6 = arg.length;
if (noquotes) {
var v7 = '';
} else {
var v7 = '"';
}
v1 = v7;
v2 = 0;
while (v2 < v6) {
v3 = arg.charAt(v2);
if (v3 >= ' ') {
if (v3 == '\\' || v3 == '"') {
v1 += '\\';
}
v1 += v3;
} else {
switch (v3) {
case '\b':
v1 += '\\b';
break;
case '\f':
v1 += '\\f';
break;
case '\n':
v1 += '\\n';
break;
case '\r':
v1 += '\\r';
break;
case '\t':
v1 += '\\t';
break;
default:
v3 = v3.charCodeAt();
v1 += '\\u00' + (Math.floor(v3 / 16)).toString(16) + (v3 % 16).toString(16);
}
}
v2 += 1;
}
return v1 + v7;
case 'boolean':
return String(arg);
default:
return 'null';
}
};
v1.background_encode = function (arg, callback) {
if (com.newgrounds.encoders.JSON.busy) {
trace('[Newgrounds Encoder] :: Cannot encode a new file until the previous file is completed');
return false;
} else {
if (!callback) {
trace('[Newgrounds Encoder] :: Missing a callback function, skipping encode');
return false;
}
}
com.newgrounds.encoders.JSON.busy = true;
var v2 = new Date();
com.newgrounds.encoders.JSON.start = v2.getTime();
com.newgrounds.encoders.JSON.cache = {'busy': false, 'complete': false, 'arg': arg, 'target': arg, 'parents': [], 'encoded': '', 'callback': callback, 'encode_chunk': function () {
com.newgrounds.encoders.JSON.encode_chunk();
}};
if (com.newgrounds.encoders.JSON.getType(arg) == 'object') {
com.newgrounds.encoders.JSON.cache.encoded = '{';
com.newgrounds.encoders.JSON.interval = setInterval(com.newgrounds.encoders.JSON.cache, 'encode_chunk', 25);
return true;
}
if (com.newgrounds.encoders.JSON.getType(arg) == 'array') {
com.newgrounds.encoders.JSON.cache.encoded = '[';
}
com.newgrounds.encoders.JSON.interval = setInterval(com.newgrounds.encoders.JSON.cache, 'encode_chunk', 25);
return true;
};
v1.background_decode = function (arg, callback) {
if (com.newgrounds.encoders.JSON.busy) {
trace('[Newgrounds Encoder] :: Cannot decode a new file until the previous file is completed');
return false;
} else {
if (!callback) {
trace('[Newgrounds Encoder] :: Missing a callback function, skipping decode');
return false;
}
}
com.newgrounds.encoders.JSON.busy = true;
var v1 = new Date();
com.newgrounds.encoders.JSON.start = v1.getTime();
com.newgrounds.encoders.JSON.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();
}};
com.newgrounds.encoders.JSON.interval = setInterval(com.newgrounds.encoders.JSON.cache, 'decode_chunk', 25);
return true;
};
v1.decode = function (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 += 1;
return ch;
};
var _white = function () {
while (ch) {
if (ch <= ' ') {
_next();
} else {
if (ch == '/') {
switch (_next()) {
case '/':
for (;;) {
if (!(_next() && ch != '\n' && ch != '\r')) break;
}
break;
case '*':
_next();
for (;;) {
if (ch) {
if (ch == '*') {
if (_next() == '/') {
_next();
break;
}
} else {
_next();
}
continue;
}
_error('Unterminated comment');
}
break;
default:
_error('Syntax error');
}
} else {
break;
}
}
}
};
var _string = function () {
var v4;
var v1 = '';
var v3;
var v2;
var v5 = false;
if (ch == '"') {
while (_next()) {
if (ch == '"') {
_next();
return v1;
} else {
if (ch == '\\') {
switch (_next()) {
case 'b':
v1 += '\b';
break;
case 'f':
v1 += '\f';
break;
case 'n':
v1 += '\n';
break;
case 'r':
v1 += '\r';
break;
case 't':
v1 += '\t';
break;
case 'u':
v2 = 0;
v4 = 0;
while (v4 < 4) {
v3 = parseInt(_next(), 16);
if (!isFinite(v3)) {
v5 = true;
break;
}
v2 = v2 * 16 + v3;
v4 += 1;
}
if (v5) {
v5 = false;
} else {
v1 += String.fromCharCode(v2);
break;
default:
v1 += ch;
}
}
} else {
v1 += ch;
}
}
}
}
_error('Bad string');
};
var _array = function () {
var v1 = [];
if (ch == '[') {
_next();
_white();
if (ch == ']') {
_next();
return v1;
}
while (ch) {
v1.push(_value());
_white();
if (ch == ']') {
_next();
return v1;
} else {
if (ch != ',') {
break;
}
}
_next();
_white();
}
}
_error('Bad array');
};
var _object = function () {
var v2;
var v1 = {};
if (ch == '{') {
_next();
_white();
if (ch == '}') {
_next();
return v1;
}
while (ch) {
v2 = _string();
_white();
if (ch != ':') {
break;
}
_next();
v1[v2] = _value();
_white();
if (ch == '}') {
_next();
return v1;
} else {
if (ch != ',') {
break;
}
}
_next();
_white();
}
}
_error('Bad object');
};
var _number = function () {
var v1 = '';
var v2;
if (ch == '-') {
v1 = '-';
_next();
}
for (;;) {
if (!(ch >= '0' && ch <= '9')) break;
v1 += ch;
_next();
}
if (ch == '.') {
v1 += '.';
for (;;) {
if (!(_next() && ch >= '0' && ch <= '9')) break;
v1 += ch;
}
}
v2 = 1 * v1;
if (!isFinite(v2)) {
_error('Bad number');
} else {
return v2;
}
};
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') {
_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();
};
v1.getType = function (v) {
if (v instanceof Array) {
return 'array';
} else {
return typeof v;
}
};
v1.decode_chunk = function () {
if (!com.newgrounds.encoders.JSON.cache.busy && !com.newgrounds.encoders.JSON.cache.complete) {
com.newgrounds.encoders.JSON.cache.busy = true;
var v1 = 0;
while (v1 < com.newgrounds.encoders.JSON.decode_chunks) {
com.newgrounds.encoders.JSON.chunk_decoder();
if (com.newgrounds.encoders.JSON.cache.complete) {
break;
}
++v1;
}
trace(Math.round((com.newgrounds.encoders.JSON.cache.pos / com.newgrounds.encoders.JSON.cache.arg.length) * 100) + '% decoded');
com.newgrounds.encoders.JSON.cache.busy = false;
}
if (com.newgrounds.encoders.JSON.cache.complete) {
var v2 = new Date();
com.newgrounds.encoders.JSON.busy = false;
clearInterval(com.newgrounds.encoders.JSON.interval);
com.newgrounds.encoders.JSON.cache.callback(com.newgrounds.encoders.JSON.cache.root, v2.getTime() - com.newgrounds.encoders.JSON.start);
com.newgrounds.encoders.JSON.cache.arg = '';
}
};
v1.encode_chunk = function () {
if (!com.newgrounds.encoders.JSON.cache.busy && !com.newgrounds.encoders.JSON.cache.complete) {
com.newgrounds.encoders.JSON.cache.busy = true;
var v1 = 0;
while (v1 < com.newgrounds.encoders.JSON.encode_chunks) {
com.newgrounds.encoders.JSON.chunk_encoder();
if (com.newgrounds.encoders.JSON.cache.complete) {
break;
}
++v1;
}
com.newgrounds.encoders.JSON.cache.busy = false;
}
if (com.newgrounds.encoders.JSON.cache.complete) {
var v3 = new Date();
var v2 = v3.getTime();
com.newgrounds.encoders.JSON.busy = false;
clearInterval(com.newgrounds.encoders.JSON.interval);
com.newgrounds.encoders.JSON.cache.callback(com.newgrounds.encoders.JSON.cache.encoded, v2 - com.newgrounds.encoders.JSON.start);
com.newgrounds.encoders.JSON.cache.encoded = '';
}
};
v1.chunk_decoder = function () {
function _object() {
var v1 = 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;
v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (v1 != '"') {
throw 'Malformed object key in encoded string. Keys must be wrapped in quotes ("")';
}
com.newgrounds.encoders.JSON.cache.scratch = '';
_setTargetValue({});
} else {
if (v1 == ',') {
++com.newgrounds.encoders.JSON.cache.pos;
v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (v1 != '"') {
throw 'Malformed object key in encoded string. Keys must be wrapped in quotes ("")';
}
com.newgrounds.encoders.JSON.cache.scratch = '';
} else {
if (v1 == '}') {
_useParent();
} else {
if (v1 == '"') {
++com.newgrounds.encoders.JSON.cache.pos;
v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (v1 != ':') {
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 (v1 == '\\') {
++com.newgrounds.encoders.JSON.cache.pos;
v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
}
com.newgrounds.encoders.JSON.cache.scratch += v1;
}
}
}
}
++com.newgrounds.encoders.JSON.cache.pos;
}
function _array() {
var v1 = 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;
v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
_setTargetValue([]);
if (v1 != ']') {
_addArrayKey();
} else {
_useParent();
}
return undefined;
} else {
if (v1 == ',') {
_addArrayKey();
} else {
if (v1 == ']') {
_useParent();
}
}
}
++com.newgrounds.encoders.JSON.cache.pos;
}
function _boolean() {
var v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (v1 == 't') {
_setTargetValue(true);
com.newgrounds.encoders.JSON.cache.pos += 3;
} else {
if (v1 == 'f') {
_setTargetValue(false);
com.newgrounds.encoders.JSON.cache.pos += 4;
} else {
throw 'Bool values must be true or false';
}
}
_useParent();
}
function _null() {
var v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (v1 == 'n') {
_setTargetValue(null);
com.newgrounds.encoders.JSON.cache.pos += 2;
} else {
throw 'Null values must be null';
}
_useParent();
}
function _string() {
var v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
if (!com.newgrounds.encoders.JSON.cache.mode) {
if (v1 != '"') {
throw 'Strings must be wrapped in quotes ("")';
}
com.newgrounds.encoders.JSON.cache.scratch = '';
com.newgrounds.encoders.JSON.cache.mode = 'string';
} else {
if (v1 == '"') {
_setTargetValue(com.newgrounds.encoders.JSON.cache.scratch);
_useParent();
} else {
if (v1 == '\\') {
++com.newgrounds.encoders.JSON.cache.pos;
v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
switch (v1) {
case 'n':
v1 = '\n';
break;
case 'r':
v1 = '\n';
break;
case 't':
v1 = '\t';
break;
case 'u':
v1 = '\\' + v1;
}
}
com.newgrounds.encoders.JSON.cache.scratch += v1;
}
}
++com.newgrounds.encoders.JSON.cache.pos;
}
function _number() {
var v1 = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
var v2 = '01234567890.-';
if (!com.newgrounds.encoders.JSON.cache.mode) {
com.newgrounds.encoders.JSON.cache.mode = 'number';
com.newgrounds.encoders.JSON.cache.scratch = '';
}
if (v2.indexOf(v1) < 0) {
_setTargetValue(Number(com.newgrounds.encoders.JSON.cache.scratch));
_useParent();
} else {
com.newgrounds.encoders.JSON.cache.scratch += v1;
++com.newgrounds.encoders.JSON.cache.pos;
}
}
function _setTargetValue(newval) {
var v2 = (_getParent()).obj;
var v1 = com.newgrounds.encoders.JSON.cache.parents[com.newgrounds.encoders.JSON.cache.parents.length - 1];
v2[v1] = 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 v2 = com.newgrounds.encoders.JSON.cache;
var v1 = 0;
while (v1 < com.newgrounds.encoders.JSON.cache.parents.length - 1) {
v2 = v2[com.newgrounds.encoders.JSON.cache.parents[v1]];
++v1;
}
return {'obj': v2, 'name': com.newgrounds.encoders.JSON.cache.parents[v1]};
}
function _getCurrent() {
var v2 = com.newgrounds.encoders.JSON.cache;
var v1 = 0;
while (v1 < com.newgrounds.encoders.JSON.cache.parents.length) {
v2 = v2[com.newgrounds.encoders.JSON.cache.parents[v1]];
++v1;
}
return {'obj': v2, 'name': com.newgrounds.encoders.JSON.cache.parents[v1]};
}
function _addParent(child) {
com.newgrounds.encoders.JSON.cache.parents.push(child);
}
function _addArrayKey() {
var v1 = (_getCurrent()).obj.length;
com.newgrounds.encoders.JSON.cache.parents.push(v1);
com.newgrounds.encoders.JSON.cache.mode = null;
}
if (com.newgrounds.encoders.JSON.cache.pos >= com.newgrounds.encoders.JSON.cache.arg.length) {
com.newgrounds.encoders.JSON.cache.complete = true;
return undefined;
} else {
if (com.newgrounds.encoders.JSON.cache.mode) {
('_' + com.newgrounds.encoders.JSON.cache.mode)();
} else {
var char = com.newgrounds.encoders.JSON.cache.arg.charAt(com.newgrounds.encoders.JSON.cache.pos);
switch (char) {
case '{':
_object();
break;
case '[':
_array();
break;
case '"':
_string();
break;
case 'n':
_null();
break;
case 't':
_boolean();
break;
case 'f':
_boolean();
break;
default:
_number();
}
}
}
};
v1.chunk_encoder = function () {
if (com.newgrounds.encoders.JSON.cache.complete) {
return undefined;
}
var v2 = com.newgrounds.encoders.JSON.getType(com.newgrounds.encoders.JSON.cache.target);
switch (v2) {
case 'number':
com.newgrounds.encoders.JSON.cache.encoded += com.newgrounds.encoders.JSON.cache.target;
com.newgrounds.encoders.JSON.getParent();
break;
case 'string':
com.newgrounds.encoders.JSON.cache.encoded += '"' + (com.newgrounds.encoders.JSON.cache.target.split('"')).join('\\"') + '"';
com.newgrounds.encoders.JSON.getParent();
break;
case 'boolean':
com.newgrounds.encoders.JSON.cache.encoded += (com.newgrounds.encoders.JSON.cache.target == true) ? 'true' : 'false';
com.newgrounds.encoders.JSON.getParent();
break;
case 'null':
com.newgrounds.encoders.JSON.cache.encoded += 'null';
com.newgrounds.encoders.JSON.getParent();
break;
case 'array':
if (com.newgrounds.encoders.JSON.cache.target.length < 1) {
com.newgrounds.encoders.JSON.cache.encoded += ']';
com.newgrounds.encoders.JSON.getParent();
} else {
com.newgrounds.encoders.JSON.cache.parents.push(com.newgrounds.encoders.JSON.cache.target);
com.newgrounds.encoders.JSON.cache.target = com.newgrounds.encoders.JSON.cache.target[0];
if (com.newgrounds.encoders.JSON.getType(com.newgrounds.encoders.JSON.cache.target) == 'array') {
com.newgrounds.encoders.JSON.cache.encoded += '[';
} else {
if (com.newgrounds.encoders.JSON.getType(com.newgrounds.encoders.JSON.cache.target) == 'object') {
com.newgrounds.encoders.JSON.cache.encoded += '{';
}
}
}
break;
case 'object':
for (var v1 in com.newgrounds.encoders.JSON.cache.target) {
break;
}
if (v1 === undefined) {
com.newgrounds.encoders.JSON.cache.encoded += '}';
com.newgrounds.encoders.JSON.getParent();
} else {
com.newgrounds.encoders.JSON.cache.parents.push(com.newgrounds.encoders.JSON.cache.target);
com.newgrounds.encoders.JSON.cache.target = com.newgrounds.encoders.JSON.cache.target[v1];
com.newgrounds.encoders.JSON.cache.encoded += '"' + (v1.split('"')).join('\\"') + '":';
if (com.newgrounds.encoders.JSON.getType(com.newgrounds.encoders.JSON.cache.target) == 'array') {
com.newgrounds.encoders.JSON.cache.encoded += '[';
} else {
if (com.newgrounds.encoders.JSON.getType(com.newgrounds.encoders.JSON.cache.target) == 'object') {
com.newgrounds.encoders.JSON.cache.encoded += '{';
}
}
}
break;
default:
com.newgrounds.encoders.JSON.cache.encoded += 'null';
com.newgrounds.encoders.JSON.getParent();
}
};
v1.getParent = function () {
if (com.newgrounds.encoders.JSON.cache.parents.length > 0) {
var v1 = com.newgrounds.encoders.JSON.cache.parents.pop();
if (com.newgrounds.encoders.JSON.getType(v1) == 'array') {
v1.shift();
} else {
for (var v3 in v1) {
delete v1[v3];
break;
}
}
if (com.newgrounds.encoders.JSON.getType(v1) == 'object' or com.newgrounds.encoders.JSON.getType(v1) == 'array') {
for (var v2 in v1) {
break;
}
if (v2 !== undefined) {
com.newgrounds.encoders.JSON.cache.encoded += ',';
}
}
com.newgrounds.encoders.JSON.cache.target = v1;
} else {
com.newgrounds.encoders.JSON.cache.complete = true;
}
};
v1.encode_chunks = 20000;
v1.decode_chunks = 20000;
v1.busy = false;
ASSetPropFlags(com.newgrounds.encoders.JSON.prototype, null, 1);
}
#endinitclip
}
movieClip 57 __Packages.com.newgrounds.encoders.MD5 {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.MD5) {
var v1 = function () {};
com.newgrounds.encoders.MD5 = v1;
var v2 = v1.prototype;
v1.calculate = function (src) {
return com.newgrounds.encoders.MD5.hex_md5(src);
};
v1.hex_md5 = function (src) {
return com.newgrounds.encoders.MD5.binl2hex(com.newgrounds.encoders.MD5.core_md5(com.newgrounds.encoders.MD5.str2binl(src), src.length * 8));
};
v1.core_md5 = function (x, len) {
x[len >> 5] |= 128 << len % 32;
x[(len + 64 >>> 9 << 4) + 14] = len;
var v4 = 1732584193;
var v3 = -271733879;
var v2 = -1732584194;
var v1 = 271733878;
var v5 = 0;
while (v5 < x.length) {
var v10 = v4;
var v9 = v3;
var v8 = v2;
var v7 = v1;
v4 = com.newgrounds.encoders.MD5.md5_ff(v4, v3, v2, v1, x[v5 + 0], 7, -680876936);
v1 = com.newgrounds.encoders.MD5.md5_ff(v1, v4, v3, v2, x[v5 + 1], 12, -389564586);
v2 = com.newgrounds.encoders.MD5.md5_ff(v2, v1, v4, v3, x[v5 + 2], 17, 606105819);
v3 = com.newgrounds.encoders.MD5.md5_ff(v3, v2, v1, v4, x[v5 + 3], 22, -1044525330);
v4 = com.newgrounds.encoders.MD5.md5_ff(v4, v3, v2, v1, x[v5 + 4], 7, -176418897);
v1 = com.newgrounds.encoders.MD5.md5_ff(v1, v4, v3, v2, x[v5 + 5], 12, 1200080426);
v2 = com.newgrounds.encoders.MD5.md5_ff(v2, v1, v4, v3, x[v5 + 6], 17, -1473231341);
v3 = com.newgrounds.encoders.MD5.md5_ff(v3, v2, v1, v4, x[v5 + 7], 22, -45705983);
v4 = com.newgrounds.encoders.MD5.md5_ff(v4, v3, v2, v1, x[v5 + 8], 7, 1770035416);
v1 = com.newgrounds.encoders.MD5.md5_ff(v1, v4, v3, v2, x[v5 + 9], 12, -1958414417);
v2 = com.newgrounds.encoders.MD5.md5_ff(v2, v1, v4, v3, x[v5 + 10], 17, -42063);
v3 = com.newgrounds.encoders.MD5.md5_ff(v3, v2, v1, v4, x[v5 + 11], 22, -1990404162);
v4 = com.newgrounds.encoders.MD5.md5_ff(v4, v3, v2, v1, x[v5 + 12], 7, 1804603682);
v1 = com.newgrounds.encoders.MD5.md5_ff(v1, v4, v3, v2, x[v5 + 13], 12, -40341101);
v2 = com.newgrounds.encoders.MD5.md5_ff(v2, v1, v4, v3, x[v5 + 14], 17, -1502002290);
v3 = com.newgrounds.encoders.MD5.md5_ff(v3, v2, v1, v4, x[v5 + 15], 22, 1236535329);
v4 = com.newgrounds.encoders.MD5.md5_gg(v4, v3, v2, v1, x[v5 + 1], 5, -165796510);
v1 = com.newgrounds.encoders.MD5.md5_gg(v1, v4, v3, v2, x[v5 + 6], 9, -1069501632);
v2 = com.newgrounds.encoders.MD5.md5_gg(v2, v1, v4, v3, x[v5 + 11], 14, 643717713);
v3 = com.newgrounds.encoders.MD5.md5_gg(v3, v2, v1, v4, x[v5 + 0], 20, -373897302);
v4 = com.newgrounds.encoders.MD5.md5_gg(v4, v3, v2, v1, x[v5 + 5], 5, -701558691);
v1 = com.newgrounds.encoders.MD5.md5_gg(v1, v4, v3, v2, x[v5 + 10], 9, 38016083);
v2 = com.newgrounds.encoders.MD5.md5_gg(v2, v1, v4, v3, x[v5 + 15], 14, -660478335);
v3 = com.newgrounds.encoders.MD5.md5_gg(v3, v2, v1, v4, x[v5 + 4], 20, -405537848);
v4 = com.newgrounds.encoders.MD5.md5_gg(v4, v3, v2, v1, x[v5 + 9], 5, 568446438);
v1 = com.newgrounds.encoders.MD5.md5_gg(v1, v4, v3, v2, x[v5 + 14], 9, -1019803690);
v2 = com.newgrounds.encoders.MD5.md5_gg(v2, v1, v4, v3, x[v5 + 3], 14, -187363961);
v3 = com.newgrounds.encoders.MD5.md5_gg(v3, v2, v1, v4, x[v5 + 8], 20, 1163531501);
v4 = com.newgrounds.encoders.MD5.md5_gg(v4, v3, v2, v1, x[v5 + 13], 5, -1444681467);
v1 = com.newgrounds.encoders.MD5.md5_gg(v1, v4, v3, v2, x[v5 + 2], 9, -51403784);
v2 = com.newgrounds.encoders.MD5.md5_gg(v2, v1, v4, v3, x[v5 + 7], 14, 1735328473);
v3 = com.newgrounds.encoders.MD5.md5_gg(v3, v2, v1, v4, x[v5 + 12], 20, -1926607734);
v4 = com.newgrounds.encoders.MD5.md5_hh(v4, v3, v2, v1, x[v5 + 5], 4, -378558);
v1 = com.newgrounds.encoders.MD5.md5_hh(v1, v4, v3, v2, x[v5 + 8], 11, -2022574463);
v2 = com.newgrounds.encoders.MD5.md5_hh(v2, v1, v4, v3, x[v5 + 11], 16, 1839030562);
v3 = com.newgrounds.encoders.MD5.md5_hh(v3, v2, v1, v4, x[v5 + 14], 23, -35309556);
v4 = com.newgrounds.encoders.MD5.md5_hh(v4, v3, v2, v1, x[v5 + 1], 4, -1530992060);
v1 = com.newgrounds.encoders.MD5.md5_hh(v1, v4, v3, v2, x[v5 + 4], 11, 1272893353);
v2 = com.newgrounds.encoders.MD5.md5_hh(v2, v1, v4, v3, x[v5 + 7], 16, -155497632);
v3 = com.newgrounds.encoders.MD5.md5_hh(v3, v2, v1, v4, x[v5 + 10], 23, -1094730640);
v4 = com.newgrounds.encoders.MD5.md5_hh(v4, v3, v2, v1, x[v5 + 13], 4, 681279174);
v1 = com.newgrounds.encoders.MD5.md5_hh(v1, v4, v3, v2, x[v5 + 0], 11, -358537222);
v2 = com.newgrounds.encoders.MD5.md5_hh(v2, v1, v4, v3, x[v5 + 3], 16, -722521979);
v3 = com.newgrounds.encoders.MD5.md5_hh(v3, v2, v1, v4, x[v5 + 6], 23, 76029189);
v4 = com.newgrounds.encoders.MD5.md5_hh(v4, v3, v2, v1, x[v5 + 9], 4, -640364487);
v1 = com.newgrounds.encoders.MD5.md5_hh(v1, v4, v3, v2, x[v5 + 12], 11, -421815835);
v2 = com.newgrounds.encoders.MD5.md5_hh(v2, v1, v4, v3, x[v5 + 15], 16, 530742520);
v3 = com.newgrounds.encoders.MD5.md5_hh(v3, v2, v1, v4, x[v5 + 2], 23, -995338651);
v4 = com.newgrounds.encoders.MD5.md5_ii(v4, v3, v2, v1, x[v5 + 0], 6, -198630844);
v1 = com.newgrounds.encoders.MD5.md5_ii(v1, v4, v3, v2, x[v5 + 7], 10, 1126891415);
v2 = com.newgrounds.encoders.MD5.md5_ii(v2, v1, v4, v3, x[v5 + 14], 15, -1416354905);
v3 = com.newgrounds.encoders.MD5.md5_ii(v3, v2, v1, v4, x[v5 + 5], 21, -57434055);
v4 = com.newgrounds.encoders.MD5.md5_ii(v4, v3, v2, v1, x[v5 + 12], 6, 1700485571);
v1 = com.newgrounds.encoders.MD5.md5_ii(v1, v4, v3, v2, x[v5 + 3], 10, -1894986606);
v2 = com.newgrounds.encoders.MD5.md5_ii(v2, v1, v4, v3, x[v5 + 10], 15, -1051523);
v3 = com.newgrounds.encoders.MD5.md5_ii(v3, v2, v1, v4, x[v5 + 1], 21, -2054922799);
v4 = com.newgrounds.encoders.MD5.md5_ii(v4, v3, v2, v1, x[v5 + 8], 6, 1873313359);
v1 = com.newgrounds.encoders.MD5.md5_ii(v1, v4, v3, v2, x[v5 + 15], 10, -30611744);
v2 = com.newgrounds.encoders.MD5.md5_ii(v2, v1, v4, v3, x[v5 + 6], 15, -1560198380);
v3 = com.newgrounds.encoders.MD5.md5_ii(v3, v2, v1, v4, x[v5 + 13], 21, 1309151649);
v4 = com.newgrounds.encoders.MD5.md5_ii(v4, v3, v2, v1, x[v5 + 4], 6, -145523070);
v1 = com.newgrounds.encoders.MD5.md5_ii(v1, v4, v3, v2, x[v5 + 11], 10, -1120210379);
v2 = com.newgrounds.encoders.MD5.md5_ii(v2, v1, v4, v3, x[v5 + 2], 15, 718787259);
v3 = com.newgrounds.encoders.MD5.md5_ii(v3, v2, v1, v4, x[v5 + 9], 21, -343485551);
v4 = com.newgrounds.encoders.MD5.safe_add(v4, v10);
v3 = com.newgrounds.encoders.MD5.safe_add(v3, v9);
v2 = com.newgrounds.encoders.MD5.safe_add(v2, v8);
v1 = com.newgrounds.encoders.MD5.safe_add(v1, v7);
v5 += 16;
}
return new Array(v4, v3, v2, v1);
};
v1.md5_cmn = function (q, a, b, x, s, t) {
return com.newgrounds.encoders.MD5.safe_add(com.newgrounds.encoders.MD5.bit_rol(com.newgrounds.encoders.MD5.safe_add(com.newgrounds.encoders.MD5.safe_add(a, q), com.newgrounds.encoders.MD5.safe_add(x, t)), s), b);
};
v1.md5_ff = function (a, b, c, d, x, s, t) {
return com.newgrounds.encoders.MD5.md5_cmn(b & c | ~b & d, a, b, x, s, t);
};
v1.md5_gg = function (a, b, c, d, x, s, t) {
return com.newgrounds.encoders.MD5.md5_cmn(b & d | c & ~d, a, b, x, s, t);
};
v1.md5_hh = function (a, b, c, d, x, s, t) {
return com.newgrounds.encoders.MD5.md5_cmn(b ^ c ^ d, a, b, x, s, t);
};
v1.md5_ii = function (a, b, c, d, x, s, t) {
return com.newgrounds.encoders.MD5.md5_cmn(c ^ (b | ~d), a, b, x, s, t);
};
v1.bit_rol = function (num, cnt) {
return num << cnt | num >>> 32 - cnt;
};
v1.safe_add = function (x, y) {
var v1 = (x & 65535) + (y & 65535);
var v2 = (x >> 16) + (y >> 16) + (v1 >> 16);
return v2 << 16 | v1 & 65535;
};
v1.str2binl = function (str) {
var v3 = new Array();
var v4 = 255;
var v1 = 0;
while (v1 < str.length * 8) {
v3[v1 >> 5] |= (str.charCodeAt(v1 / 8) & v4) << v1 % 32;
v1 += 8;
}
return v3;
};
v1.binl2hex = function (binarray) {
var v4 = new String('');
var v3 = new String('0123456789abcdef');
var v1 = 0;
while (v1 < binarray.length * 4) {
v4 += v3.charAt(binarray[v1 >> 2] >> (v1 % 4) * 8 + 4 & 15) + v3.charAt(binarray[v1 >> 2] >> (v1 % 4) * 8 & 15);
++v1;
}
return v4;
};
ASSetPropFlags(com.newgrounds.encoders.MD5.prototype, null, 1);
}
#endinitclip
}
movieClip 58 __Packages.com.newgrounds.components.FlashAd {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.components) {
_global.com.newgrounds.components = new Object();
}
if (!_global.com.newgrounds.components.FlashAd) {
var v1 = function () {
super();
this.background._visible = this.show_background;
if (this.show_background) {
this._x = Math.round(this._x);
this._y = Math.round(this._y);
this._xscale = 100;
this._yscale = 100;
}
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.ADS_APPROVED, this.loadAd, this);
};
com.newgrounds.components.FlashAd = v1;
com.newgrounds.components.FlashAd extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
com.newgrounds.API.attachFlashAd(this);
};
v2.loadAd = function (event, params) {
com.newgrounds.API.attachFlashAd(this);
};
v2.onUnload = function () {
this.clip.ad.unloadMovie();
this.clip.ad.removeMovieClip();
this.clip.removeMovieClip();
this.mask.removeMovieClip();
this.background.removeMovieClip();
com.newgrounds.API.removeEventListener(com.newgrounds.APIEvent.ADS_APPROVED, this);
};
ASSetPropFlags(com.newgrounds.components.FlashAd.prototype, null, 1);
}
#endinitclip
}
movieClip 72 __Packages.com.newgrounds.components.APIConnector {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.components) {
_global.com.newgrounds.components = new Object();
}
if (!_global.com.newgrounds.components.APIConnector) {
var v1 = function () {
super();
this._x = Math.round(this._x);
this._y = Math.round(this._y);
if (this.fake_session and com.newgrounds.API.getHost() == 'localhost') {
com.newgrounds.API.setFakeSession(true);
}
if (this.api_id && !com.newgrounds.API.isConnected()) {
this.nextFrame();
this._visible = false;
this.setGotoFrame('connecting');
if (this.error_screens) {
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.NEW_VERSION_AVAILABLE, this.onNewVersion, this);
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.HOST_BLOCKED, this.onBadHost, this);
}
if (this.medal_popups) {
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.UNLOCK_MEDAL, this.doUnlock, this);
}
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.API_CONNECTED, this.onConnected, this);
if (com.newgrounds.API.isPublishedHost()) {
this.debug = false;
}
if (this.version) {
com.newgrounds.API.setVersion(this.version);
}
if (!com.newgrounds.API.hasUserSession()) {
var v3 = com.newgrounds.API.loadLocal('api_connector_data');
if (v3) {
this.local_data = v3;
} else {
this.local_data = {'medals_unlocked': new Array()};
}
}
com.newgrounds.API.setPreload(true);
com.newgrounds.API.connect(this.api_id, this.encryption_key, this.debug);
} else {
if (this.api_id && com.newgrounds.API.isConnected()) {
this._visible = false;
this.setGotoFrame('done');
}
}
this.stop();
};
com.newgrounds.components.APIConnector = v1;
com.newgrounds.components.APIConnector extends MovieClip;
var v2 = v1.prototype;
v2.doUnlock = function (e) {
var v5 = _root.attachMovie('NewgroundsAPIAsset_Medal_Popup', 'medal_pop_' + e.data.medal.getID(), _root.getNextHighestDepth());
if (e.data.x != undefined) {
v5._x = e.data.x + 254;
} else {
v5._x = Stage.width;
}
if (e.data.x != undefined) {
v5._y = e.data.y + 73;
} else {
v5._y = Stage.height;
}
v5.medal = e.data.medal;
var v3 = com.newgrounds.API.getMedals();
var v2 = 0;
while (v2 < v3.length) {
if (v3[v2].getID() != e.data.medal.getID() && _root['medal_pop_' + v3[v2].getID()]) {
_root['medal_pop_' + v3[v2].getID()]._y -= 70;
}
++v2;
}
};
v2.onLoginError = function () {
var v2 = _root.attachMovie('Asset_Login_Warning', 'Asset_Login_Warning', _root.getNextHighestDepth());
};
v2.onConnectionError = function () {
var v3 = _root.attachMovie('Asset_Connection_Error', 'Asset_Connection_Error', _root.getNextHighestDepth());
this.setGotoFrame('done');
};
v2.onConnected = function (event, params) {
if (event.success) {
this.setGotoFrame('connected');
if (this.error_screens && com.newgrounds.API.isPublishedHost() && com.newgrounds.API.hasPublisher() && !com.newgrounds.API.hasUserSession()) {
this.onLoginError();
}
} else {
if (this.error_screens) {
this.onConnectionError();
}
}
};
v2.onNewVersion = function () {
var v2 = _root.attachMovie('NewgroundsAsset_New_Version_Available', 'NewgroundsAsset_New_Version_Available', _root.getNextHighestDepth());
v2.official_version_url = com.newgrounds.API.getOfficialURL();
};
v2.onBadHost = function () {
var v2 = _root.attachMovie('NewgroundsAsset_Illegal_Host', 'NewgroundsAsset_Illegal_Host', _root.getNextHighestDepth());
v2.official_version_url = com.newgrounds.API.getOfficialURL();
};
v2.setGotoFrame = function (frame) {
if (this.goto_frame == null) {
this.goto_frame = frame;
this.gotoframe_interval = setInterval(this, 'gotoFrameIfLoaded', 50);
}
};
v2.gotoFrameIfLoaded = function () {
if (this.goto_frame != null && this._framesloaded == this._totalframes) {
this._visible = true;
this.gotoAndStop(this.goto_frame);
this.goto_frame = null;
clearInterval(this.gotoframe_interval);
}
};
v2.goto_frame = null;
ASSetPropFlags(com.newgrounds.components.APIConnector.prototype, null, 1);
}
#endinitclip
}
frame 2 {
function heartgen() {
gen = random(150);
++gentime;
numHearts = numberHearts - (numberHearts - 5) * (you.hlevel - 2) / 6;
if (numHearts < 5) {
numHearts = 5;
}
if (you.hlevel >= 11) {
numHearts = 50;
}
if (onmenu == true) {
numHearts = 50;
}
if (gen / gentime < 15 && Heartnumber < numHearts) {
++Heartcount;
++Heartnumber;
gentime = 1;
var v2 = 0;
while (v2 < 70) {
if (heartExist[v2] == false) {
count = v2;
cnt = String(v2);
}
++v2;
}
heartname = 'heart' + cnt;
attachMovie('Heart', heartname, cnt);
heartExist[count] = true;
loc = random(4);
if (loc == 0) {
_root[heartname]._x = -100;
} else {
if (loc == 1) {
_root[heartname]._x = stagew + 100;
} else {
if (loc == 2) {
_root[heartname]._y = -100;
} else {
_root[heartname]._y = stageh + 100;
}
}
}
}
}
function hlevel(hname) {
heartscal = _root[hname].scaleis;
if (heartscal < 31.5) {
if (_root[hname].thump == false) {
return 1;
} else {
return 2;
}
} else {
if (heartscal < 44) {
if (_root[hname].thump == false) {
return 2;
} else {
return 3;
}
} else {
thelevel = Math.round(heartscal / 25);
if (_root[hname].thump == false) {
return thelevel;
} else {
return thelevel + 1;
}
}
}
}
function heartres(hname) {
heartscal = _root[hname].hlevel;
if (_root[hname].hlevel < 2) {
return '50Heart';
} else {
if (_root[hname].hlevel < 3) {
return '38Heart';
} else {
if (_root[hname].hlevel < 4) {
return '50Heart';
} else {
return '300Heart';
}
}
}
}
function heartscale(hname) {
heartscal = _root[hname].hlevel;
if (heartscal == 1) {
return 50;
} else {
if (heartscal == 2) {
return 100;
} else {
if (heartscal == 3) {
return 100;
} else {
thescale = (heartscal - 1) * 8.3333333333333;
return thescale;
}
}
}
}
function hitscale(hname) {
heartscal = _root[hname].hlevel;
if (heartscal == 1) {
return 50;
} else {
if (heartscal == 2) {
return 76;
} else {
thescale = (heartscal - 1) * 50;
return thescale;
}
}
}
function youcreate() {
you.hlevel = hlevel('you');
hname = heartres('you');
if (hname != curhname) {
you.heartface.removeMovieClip();
you.attachMovie([hname + '4'], 'heartface', 6950);
curhname = hname;
}
you.heartface._xscale = heartscale('you');
you.heartface._yscale = heartscale('you');
you.hit._xscale = hitscale('you');
you.hit._yscale = hitscale('you');
}
function youbuttons() {
if ((Key.isDown(39) || Key.isDown(68)) && (Key.isDown(37) || Key.isDown(65))) {
you.RightPush *= you.decel;
you.LeftPush *= you.decel;
} else {
if (Key.isDown(39) || Key.isDown(68)) {
you.RightPush += you.accel;
you.LeftPush *= you.decel;
} else {
if (Key.isDown(37) || Key.isDown(65)) {
you.LeftPush += -you.accel;
you.RightPush *= you.decel;
} else {
you.RightPush *= you.decel;
you.LeftPush *= you.decel;
}
}
}
if ((Key.isDown(38) || Key.isDown(87)) && (Key.isDown(40) || Key.isDown(83))) {
you.UpPush *= you.decel;
you.DownPush *= you.decel;
} else {
if (Key.isDown(38) || Key.isDown(87)) {
you.UpPush += -you.accel;
you.DownPush *= you.decel;
} else {
if (Key.isDown(40) || Key.isDown(83)) {
you.DownPush += you.accel;
you.UpPush *= you.decel;
} else {
you.UpPush *= you.decel;
you.DownPush *= you.decel;
}
}
}
}
function wallstop() {
if (you._x < 50) {
you.LeftPush = 0;
}
if (you._x > stagew - 50) {
you.RightPush = 0;
}
if (you._y < 50) {
you.UpPush = 0;
}
if (you._y > stageh - 50) {
you.DownPush = 0;
}
}
function youmove() {
xpush = you.RightPush + you.LeftPush;
ypush = you.UpPush + you.DownPush;
speed = Math.sqrt(xpush * xpush + ypush * ypush);
if (speed > you.speed) {
xpush = xpush * you.speed / speed;
ypush = ypush * you.speed / speed;
}
if (Math.abs(you.RightPush) > you.speed) {
you.RightPush = you.speed;
}
if (Math.abs(you.LeftPush) > you.speed) {
you.LeftPush = -you.speed;
}
if (Math.abs(you.UpPush) > you.speed) {
you.UpPush = -you.speed;
}
if (Math.abs(you.DownPush) > you.speed) {
you.DownPush = you.speed;
}
you._x += xpush;
you._y += ypush;
if (Math.abs(xpush) < 0.001 && Math.abs(ypush) < 0.001 && difficulty > 0) {
++irontimer;
} else {
irontimer = 0;
}
if (irontimer > 450 && iron == false) {
com.newgrounds.API.unlockMedal('Iron Constitution', 300, 0);
iron = true;
so.data.iron = true;
}
}
function thump() {
if (you.thump == true) {
++you.thumpcount;
if (you.thumpcount > 3) {
you.thumpcount = 0;
you.thump = false;
}
}
}
function snowtrails() {
snowlenx = you._x - snowx;
snowleny = you._y + you.hit._height / 2 - snowy;
snowlen = Math.sqrt(snowlenx * snowlenx + snowleny * snowleny);
if (snowlen > 35 - speed) {
var v2 = 0;
while (v2 < 30) {
if (snowExist[v2] == false) {
count = v2;
snowcnt = String(v2);
}
++v2;
}
snownumber = 'zz' + snowcnt;
snowname = 'snow' + snownumber;
snowdepth = '-' + snowcnt;
_root.attachMovie('snowtrail', snowname, snowdepth);
snowExist[snowcnt] = true;
_root[snowname]._x = you._x;
_root[snowname]._y = you._y + you.hit._height / 2;
_root[snowname]._rotation = Math.atan2(snowleny, snowlenx) * 180 / Math.PI;
snowx = you._x;
snowy = you._y + you.hit._height / 2;
}
}
function difficultylevel() {
if (difficulty == 0) {
smallHeart = 5;
bigHeart = heartGrad - smallHeart;
scoreval = 3;
} else {
if (difficulty == 1) {
smallHeart = 4;
bigHeart = heartGrad - smallHeart;
scoreval = 2.5;
} else {
if (difficulty == 2) {
smallHeart = 3;
bigHeart = heartGrad - smallHeart;
scoreval = 2;
}
}
}
}
}
frame 2 {
stop();
gotoAndStop('intromovie');
}
frame 2 {
var so = SharedObject.getLocal('bqhghs');
if (so.data.score == null) {
so.data.score = 0;
highscore = 0;
} else {
highscore = so.data.score;
}
if (so.data.ul == null) {
var ulArray = new Array(false, false, false, false, false, false, false, false, false, false, false, false, false);
so.data.ul = ulArray;
} else {
var ulArray = so.data.ul;
}
if (so.data.ul == null) {
var ulArray = new Array(false, false, false, false, false, false, false, false, false, false, false, false, false);
so.data.ul = ulArray;
} else {
var ulArray = so.data.ul;
}
if (so.data.ultimate == null) {
so.data.ultimate = false;
so.data.frozen = false;
so.data.unanimous = false;
so.data.iron = false;
so.data.vegetable = false;
so.data.valentine = false;
ultimate = false;
frozen = false;
unanimous = false;
iron = false;
vegetable = false;
valentine = false;
} else {
ultimate = so.data.ultimate;
frozen = so.data.frozen;
unanimous = so.data.unanimous;
iron = so.data.iron;
vegetable = so.data.vegetable;
valentine = so.data.valentines;
}
Score = 0;
music = true;
restart = false;
paws = false;
onmenu = true;
starty = true;
winning = false;
continu = false;
toohigh = false;
numberHearts = 25;
smallHeart = 3;
heartGrad = 6;
bigHeart = heartGrad - smallHeart;
heartSpeed = 1;
scoreval = 2;
stagew = 825;
stageh = 600;
var heartExist = new Array(false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false);
Heartnumber = 0;
Heartcount = 0;
gentime = 150;
heartsound = 0;
difficulty = 1;
}
movieClip 152 fadeout {
frame 25 {
stop();
_root.you.removeMovieClip();
_root.onmenu = true;
_root.chars.removeMovieClip();
_root.Framey.removeMovieClip();
_root.gotoAndStop('youwin');
this.removeMovieClip();
}
}
movieClip 153 fading {
frame 25 {
stop();
_root.starty = false;
this.removeMovieClip();
}
}
button 160 {
on (release) {
stop();
_root.onmenu = true;
_root.gameover = true;
_root.starty = true;
_root.gotoAndStop('menu');
_root.winning.removeMovieClip();
}
}
movieClip 161 winning {
frame 1 {
_root.ulArray[12] = true;
_root.so.data.ul = _root.ulArray;
if (_root.ultimate == false) {
com.newgrounds.API.unlockMedal('Ultimate Completion', 300, 0);
_root.ultimate = true;
_root.so.data.ultimate = true;
}
exity.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
gotoAndPlay('exits');
};
}
frame 25 {
stop();
cont.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
play();
};
}
frame 47 {
stop();
easy.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
_root.difficulty = 0;
play();
};
normal.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
_root.difficulty = 1;
play();
};
hard.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
_root.difficulty = 2;
play();
};
}
frame 59 {
stop();
_root.starty = true;
_root.gameover = false;
_root.continu = true;
_root.restart = true;
_root.winning = false;
_root.paws = false;
_root.onmenu = false;
_root.attachMovie('fading', 'fading', 107);
_root.gotoAndPlay('play');
this.removeMovieClip();
}
frame 70 {
stop();
_root.gameover = true;
_root.winning = false;
_root.paws = false;
_root.onmenu = true;
_root.attachMovie('fading', 'fading', 107);
_root.gotoAndStop('menu');
this.removeMovieClip();
}
}
button 164 {
on (release) {
if (_root.valentine == false) {
com.newgrounds.API.unlockMedal('Somebody\'s got a Valentine!', 300, 0);
_root.valentine = true;
_root.so.data.valentine = true;
}
_root.unlock.cards.getittome();
}
}
movieClip 191 {
frame 1 {
function getittome() {
_root.unlock.cards.fileRef.download(_root.unlock.cards.loc, _root.unlock.cards.defaultname);
}
stop();
var fileRef = new flash.net.FileReference();
var loc = 'http://www.barfquestion.com/animatedgifs/valentinesday/vday08_monkey.gif';
var defaultname = 'monkeysdontgethearts.gif';
}
frame 2 {
}
frame 2 {
loc = 'http://farm6.static.flickr.com/5292/5427414474_579dfcd658_o.jpg';
defaultname = 'ValentinesDayCard_01.jpg';
}
frame 3 {
loc = 'http://farm6.static.flickr.com/5053/5426808833_55d5332744_o.jpg';
defaultname = 'ValentinesDayCard_02.jpg';
}
frame 4 {
loc = 'http://farm6.static.flickr.com/5296/5427414600_e5d2f55683_o.jpg';
defaultname = 'ValentinesDayCard_03.jpg';
}
frame 5 {
loc = 'http://farm6.static.flickr.com/5219/5427414626_e8bee8e186_o.jpg';
defaultname = 'ValentinesDayCard_04.jpg';
}
frame 6 {
loc = 'http://farm6.static.flickr.com/5211/5426809285_b5bc655d2f_o.jpg';
defaultname = 'ValentinesDayCard_05.jpg';
}
frame 7 {
loc = 'http://farm6.static.flickr.com/5260/5427414992_01c28bfd37_o.png';
defaultname = 'ValentinesDayCard_06.png';
}
frame 8 {
loc = 'http://farm6.static.flickr.com/5017/5427414776_fe1c7ed6eb_o.jpg';
defaultname = 'ValentinesDayCard_07.jpg';
}
frame 9 {
loc = 'http://farm6.static.flickr.com/5099/5426809021_05127ff744_o.jpg';
defaultname = 'ValentinesDayCard_08.jpg';
}
frame 10 {
loc = 'http://farm6.static.flickr.com/5260/5426809091_9e747b78ea_o.jpg';
defaultname = 'ValentinesDayCard_09.jpg';
}
frame 11 {
loc = 'http://farm6.static.flickr.com/5252/5426809185_e614dc6035_o.jpg';
defaultname = 'ValentinesDayCard_10.jpg';
}
frame 12 {
loc = 'http://farm6.static.flickr.com/5099/5426809223_f135fd14e5_o.jpg';
defaultname = 'ValentinesDayCard_11.jpg';
}
frame 13 {
loc = 'http://farm6.static.flickr.com/5179/5426809261_680d6d5164_o.jpg';
defaultname = 'ValentinesDayCard_12.jpg';
}
frame 14 {
loc = 'http://farm6.static.flickr.com/5216/5427415030_bcaff4498f_o.jpg';
defaultname = 'ValentinesDayCard_13.jpg';
}
}
movieClip 233 unlock {
frame 1 {
stop();
if (_root.ulArray[0] == false) {
barfquestions._visible = false;
}
if (_root.ulArray[1] == false) {
kitten._visible = false;
}
if (_root.ulArray[2] == false) {
star._visible = false;
}
if (_root.ulArray[3] == false) {
heart._visible = false;
}
if (_root.ulArray[4] == false) {
cow._visible = false;
}
if (_root.ulArray[5] == false) {
firp._visible = false;
}
if (_root.ulArray[6] == false) {
mallow._visible = false;
}
if (_root.ulArray[7] == false) {
zombie._visible = false;
}
if (_root.ulArray[8] == false) {
squoog._visible = false;
}
if (_root.ulArray[9] == false) {
monk._visible = false;
}
if (_root.ulArray[10] == false) {
volt._visible = false;
}
if (_root.ulArray[11] == false) {
sprockguy._visible = false;
}
if (_root.ulArray[12] == false) {
completey._visible = false;
}
barfquestions.onRelease = function () {
cards.gotoAndStop('barfquestions');
};
kitten.onRelease = function () {
cards.gotoAndStop('kitten');
};
star.onRelease = function () {
cards.gotoAndStop('star');
};
heart.onRelease = function () {
cards.gotoAndStop('heart');
};
cow.onRelease = function () {
cards.gotoAndStop('cow');
};
firp.onRelease = function () {
cards.gotoAndStop('firp');
};
mallow.onRelease = function () {
cards.gotoAndStop('marshmallow');
};
zombie.onRelease = function () {
cards.gotoAndStop('zombie');
};
squoog.onRelease = function () {
cards.gotoAndStop('alien');
};
monk.onRelease = function () {
cards.gotoAndStop('monkey');
};
volt.onRelease = function () {
cards.gotoAndStop('volt');
};
sprockguy.onRelease = function () {
cards.gotoAndStop('sprocket');
};
completey.onRelease = function () {
cards.gotoAndStop('completion');
};
exitbtn.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
_root.gotoAndStop('menu');
};
}
}
button 234 {
on (release) {
_root.onmenu = true;
_root.gameover = true;
_root.you.removeMovieClip();
_root.continu = false;
_root.gotoAndStop('menu');
}
}
movieClip 237 goaway {
}
movieClip 258 {
}
movieClip 263 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 268 {
frame 1 {
stop();
}
frame 2 {
stop();
}
}
movieClip 271 Framey {
frame 1 {
function numberstop(varname, mcname) {
number = this[varname];
if (number == 0) {
this[mcname].gotoAndStop('zero');
} else {
if (number == 1) {
this[mcname].gotoAndStop('one');
} else {
if (number == 2) {
this[mcname].gotoAndStop('two');
} else {
if (number == 3) {
this[mcname].gotoAndStop('three');
} else {
if (number == 4) {
this[mcname].gotoAndStop('four');
} else {
if (number == 5) {
this[mcname].gotoAndStop('five');
} else {
if (number == 6) {
this[mcname].gotoAndStop('six');
} else {
if (number == 7) {
this[mcname].gotoAndStop('seven');
} else {
if (number == 8) {
this[mcname].gotoAndStop('eight');
} else {
if (number == 9) {
this[mcname].gotoAndStop('nine');
} else {
this[mcname].gotoAndStop('null');
}
}
}
}
}
}
}
}
}
}
}
onEnterFrame = function () {
var v2 = String(_root.Score);
sc1 = v2.charAt(0);
sc2 = v2.charAt(1);
sc3 = v2.charAt(2);
sc4 = v2.charAt(3);
sc5 = v2.charAt(4);
highscore = String(_root.highscore);
hsc1 = highscore.charAt(0);
hsc2 = highscore.charAt(1);
hsc3 = highscore.charAt(2);
hsc4 = highscore.charAt(3);
hsc5 = highscore.charAt(4);
numberstop('sc1', 's1');
numberstop('sc2', 's2');
numberstop('sc3', 's3');
numberstop('sc4', 's4');
numberstop('sc5', 's5');
numberstop('hsc1', 'hs1');
numberstop('hsc2', 'hs2');
numberstop('hsc3', 'hs3');
numberstop('hsc4', 'hs4');
numberstop('hsc5', 'hs5');
};
}
frame 1 {
exist = true;
exitbtn._alpha = 0;
audiobutton._alpha = 0;
pausebutton._alpha = 0;
exitbtn.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
_root.onmenu = true;
_root.gameover = true;
_root.you.removeMovieClip();
_root.gotoAndStop('menu');
this.removeMovieClip();
};
audiobutton.onRelease = function () {
if (_root.music == true) {
_root.music = false;
_root.msc.stop();
} else {
_root.music = true;
_root.msc.start(0, 1000000);
}
};
pausebutton.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
if (_root.paws == true) {
_root.paws = false;
} else {
_root.paws = true;
}
};
}
}
movieClip 301 300Heart1 {
}
movieClip 306 MainMenu {
frame 1 {
stop();
button3._alpha = 0;
playbutton.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
gotoAndPlay('difficulty');
};
button3.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
_root.gotoAndStop('settings');
};
infobutton.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
_root.gotoAndStop('info');
};
extrabutton.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
_root.gotoAndStop('extras');
};
bqbutton.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
getURL('http://www.barfquestion.com/main7.html', '_blank');
};
watchbutton.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
getURL('http://www.barfquestion.com/valentinesday.html', '_blank');
};
}
frame 8 {
stop();
stop();
easy.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
_root.difficulty = 0;
play();
};
normal.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
_root.difficulty = 1;
play();
};
hard.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
_root.difficulty = 2;
play();
};
}
frame 14 {
stop();
_root.restart = true;
_root.gotoAndPlay('play');
_root.MainMenu.removeMovieClip();
}
}
button 307 {
on (release) {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
getURL('http://www.incompetech.com', '_blank');
}
}
movieClip 310 infopage {
frame 1 {
exitbtn._alpha = 0;
exitbtn.onRelease = function () {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
_root.gotoAndStop('menu');
};
}
}
movieClip 339 Thoughts {
frame 1 {
stop();
}
}
movieClip 349 {
}
button 350 {
on (release) {
_root.restart = true;
_root.gotoAndPlay('play');
_root.gameover = false;
_root.Score = 0;
_root.chars.gotoAndStop('none');
}
}
movieClip 351 {
frame 1 {
if (_root.music == true) {
_root.psnd.start(0, 1);
}
}
frame 26 {
_root.chars.gameover = _root.gameover;
if (_root.chars.gameover == false) {
frame = _root.chars.thought;
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
if (_root.music == true) {
_root.impsnd.start(0, 1);
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
}
}
frame 28 {
if (_root.chars.gameover == false) {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
_root.bq1 = true;
if (_root.bq2 == true) {
_root.ulArray[0] = true;
_root.so.data.ul = _root.ulArray;
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
stop();
}
}
frame 107 {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
}
}
frame 130 {
stop();
_root.chars.charup = false;
_root.chars.gotoAndStop('none');
}
}
movieClip 354 {
frame 1 {
if (_root.music == true) {
_root.psnd.start(0, 1);
}
}
frame 25 {
_root.chars.gameover = _root.gameover;
if (_root.chars.gameover == false) {
frame = _root.chars.thought;
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
if (_root.music == true) {
_root.impsnd.start(0, 1);
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
}
}
frame 27 {
if (_root.chars.gameover == false) {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
_root.ulArray[4] = true;
_root.so.data.ul = _root.ulArray;
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
stop();
}
}
frame 106 {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
}
}
frame 127 {
stop();
_root.chars.charup = false;
_root.chars.gotoAndStop('none');
}
}
movieClip 357 {
frame 1 {
if (_root.music == true) {
_root.psnd.start(0, 1);
}
}
frame 26 {
_root.chars.gameover = _root.gameover;
if (_root.chars.gameover == false) {
frame = _root.chars.thought;
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
if (_root.music == true) {
_root.impsnd.start(0, 1);
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
}
}
frame 28 {
if (_root.chars.gameover == false) {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
_root.ulArray[5] = true;
_root.so.data.ul = _root.ulArray;
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
stop();
}
}
frame 107 {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
}
}
frame 130 {
stop();
_root.chars.charup = false;
_root.chars.gotoAndStop('none');
}
}
movieClip 360 {
frame 1 {
if (_root.music == true) {
_root.psnd.start(0, 1);
}
}
frame 26 {
_root.chars.gameover = _root.gameover;
if (_root.chars.gameover == false) {
frame = _root.chars.thought;
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
if (_root.music == true) {
_root.impsnd.start(0, 1);
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
}
}
frame 28 {
if (_root.chars.gameover == false) {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
_root.ulArray[1] = true;
_root.so.data.ul = _root.ulArray;
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
stop();
}
}
frame 107 {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
}
gameover._visible = false;
}
frame 130 {
stop();
_root.chars.charup = false;
_root.chars.gotoAndStop('none');
}
}
movieClip 363 {
frame 1 {
if (_root.music == true) {
_root.psnd.start(0, 1);
}
}
frame 26 {
_root.chars.gameover = _root.gameover;
if (_root.chars.gameover == false) {
frame = _root.chars.thought;
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
if (_root.music == true) {
_root.impsnd.start(0, 1);
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
}
}
frame 28 {
if (_root.chars.gameover == false) {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
_root.ulArray[3] = true;
_root.so.data.ul = _root.ulArray;
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
stop();
}
}
frame 107 {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
}
gameover._visible = false;
}
frame 130 {
stop();
_root.chars.charup = false;
_root.chars.gotoAndStop('none');
}
}
movieClip 366 {
frame 1 {
if (_root.music == true) {
_root.psnd.start(0, 1);
}
}
frame 26 {
_root.chars.gameover = _root.gameover;
if (_root.chars.gameover == false) {
frame = _root.chars.thought;
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
if (_root.music == true) {
_root.impsnd.start(0, 1);
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
}
}
frame 28 {
if (_root.chars.gameover == false) {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
_root.bq2 = true;
if (_root.bq1 == true) {
_root.ulArray[0] = true;
_root.so.data.ul = _root.ulArray;
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
stop();
}
}
frame 107 {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
}
}
frame 130 {
stop();
_root.chars.charup = false;
_root.chars.gotoAndStop('none');
}
}
movieClip 369 {
frame 1 {
if (_root.music == true) {
_root.psnd.start(0, 1);
}
}
frame 26 {
_root.chars.gameover = _root.gameover;
if (_root.chars.gameover == false) {
frame = _root.chars.thought;
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
if (_root.music == true) {
_root.impsnd.start(0, 1);
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
}
}
frame 28 {
if (_root.chars.gameover == false) {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
_root.ulArray[6] = true;
_root.so.data.ul = _root.ulArray;
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
stop();
}
}
frame 107 {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
}
}
frame 130 {
stop();
_root.chars.charup = false;
_root.chars.gotoAndStop('none');
}
}
movieClip 372 {
frame 1 {
if (_root.music == true) {
_root.psnd.start(0, 1);
}
}
frame 26 {
_root.chars.gameover = _root.gameover;
if (_root.chars.gameover == false) {
frame = _root.chars.thought;
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
if (_root.music == true) {
_root.impsnd.start(0, 1);
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
}
}
frame 28 {
if (_root.chars.gameover == false) {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
_root.ulArray[9] = true;
_root.so.data.ul = _root.ulArray;
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
stop();
}
}
frame 107 {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
}
}
frame 128 {
stop();
_root.chars.charup = false;
_root.chars.gotoAndStop('none');
}
}
movieClip 375 {
frame 1 {
if (_root.music == true) {
_root.psnd.start(0, 1);
}
}
frame 26 {
_root.chars.gameover = _root.gameover;
if (_root.chars.gameover == false) {
frame = _root.chars.thought;
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
if (_root.music == true) {
_root.impsnd.start(0, 1);
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
}
}
frame 28 {
if (_root.chars.gameover == false) {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
_root.ulArray[11] = true;
_root.so.data.ul = _root.ulArray;
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
stop();
}
}
frame 107 {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
}
}
frame 128 {
stop();
_root.chars.charup = false;
_root.chars.gotoAndStop('none');
}
}
movieClip 378 {
frame 1 {
if (_root.music == true) {
_root.psnd.start(0, 1);
}
}
frame 26 {
_root.chars.gameover = _root.gameover;
if (_root.chars.gameover == false) {
frame = _root.chars.thought;
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
if (_root.music == true) {
_root.impsnd.start(0, 1);
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
}
}
frame 28 {
if (_root.chars.gameover == false) {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
_root.ulArray[8] = true;
_root.so.data.ul = _root.ulArray;
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
stop();
}
}
frame 107 {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
}
}
frame 130 {
stop();
_root.chars.charup = false;
_root.chars.gotoAndStop('none');
}
}
movieClip 381 {
frame 1 {
if (_root.music == true) {
_root.psnd.start(0, 1);
}
}
frame 26 {
_root.chars.gameover = _root.gameover;
if (_root.chars.gameover == false) {
frame = _root.chars.thought;
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
if (_root.music == true) {
_root.impsnd.start(0, 1);
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
}
}
frame 28 {
if (_root.chars.gameover == false) {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
_root.ulArray[2] = true;
_root.so.data.ul = _root.ulArray;
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
stop();
}
}
frame 107 {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
}
}
frame 130 {
stop();
_root.chars.charup = false;
_root.chars.gotoAndStop('none');
}
}
movieClip 384 {
frame 1 {
if (_root.music == true) {
_root.psnd.start(0, 1);
}
}
frame 26 {
_root.chars.gameover = _root.gameover;
if (_root.chars.gameover == false) {
frame = _root.chars.thought;
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
if (_root.music == true) {
_root.impsnd.start(0, 1);
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
}
}
frame 28 {
if (_root.chars.gameover == false) {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
_root.ulArray[10] = true;
_root.so.data.ul = _root.ulArray;
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
stop();
}
}
frame 107 {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
}
}
frame 130 {
stop();
_root.chars.charup = false;
_root.chars.gotoAndStop('none');
}
}
movieClip 387 {
frame 1 {
if (_root.music == true) {
_root.psnd.start(0, 1);
}
}
frame 26 {
_root.chars.gameover = _root.gameover;
if (_root.chars.gameover == false) {
frame = _root.chars.thought;
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
if (_root.music == true) {
_root.impsnd.start(0, 1);
}
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
}
}
frame 28 {
if (_root.chars.gameover == false) {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
_root.ulArray[11] = true;
_root.so.data.ul = _root.ulArray;
}
gover._visible = false;
} else {
bubble._visible = false;
tho._visible = false;
stop();
}
}
frame 107 {
if (_root.chars.btho == false) {
bubble.gotoAndStop(frame);
tho._visible = false;
} else {
tho.gotoAndStop(frame);
bubble._visible = false;
}
}
frame 130 {
stop();
_root.chars.charup = false;
_root.chars.gotoAndStop('none');
}
}
movieClip 388 chars {
frame 1 {
stop();
}
frame 1 {
function character() {
cha = random(13);
if (cha == lastone) {
cha = random(13);
}
if (cha == lastone) {
cha = random(13);
}
if (cha == lastone) {
cha = random(13);
}
if (cha == lastone) {
cha = random(13);
}
if (cha == lastone) {
cha = random(13);
}
if (cha == 0) {
lastone = 0;
return 'fem';
} else {
if (cha == 1) {
lastone = 1;
return 'male';
} else {
if (cha == 2) {
lastone = 2;
return 'monk';
} else {
if (cha == 3) {
lastone = 3;
return 'zomb';
} else {
if (cha == 4) {
lastone = 4;
return 'cow';
} else {
if (cha == 5) {
lastone = 5;
return 'firp';
} else {
if (cha == 6) {
lastone = 6;
return 'mallow';
} else {
if (cha == 7) {
lastone = 7;
return 'kitty';
} else {
if (cha == 8) {
lastone = 8;
return 'love';
} else {
if (cha == 9) {
lastone = 9;
return 'sprock';
} else {
if (cha == 10) {
lastone = 10;
return 'squoo';
} else {
if (cha == 11) {
lastone = 11;
return 'star';
} else {
if (cha == 12) {
lastone = 12;
return 'volt';
} else {
lastone = 1;
return 'male';
}
}
}
}
}
}
}
}
}
}
}
}
}
}
function thoughts() {
if (_root.Score - curscore < 12) {
btho = false;
return 'eh';
} else {
if (_root.Score - curscore < 24) {
btho = false;
return 'yay';
} else {
if (_root.Score - curscore < 46) {
btho = false;
return 'awesome';
} else {
btho = true;
return char;
}
}
}
}
exist = true;
timer = 0;
curscore = _root.Score;
btho = true;
charup = false;
gameover = _root.gameover;
lastone = 13;
onEnterFrame = function () {
if (_root.gameover == false) {
++timer;
if (timer > 900) {
gameover = _root.gameover;
char = character();
thought = thoughts();
timer = 0;
charup = true;
curscore = _root.Score;
gotoAndStop(char);
}
} else {
if (charup == false) {
gameover = _root.gameover;
char = character();
charup = true;
timer = 0;
curscore = 0;
gotoAndStop(char);
}
}
if (_root.ulArray[0] == true && _root.ulArray[1] == true && _root.ulArray[2] == true && _root.ulArray[3] == true && _root.ulArray[4] == true && _root.ulArray[5] == true && _root.ulArray[6] == true && _root.ulArray[7] == true && _root.ulArray[8] == true && _root.ulArray[9] == true && _root.ulArray[10] == true && _root.ulArray[11] == true) {
if (_root.unanimous == false) {
com.newgrounds.API.unlockMedal('Unanimous Approval', 300, 0);
_root.unanimous = true;
_root.so.data.unanimous = true;
}
}
};
}
}
movieClip 391 {
}
movieClip 392 snowtrail {
frame 1 {
stop();
thename = String(this._name);
parentnumber = thename.substr(4, 2);
if (parentnumber <= 9) {
parentnumber = thename.substr(5, 1);
}
thisnumber = thename.substr(6, 2);
play();
}
frame 19 {
stop();
if (parentnumber == 'z') {
_root.snowExist[thisnumber] = false;
} else {
_root['heart' + parentnumber].snowExist[thisnumber] = false;
}
this.removeMovieClip;
}
}
movieClip 394 {
}
movieClip 395 hitarea {
}
movieClip 396 You {
frame 1 {
stop();
}
}
movieClip 397 Heart {
frame 1 {
function youhit() {
if (this.hit.hit.hitTest(_root.you.hit.hit)) {
if (this.hlevel <= _root.you.hlevel) {
scoreup = hlevel - _root.you.hlevel + _root.heartGrad;
if (scoreup < 1) {
scoreup = 1;
}
if (_root.you.hlevel < 11 && _root.toohigh == false) {
_root.Score += Math.ceil(scoreup / _root.scoreval);
} else {
scoreup = 25;
}
_root.you.scaleis += scoreup / 3;
_root.you.thump = true;
if (_root.music == true) {
_root.snd.start(0, 1);
}
--_root.Heartnumber;
_root.heartExist[thenumber] = false;
this.removeMovieClip();
} else {
thumped = true;
_root.gameover = true;
_root.goaway.removeMovieClip();
if (_root.music == true) {
_root.snd.start(0, 1);
}
}
}
}
function hearthit() {
if (_root.gameover == false) {
if (this._x > 50 && this._x < _root.stagew - 50 && this._y > 50 && this._y < _root.stageh - 50) {
var v3 = 0;
while (v3 < 70) {
if (v3 != thenumber) {
if (this.hit.hit.hitTest(_root['heart' + v3].hit.hit)) {
if (this.hlevel > _root['heart' + v3].hlevel || this.hlevel == _root['heart' + v3].hlevel && this.thenumber > _root['heart' + v3].thenumber) {
thumped = true;
--_root.Heartnumber;
_root.heartExist[_root['heart' + v3].thenumber] = false;
_root.heartsound -= _root['heart' + v3].sound;
_root['heart' + v3].removeMovieClip();
if (_root.music == true && _root.heartsound < 5) {
++sound;
++_root.heartsound;
_root.snd.start(0, 1);
}
}
}
}
++v3;
}
}
}
}
function removeheart() {
if (this._x < -105 || this._x > _root.stagew + 105 || this._y < -105 || this._y > _root.stageh + 105) {
--_root.Heartnumber;
_root.heartExist[thenumber] = false;
_root.heartsound -= sound;
this.removeMovieClip();
}
if (_root.restart == true) {
--_root.Heartnumber;
_root.heartExist[thenumber] = false;
_root.heartsound -= sound;
this.removeMovieClip();
}
}
function thump() {
if (thumped == true) {
curhname = hname;
if (thumpcount < 1) {
++hlevel;
}
++thumpcount;
if (thumpcount > 3) {
thumpcount = 0;
--hlevel;
thumped = false;
}
hname = _root.heartres(thename);
if (hname != curhname) {
this.heart.removeMovieClip();
this.attachMovie([hname + color], 'heart', hfacenum);
}
this.heart._xscale = _root.heartscale(thename) * flop;
this.heart._yscale = _root.heartscale(thename);
}
}
function snowtrail() {
snowlenx = this._x - snowx;
snowleny = this._y + this.hit._height / 2 - snowy;
snowlen = Math.sqrt(snowlenx * snowlenx + snowleny * snowleny);
if (snowlen > 35 - Math.sqrt(dirx * dirx + diry * diry)) {
var v3 = 0;
while (v3 < 30) {
if (snowExist[v3] == false) {
count = v3;
snowcnt = String(v3);
}
++v3;
}
if (thenumber > 9) {
snownumber = thenumber + snowcnt;
} else {
snownumber = '0' + thenumber + snowcnt;
}
snowname = 'snow' + snownumber;
snowdepth = '-' + thenumber + snowcnt;
_root.attachMovie('snowtrail', snowname, snowdepth);
snowExist[snowcnt] = true;
_root[snowname]._x = _root['heart' + thenumber]._x;
_root[snowname]._y = _root['heart' + thenumber]._y + this.hit._height / 2;
_root[snowname]._rotation = Math.atan2(diry, dirx) * 180 / Math.PI;
snowx = _root[snowname]._x;
snowy = _root[snowname]._y;
}
}
}
frame 1 {
thename = String(this._name);
thenumber = thename.substr(5, 2);
soundtimer = 0;
sound = 0;
if (this._x == -100 || this._x == _root.stagew + 100) {
this._y = random(_root.stageh);
}
if (this._y == -100 || this._y == _root.stageh + 100) {
this._x = random(_root.stagew);
}
speedx = random(5);
speedy = random(5);
dir = random(2);
smallHeart = Math.round(_root.smallHeart + _root.bigHeart * Math.sqrt(_root.you.hlevel - 2) / 5.291502622129181);
if (smallHeart > _root.heartGrad) {
smallHeart = _root.heartGrad;
}
hlevel = random(_root.heartGrad) - smallHeart + 1 + _root.you.hlevel;
if (hlevel < 1) {
hlevel = 1;
}
if (hlevel > 10) {
hlevel = 10;
}
if (_root.onmenu == true) {
hlevel = 6;
}
thumped = false;
thumpcount = 0;
flip = random(2);
if (flip == 0) {
flop = 1;
} else {
flop = -1;
}
if (this._x < 50) {
dirx = speedx + _root.heartSpeed;
if (dirx < 0.5) {
dirx = 0.5;
}
} else {
if (this._x > _root.stagew - 50) {
dirx = -speedx - _root.heartSpeed;
if (dirx > -0.5) {
dirx = -0.5;
}
} else {
if (dir == 0) {
dirx = speedx + _root.heartSpeed;
} else {
dirx = -speedx - _root.heartSpeed;
}
}
}
if (this._y < 50) {
diry = speedy + _root.heartSpeed;
if (diry < 0.5) {
diry = 0.5;
}
} else {
if (this._y > _root.stageh - 50) {
diry = -speedy - _root.heartSpeed;
if (diry > -0.5) {
diry = -0.5;
}
} else {
if (dir == 0) {
diry = speedy + _root.heartSpeed;
} else {
diry = -speedy - _root.heartSpeed;
}
}
}
color = random(3) + 1;
hfacenum = thenumber + '01';
hname = _root.heartres(thename);
this.attachMovie([hname + color], 'heart', hfacenum);
this.heart._xscale = _root.heartscale(thename) * flop;
this.heart._yscale = _root.heartscale(thename);
this.hit._xscale = _root.hitscale(thename) * flop;
this.hit._yscale = _root.hitscale(thename);
var snowExist = new Array(false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false);
snowcount = 0;
snowx = this._x;
snowy = this._y + this.hit._height / 2;
}
frame 1 {
onEnterFrame = function () {
if (_root.paws == false || _root.onmenu == true) {
this._x += dirx;
this._y += diry;
removeheart();
if (_root.gameover == false) {
thump();
youhit();
if (_root.you.hlevel < 11) {
hearthit();
}
}
snowtrail();
if (sound > 0) {
++soundtimer;
if (soundtimer > 15) {
soundtimer = 0;
_root.heartsound -= sound;
sound = 0;
}
}
}
};
}
frame 2 {
stop();
}
}
movieClip 404 300Heart4 {
}
movieClip 411 300Heart3 {
}
movieClip 418 300Heart2 {
}
movieClip 425 50Heart4 {
}
movieClip 432 50Heart3 {
}
movieClip 439 50Heart2 {
}
movieClip 446 50Heart1 {
}
movieClip 453 38Heart4 {
}
movieClip 460 38Heart3 {
}
movieClip 467 38Heart2 {
}
movieClip 474 38Heart1 {
}
frame 4 {
stop();
msc = new Sound();
msc.attachSound('Thatch');
msc.start(0, 10000000);
bsnd = new Sound();
bsnd.attachSound('bprs');
psnd = new Sound();
psnd.attachSound('popup');
impsnd = new Sound();
impsnd.attachSound('imp');
}
movieClip 478 {
}
instance of movieClip 478 {
onClipEvent (release) {
if (_root.music == true) {
_root.bsnd.start(0, 1);
}
_root.gotoAndStop('menu');
}
}
movieClip 569 {
frame 1 {
cycle1 = 0;
cycle2 = 0;
cycle3 = 0;
cycle4 = 0;
cycle5 = 0;
cycle6 = 0;
}
frame 13 {
stop();
if (cycle1 > 3) {
gotoAndPlay('p1');
} else {
++cycle1;
gotoAndPlay('c1');
}
}
frame 49 {
stop();
if (cycle2 > 3) {
gotoAndPlay('p2');
} else {
++cycle2;
gotoAndPlay('c2');
}
}
frame 69 {
stop();
if (cycle3 > 3) {
gotoAndPlay('c4');
} else {
++cycle3;
gotoAndPlay('c3');
}
}
frame 85 {
stop();
if (cycle4 > 4) {
gotoAndPlay('c5');
} else {
++cycle4;
gotoAndPlay('c4');
}
}
frame 97 {
stop();
if (cycle5 > 2) {
gotoAndPlay('p5');
} else {
++cycle5;
gotoAndPlay('c5');
}
}
frame 185 {
stop();
if (cycle6 > 5) {
gotoAndPlay('fading');
} else {
++cycle6;
gotoAndPlay('c6');
}
}
frame 209 {
_root.gotoAndStop('menu');
}
}
frame 5 {
stop();
if (starty == true) {
attachMovie('fading', 'fading', 107);
}
Score = 0;
toohigh = false;
restart = false;
paws = false;
onmenu = true;
infopage.removeMovieClip();
Framey.removeMovieClip();
chars.removeMovieClip();
settings.removeMovieClip();
winning.removeMovieClip();
unlock.removeMovieClip();
goaway.removeMovieClip();
attachMovie('MainMenu', 'MainMenu', 101);
}
frame 5 {
onEnterFrame = function () {
if (paws == false && restart == false) {
heartgen();
thump();
youcreate();
youbuttons();
wallstop();
youmove();
snowtrails();
if (gameover == true) {
you.removeMovieClip();
gotoAndStop('lose');
}
}
if (Score > 99999) {
Score = 99999;
}
if (Score > 1500 && frozen == false) {
com.newgrounds.API.unlockMedal('Frozen Arteries', 300, 0);
frozen = true;
so.data.frozen = true;
}
if (Score > highscore) {
highscore = Score;
so.data.score = highscore;
}
if (winning == false && toohigh == false) {
if (you.hlevel > 20) {
winning = true;
attachMovie('fadeout', 'fadeout', 8659);
}
}
if (toohigh == false && Score > 99998) {
attachMovie('goaway', 'goaway', 8660);
toohigh = true;
}
if (Key.isDown(80)) {
if (pausedown == false) {
if (paws == true) {
paws = false;
} else {
paws = true;
}
pausedown = true;
}
} else {
pausedown = false;
}
if (Key.isDown(27)) {
if (escdown == false) {
if (restart == false) {
you.removeMovieClip();
restart = true;
paws = false;
Framey.removeMovieClip();
gotoAndStop('menu');
}
escdown = true;
}
} else {
escdown = false;
}
if (Key.isDown(77)) {
if (mscdown == false) {
if (music == true) {
music = false;
msc.stop();
} else {
music = true;
msc.start(0, 1000000);
}
mscdown = true;
}
} else {
mscdown = false;
}
if (Key.isDown(32)) {
if (gameover == true) {
if (spacedown == false) {
gameover = false;
chars.gotoAndStop('none');
Score = 0;
restart = true;
spacedown = true;
gotoAndPlay('play');
}
}
} else {
spacedown = false;
}
if (music == false) {
Framey.musicon.gotoAndStop('off');
} else {
Framey.musicon.gotoAndStop('on');
}
if (gameover == false) {
if (paws == false) {
Framey.pauseon.gotoAndStop('off');
} else {
Framey.pauseon.gotoAndStop('on');
}
}
};
}
frame 6 {
MainMenu.removeMovieClip();
attachMovie('infopage', 'infopage', 102);
if (vegetable == false) {
com.newgrounds.API.unlockMedal('I am not a vegetable (maybe)', 300, 0);
vegetable = true;
so.data.vegetable = true;
}
}
frame 7 {
MainMenu.removeMovieClip();
attachMovie('unlock', 'unlock', 104);
}
frame 9 {
stop();
MainMenu.removeMovieClip();
infopage.removeMovieClip();
if (Framey.exist == true) {
} else {
attachMovie('Framey', 'Framey', 120);
}
if (chars.exist == true) {
} else {
attachMovie('chars', 'chars', 5026);
}
chars.gotoAndStop('none');
chars.charup = false;
snd = new Sound();
snd.attachSound('snd');
attachMovie('You', 'you', 100);
you._x = stagew / 2;
you._y = stageh / 2;
difficultylevel();
if (continu == false) {
Score = 0;
toohigh = false;
} else {
continu = false;
}
you.speed = 8;
you.accel = 1.3;
you.decel = 0.7;
you.LeftPush = 0;
you.RightPush = 0;
you.UpPush = 0;
you.DownPush = 0;
curhname = 'noname';
irontimer = 0;
you.scaleis = 40;
you.hlevel = 2;
you.thump = false;
you.thumpcount = 0;
var snowExist = new Array(false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false);
snowx = you._x - you._width / 4;
snowy = you._y + you._height / 2;
gameover = false;
restart = false;
paws = false;
onmenu = false;
pausedown = false;
escdown = false;
mscdown = false;
spacedown = false;
}
frame 10 {
stop();
onmenu = true;
}
frame 11 {
stop();
restart = true;
onmenu = true;
Framey.removeMovieClip();
you.removeMovieClip();
attachMovie('winning', 'winning', 2047);
}