STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
227917
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2559 · P5117

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/73909884?noj=FRM73909884-29DC" width="1" height="1"></div>

Mega Battle Assassin.swf

This is the info page for
Flash #141685

(Click the ID number above for more basic data on this flash file.)


ActionScript [AS1/AS2]
Combined Code
movieClip 9 { } movieClip 12 { } movieClip 22 { } movieClip 24 { frame 40 { stop(); } } movieClip 30 { } button 31 { on (release) { startMovie(); } } movieClip 32 Preloader Bar (NewgroundsAPI) { #initclip Object.registerClass('Preloader Bar (NewgroundsAPI)', com.newgrounds.components.PreloaderBar); #endinitclip } movieClip 63 { frame 1 { var copyrightNotice = 'Copyright (c) 2006-2007 Sockpuppet Pty Ltd. All Rights Reserved. http://www.reanimator.net'; var reanimator = new flash.geom.Transform(this); var camera = new flash.geom.Transform(this._parent); var w = Stage.width; var h = Stage.height; this._visible = false; this.onEnterFrame = function () { this._parent.filters = this.filters; var v2 = reanimator.matrix; camera.colorTransform = reanimator.colorTransform; v2.invert(); v2.translate(w * 0.5, h * 0.5); camera.matrix = v2; }; } } // unknown tag 88 length 219 button 71 { on (release) { getURL('http://jazlyte.newgrounds.com', '_blank'); } } button 74 { on (release) { getURL('http://youtube.com/jazlyte', '_blank'); } } button 77 { on (release) { getURL('http://yungjazz.deviantart.com', '_blank'); } } instance of movieClip 32 Preloader Bar (NewgroundsAPI) { onClipEvent (construct) { AUTO_PLAY = false; } } button 80 { on (release) { getURL('http://www.facebook.com/#!/pages/JazLytes-Cartoons-Faggotry/254724824541789?sk=wall', '_blank'); } } movieClip 1 __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) { // An attempt to read a value from empty stack } 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 33 __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 34 __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); 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 v8 = com.newgrounds.encoders.JSON.encode(secure_params); var v9 = com.newgrounds.encoders.MD5.calculate(v2); var v6 = com.newgrounds.encoders.RC4.encrypt(v8, com.newgrounds.API.encryption_key); var v7 = v9 + v6; unsecure_params.secure = com.newgrounds.API.compressHex(v7); 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) { System.security.allowDomain('http://server.cpmstar.com'); System.security.allowDomain('http://www.cpmstar.com'); System.security.allowDomain('https://server.cpmstar.com'); System.security.allowDomain('https://www.cpmstar.com'); System.security.allowInsecureDomain('http://server.cpmstar.com'); System.security.allowInsecureDomain('http://www.cpmstar.com'); System.security.allowInsecureDomain('https://server.cpmstar.com'); System.security.allowInsecureDomain('https://www.cpmstar.com'); if (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 35 __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 36 __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 37 __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 38 __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 39 __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 40 __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 41 __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 42 __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()) { trace(this.output.length); 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 43 __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 44 __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 45 __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 46 __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 47 __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 48 __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 49 __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 50 __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 51 __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 52 __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 53 __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 } // unknown tag 88 length 63




http://swfchan.com/29/141685/info.shtml
Created: 27/10 -2018 18:58:19 Last modified: 27/10 -2018 18:58:19 Server time: 29/03 -2024 12:57:56