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

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

Madness Premeditation - mix between strategy and puzzle game.swf

This is the info page for
Flash #90226

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


ActionScript [AS1/AS2]
Combined Code
// unknown tag 88 length 74 movieClip 4 { } movieClip 5 { } movieClip 6 copied { frame 65 { stop(); this.unloadMovie(); this.removeMovieClip(); } } movieClip 8 { } movieClip 9 shell2 { } movieClip 11 { } movieClip 12 shell0 { } movieClip 14 { } movieClip 18 { } movieClip 20 { } movieClip 46 bosslife { frame 27 { stop(); } } movieClip 52 glass0 { frame 1 { stop(); } } movieClip 58 cancelshotleft { } movieClip 60 cancelshot { } movieClip 62 progresssaved { frame 77 { stop(); } } movieClip 64 { frame 1 { this.onPress = function () {}; } } // unknown tag 88 length 608 movieClip 69 { } movieClip 82 { } movieClip 85 { } movieClip 88 { } movieClip 91 { } movieClip 94 { } movieClip 97 { } movieClip 100 { } movieClip 103 { } movieClip 106 { } movieClip 109 { } movieClip 114 { frame 1 { stop(); } } movieClip 115 savedialogue { frame 1 { function successSave(e) { var v2 = savinganim; if (e.success) { v2.gotoAndStop('complete'); v2.daid.text = new_save.id; v2.danam.text = new_save.name; } else { v2.gotoAndStop('problem'); } v2.but_ok.onPress = function () { var v2 = this._parent.partner._parent; v2.resultscreen.but_sharescene._visible = false; v2.resultscreen.but_watchreplay._visible = false; v2.resultscreen.but_playagain._visible = false; this._parent.partner.unloadMovie(); this._parent.partner.removeMovieClip(); this._parent.unloadMovie(); this._parent.removeMovieClip(); }; } levels = com.newgrounds.API.getSaveGroup('levels'); com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.FILE_SAVED, successSave, this); err._visible = false; var urlString = _root._url; if (urlString.indexOf('newgrounds.com') == -1 && urlString.indexOf('ungrounded.net') == -1) { err._visible = true; err.onPress = function () { com.newgrounds.API.loadCustomLink('portalversion'); }; err.onRollOver = function () { this.gotoAndStop(2); }; err.onRollOut = function () { this.gotoAndStop(1); }; } but_exit.onPress = function () { this._parent.unloadMovie(); this._parent.removeMovieClip(); }; but_doit.onPress = function () { if (nambox.text != '') { new_save = com.newgrounds.API.newSaveFile('levels'); new_save.contents = this._parent.tosave; new_save.name = this._parent.nambox.text; var v3 = this._parent['t' + this._parent.curlev]; v3._x = 0; v3._y = 0; var v4 = new flash.display.BitmapData(v3._width, v3._height, true); v4.draw(v3); this._parent.attachBitmap(v4, 999); new_save.thumbnail = v4; new_save.save(); this._visible = false; v3._x = 300; delete this.onPress; var v5 = this._parent.attachMovie('savinganim', 'savinganim', 999); v5.partner = this._parent; } else { _root.game.runCopy('GIVE YOUR FILE A NAME!'); } }; } } movieClip 116 { frame 1 { this.onPress = function () {}; } } movieClip 119 { } movieClip 120 { } movieClip 123 { } movieClip 124 { } movieClip 138 savinganim { frame 1 { stop(); } } movieClip 140 { } movieClip 142 levelblock { } movieClip 144 { frame 1 { this.onPress = function () {}; } } movieClip 147 { } movieClip 149 { } movieClip 157 { frame 1 { stop(); } } movieClip 160 { } movieClip 162 { } movieClip 167 { } movieClip 169 { } movieClip 174 { frame 1 { stop(); } } movieClip 175 votepanel { frame 1 { function onVoteComplete(e) { if (e.success) { _root.showLoad(0); stopAllSounds(); _root.gotoAndStop('main'); } else { var v3 = 0; while (v3 < 6) { var v4 = this._parent['v' + v3]; v4._visible = true; ++v3; } _root.showLoad(0); stopAllSounds(); _root.gotoAndStop('main'); } } function overIt(id) { var v2 = this['v' + id]; if (!v2.selected) { v2.gotoAndStop('over'); } } function offIt(id) { var v2 = this['v' + id]; if (!v2.selected) { v2.gotoAndStop('norm'); } } function clickIt(id) { var v2 = 0; while (v2 < 6) { var v3 = this['v' + v2]; v3.selected = false; v3.gotoAndStop('norm'); ++v2; } v3 = this['v' + id]; v3.gotoAndStop('selected'); selid = id; v3.selected = true; } ngpanel._visible = false; var urlString = _root._url; if (urlString.indexOf('newgrounds.com') == -1 && urlString.indexOf('ungrounded.net') == -1) { ngpanel._visible = true; but_done._visible = false; ngpanel.onPress = function () { com.newgrounds.API.loadCustomLink('portalversion'); }; ngpanel.onRollOver = function () { this.gotoAndStop(2); }; ngpanel.onRollOut = function () { this.gotoAndStop(1); }; } this.but_main.onPress = function () { stopAllSounds(); _root.gotoAndStop('main'); }; this.but_done.onPress = function () { if (this._parent.selid != undefined) { com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.VOTE_COMPLETE, onVoteComplete, this); var v5 = _root.mysavefile; v5.sendRating('madness', this._parent.selid); var v3 = 0; while (v3 < 6) { var v4 = this._parent['v' + v3]; v4._visible = false; ++v3; } } else { _root.game.runCopy('CHOOSE A RATING!'); } }; var i = 0; while (i < 6) { var tar = this['v' + i]; tar.num.text = i; tar.id = i; tar.onRollOver = function () { overIt(this.id); }; tar.onRollOut = function () { offIt(this.id); }; tar.onPress = function () { clickIt(this.id); }; ++i; } } } movieClip 176 loadspinner { } movieClip 182 { frame 5 { stop(); this._parent.gotoAndStop('norm'); } } movieClip 183 { frame 1 { stop(); } } movieClip 185 { } movieClip 186 gun300 { } movieClip 190 { } movieClip 191 gun300_menu { frame 1 { stop(); } } movieClip 194 { } movieClip 198 { frame 5 { stop(); this._parent.gotoAndStop('norm'); } } movieClip 199 { frame 1 { stop(); } } movieClip 200 gun200 { } movieClip 201 gun200_menu { frame 1 { stop(); } } movieClip 204 { frame 3 { stop(); this._parent.gotoAndStop('norm'); } } movieClip 205 { frame 1 { stop(); } } movieClip 206 gun101 { } movieClip 207 gun101_menu { frame 1 { stop(); } } movieClip 212 { frame 6 { stop(); this._parent.gotoAndStop('norm'); } } movieClip 213 { frame 1 { stop(); } } movieClip 214 gun100 { } movieClip 215 gun100_menu { frame 1 { stop(); } } movieClip 226 { frame 9 { stop(); this._parent.gotoAndStop('norm'); } } movieClip 227 { frame 1 { stop(); this.sc = 70; } } movieClip 228 gun1 { } movieClip 229 gun1_menu { frame 1 { stop(); } } movieClip 235 { frame 7 { stop(); this._parent.gotoAndStop('norm'); } } movieClip 236 { frame 1 { stop(); this.sc = 70; } } movieClip 237 gun0 { } movieClip 238 gun0_menu { frame 1 { stop(); } } // unknown tag 88 length 68 movieClip 247 { frame 1 { onEnterFrame = function () { if (_visible) { _rotation = _rotation + 30; } else { delete onEnterFrame; } }; } } // unknown tag 88 length 68 movieClip 249 { frame 10 { stop(); } } // unknown tag 88 length 68 movieClip 251 { frame 37 { _parent.setGotoFrame('done'); stop(); } } movieClip 253 { } movieClip 255 NewgroundsAPIAsset_Medal_Icon_Placeholder { } // unknown tag 88 length 68 // unknown tag 88 length 69 // unknown tag 88 length 68 movieClip 263 NewgroundsAPIAsset_Medal_Popup { frame 1 { function endDelay() { clearInterval(pop_delay); gotoAndPlay('closeme'); } _visible = true; icon._visible = false; pop_delay = setInterval(endDelay, 3000); } frame 2 { medal.attachIcon(icon); } frame 10 { icon._visible = true; medal_name = medal.getName(); medal_value = medal.getValue() + 'pts'; stop(); } frame 21 { this.removeMovieClip(); _visible = false; stop(); } } // unknown tag 88 length 68 // unknown tag 88 length 68 movieClip 269 NewgroundsAPIAsset_Login_Warning { frame 1 { function endDelay() { clearInterval(pop_delay); gotoAndPlay('closeme'); } _x = 0; _y = 0; _visible = true; pop_delay = setInterval(endDelay, 6000); } frame 10 { stop(); } frame 21 { this.removeMovieClip(); _visible = false; stop(); } } // unknown tag 88 length 68 // unknown tag 88 length 69 movieClip 272 NewgroundsAPIAsset_Connection_Error { frame 1 { function endDelay() { clearInterval(pop_delay); gotoAndPlay('closeme'); } _x = 0; _y = 0; _visible = true; pop_delay = setInterval(endDelay, 6000); } frame 10 { stop(); } frame 21 { this.removeMovieClip(); _visible = false; stop(); } } movieClip 274 { } movieClip 276 { } movieClip 278 { } movieClip 280 { } movieClip 282 { } movieClip 284 { } movieClip 286 { } movieClip 288 { } movieClip 290 { } movieClip 292 { } movieClip 293 NewgroundsAPIAsset_big_popup_background { frame 1 { var w = Math.round(this._width); var h = Math.round(this._height); if (w < 80) { w = 80; } if (h < 80) { h = 80; } this._width = 350; this._height = 120; t._width = w - 2; t._x = 1; b._width = w - 2; b._x = 1; c._width = w - 2; c._x = 1; c._height = h - 2; c._y = 1; l._height = h - 2; l._y = 1; r._height = h - 2; r._y = 1; tr._x = w - 7; r._x = w - 7; br._x = w - 7; b._y = h - 7; bl._y = h - 7; br._y = h - 7; shadow._width = w + 10; shadow._height = h + 10; } } button 297 { on (release) { this._visible = false; this.removeMovieClip(); } } // unknown tag 88 length 68 // unknown tag 88 length 68 button 303 { on (release) { getURL(official_version_url, '_blank'); } } // unknown tag 88 length 69 movieClip 305 NewgroundsAsset_New_Version_Available { frame 1 { _x = Stage.width / 2; _y = Stage.height / 2; background._width = Stage.width + 200; background._height = Stage.height + 200; background._x = -(_x + 100); background._y = -(_y + 100); } } button 306 { on (release) { getURL(official_version_url, '_blank'); } } // unknown tag 88 length 68 // unknown tag 88 length 68 // unknown tag 88 length 69 movieClip 310 NewgroundsAsset_Illegal_Host { frame 1 { _x = Stage.width / 2; _y = Stage.height / 2; background._width = Stage.width + 200; background._height = Stage.height + 200; background._x = -(_x + 100); background._y = -(_y + 100); } } movieClip 311 API Connector (NewgroundsAPI) { #initclip Object.registerClass('API Connector (NewgroundsAPI)', com.newgrounds.components.APIConnector); #endinitclip frame 20 { _visible = false; } } button 341 { on (release) { com.newgrounds.API.loadNewgrounds(); } } movieClip 347 { frame 1 { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { Unknown action: 0xfc function () {  = (865 % 511) * true; if (!'') { } else {} return ; } var  = -67 + (); for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { if ( == 287) {  += 374; true; } if ( == 239) { for (;;) {  -= 28; // An attempt to read a value from empty stack // An attempt to read a value from empty stack var eval(undefined) = undefined; if ( == 753) {  -= 514; ''; 1; } if ( == 211) {  += 348; ''; } if ( != 140) break;  += 608; if ( == 963) {  -= 521; } if ( == 829) {  -= 268; // An attempt to read a value from empty stack !undefined; } if ( != 913) goto 556;  -= 160; label 556: for (;;) { if ( == 975) {  -= 678; } } if ( == 238) {  += 737; true; } if ( == 6) {  += 747; }  -= 291; for (;;) {  += 270;  += 302; }  -= 204;  -= 753;  += 398;  -= 819;  -= 748; } eval( != 297); } } } } } } } } } } } } } } } } } } } } } } } } } } movieClip 348 { frame 11 { gotoAndPlay(1); } } movieClip 349 Flash Ad (NewgroundsAPI) { #initclip Object.registerClass('Flash Ad (NewgroundsAPI)', com.newgrounds.components.FlashAd); #endinitclip } frame 1 { function freshSaveData() { _root.so.data.curlev = 0; _root.so.data.myguns = new Array(); _root.so.data.boughtguns = new Array(); _root.so.data.gunpoints = 0; _root.so.data.grens = new Array(); } function runSkip() { if (!goneahead) { goAhead(); } } function goAhead() { wrap.gotoAndPlay('fadeout'); delete wrap.but_go.onPress; goneahead = true; } function continueIt() { gotoAndStop('main'); } function initSkipBut() { Key.addListener(keyListener); } stop(); Stage.showMenu = false; _root.so = SharedObject.getLocal('premed'); if (_root.so.data.curlev == undefined) { freshSaveData(); } this.skipbut = 32; goneahead = false; var keyListener = new Object(); keyListener.onKeyDown = function () { runSkip(); }; wrap.madlink.onPress = function () { com.newgrounds.API.loadCustomLink('madness'); }; wrap.madlink1.onPress = function () { com.newgrounds.API.loadCustomLink('madness'); }; this.onEnterFrame = function () { var v4 = this.getBytesTotal(); var v3 = this.getBytesLoaded(); var v2 = (v3 / v4) * 100; wrap.bar._xscale = v2; if (v2 >= 100) { delete this.onEnterFrame; initSkipBut(); wrap.gotoAndPlay('done'); } }; } movieClip 353 { } movieClip 354 { instance of movieClip 349 Flash Ad (NewgroundsAPI) { onClipEvent (construct) { show_background = false; } } } movieClip 357 { } movieClip 359 { } movieClip 362 { } movieClip 364 { frame 13 { stop(); } frame 54 { stop(); gobut.onPress = function () { this._parent._parent.goAhead(); }; } frame 100 { stop(); this._parent.continueIt(); } } instance of movieClip 311 API Connector (NewgroundsAPI) { onClipEvent (construct) { api_id = '13912:JyekeWn0'; encryption_key = 'hp8ycesZXIT4GwUaKfaq0GxM4IkuoMhI'; version = ''; fake_session = false; debug = false; error_screens = true; medal_popups = true; } } movieClip 313 __Packages.com.newgrounds.API { #initclip if (!_global.com) { _global.com = new Object(); } if (!_global.com.newgrounds) { _global.com.newgrounds = new Object(); } if (!_global.com.newgrounds.API) { var v1 = function () {}; com.newgrounds.API = v1; var v2 = v1.prototype; v1.setVersion = function (v) { com.newgrounds.API.version = v; }; v1.setUserEmail = function (e) { com.newgrounds.API.user_email = e; }; v1.setFakeSession = function (fake) { com.newgrounds.API.fake_session = fake; }; v1.setPreload = function (p) { com.newgrounds.API.preload = p; }; v1.getPercentLoaded = function () { var v2; if (com.newgrounds.API.preload && com.newgrounds.API.preload_items > 0) { v2 = 80; var v4 = Math.round((com.newgrounds.API.preload_items_loaded / com.newgrounds.API.preload_items) * 20); var v3 = Math.round((_root.getBytesLoaded() / _root.getBytesTotal()) * v2) + v4; return v3; } v2 = 100; v3 = Math.round((_root.getBytesLoaded() / _root.getBytesTotal()) * v2); return v3; }; v1.reportNewAsset = function () { if (com.newgrounds.API.preload) { ++com.newgrounds.API.preload_items; } }; v1.reportAssetLoaded = function () { if (com.newgrounds.API.preload) { ++com.newgrounds.API.preload_items_loaded; } }; v1.populateMedals = function (medal_list) { if (com.newgrounds.API.medals === null) { com.newgrounds.API.medals = new Array(); var v2 = 0; while (v2 < medal_list.length) { var v1 = medal_list[v2]; com.newgrounds.API.medals.push(new com.newgrounds.Medal(v1.medal_id, v1.medal_name, v1.medal_value, v1.medal_difficulty, v1.medal_unlocked, v1.medal_icon)); ++v2; } } }; v1.populateSaveGroups = function (save_group_list, file_path, image_path) { com.newgrounds.SaveFile.setFilePath(file_path); com.newgrounds.SaveFile.setImagePath(image_path); com.newgrounds.API.save_groups = new Array(); var v6 = 0; while (v6 < save_group_list.length) { var v2 = save_group_list[v6]; var v5 = new com.newgrounds.SaveGroup(v2.group_id, v2.group_name, v2.group_type); var v4 = 0; while (v4 < v2.keys.length) { var v3 = v2.keys[v4]; v5.addKey(v3.id, v3.name, v3.type); ++v4; } v4 = 0; while (v4 < v2.ratings.length) { var v1 = v2.ratings[v4]; v5.addRating(v1.id, v1.name, v1.min, v1.max, v1.float); ++v4; } com.newgrounds.API.save_groups.push(v5); ++v6; } }; v1.populateScoreBoards = function (score_boards) { com.newgrounds.API.scoreboards = new Array(); var v1 = 0; while (v1 < score_boards.length) { com.newgrounds.API.scoreboards.push(new com.newgrounds.ScoreBoard(score_boards[v1].id, score_boards[v1].name)); ++v1; } }; v1.getOfficialURL = function () { var v1 = com.newgrounds.API.GATEWAY_URL + '?tracker_id=' + com.newgrounds.API.movie_id + '&command_id=loadOfficalVersion&seed=' + Math.random(); if (com.newgrounds.API.debug) { v1 += '&debug=1'; } return v1; }; v1.loadOfficialURL = function () { getURL(com.newgrounds.API.getOfficialURL(), '_blank'); }; v1.hasUserSession = function () { if (com.newgrounds.API.session_id && com.newgrounds.API.publisher_id) { return true; return false; } if (_root.NewgroundsAPI_PublisherID && _root.NewgroundsAPI_SessionID) { return true; } return false; }; v1.hostIsCompatible = function () { return _root.NewgroundsAPI_PublisherID !== undefined; }; v1.isNewgrounds = function () { return com.newgrounds.API.publisher_id == 1 || _root.NewgroundsAPI_PublisherID == 1 || ((com.newgrounds.API.getHost()).toLowerCase()).indexOf('ungrounded.net') > -1 || ((com.newgrounds.API.getHost()).toLowerCase()).indexOf('newgrounds.com') > -1; }; v1.hasPublisher = function () { return com.newgrounds.API.publisher_id || _root.NewgroundsAPI_PublisherID; }; v1.hasUserEmail = function () { if (com.newgrounds.API.user_email) { return true; } return false; }; v1.isConnected = function () { return com.newgrounds.API.connected; }; v1.getID = function () { return com.newgrounds.API.getTrackerID(); }; v1.getTrackerID = function () { return com.newgrounds.API.tracker_id; }; v1.getUserID = function () { return com.newgrounds.API.user_id; }; v1.getUserName = function () { return com.newgrounds.API.user_name; }; v1.connectionTimeOut = function () { com.newgrounds.API.reportAssetLoaded(); clearInterval(com.newgrounds.API.timeout); com.newgrounds.API.callListener(com.newgrounds.APIEvent.API_CONNECTED, false, new com.newgrounds.APIError('CONNECTION_FAILED', 'Connection to API gateway timed out.')); }; v1.connect = function (m_id, encrypt_key, debug_mode) { if (com.newgrounds.API.connected) { return undefined; } com.newgrounds.API.sendMessage('Connecting to the Newgrounds API Gateway...'); var v2 = function () { com.newgrounds.API.connectionTimeOut(); }; com.newgrounds.API.timeout = setInterval(v2, 10000, null); if (!m_id) { com.newgrounds.API.fatalError('API.connect() - missing required movie_id parameter', 'connect'); } com.newgrounds.API.movie_id = String(m_id); com.newgrounds.API.tracker_id = Number(com.newgrounds.API.movie_id.substring(0, com.newgrounds.API.movie_id.indexOf(':'))); com.newgrounds.API.encryption_key = encrypt_key; com.newgrounds.API.debug = debug_mode; com.newgrounds.API.user_id = 0; com.newgrounds.API.user_name = 'Guest'; if (_root.NewgroundsAPI_PublisherID) { com.newgrounds.API.publisher_id = _root.NewgroundsAPI_PublisherID; if (_root.NewgroundsAPI_SessionID) { com.newgrounds.API.session_id = _root.NewgroundsAPI_SessionID; } } else { if (com.newgrounds.API.fake_session) { com.newgrounds.API.publisher_id = 1; com.newgrounds.API.session_id = 'D3bu64p1U53R'; com.newgrounds.API.user_id = 10; com.newgrounds.API.user_name = 'API-Debugger'; } else { if (com.newgrounds.API.debug) { com.newgrounds.API.publisher_id = 1; } com.newgrounds.API.session_id = null; } } if (_root.NewgroundsAPI_UserName) { com.newgrounds.API.user_name = _root.NewgroundsAPI_UserName; } if (_root.NewgroundsAPI_UserID) { com.newgrounds.API.user_id = _root.NewgroundsAPI_UserID; } if (_root.NewgroundsAPI_UserpageFormat) { com.newgrounds.API.userpage_format = _root.NewgroundsAPI_UserpageFormat; } com.newgrounds.API.reportNewAsset(); com.newgrounds.API.connected = true; com.newgrounds.API.sendCommand('connectMovie', {'host': com.newgrounds.API.getHost(), 'movie_version': com.newgrounds.API.version}); }; v1.getHost = function () { if (!com.newgrounds.API.host) { var v1 = _url; if ((v1.toLowerCase()).indexOf('http://') > -1 or (v1.toLowerCase()).indexOf('https://') > -1) { if ((v1.toLowerCase()).indexOf(com.newgrounds.API.NEWGROUNDS_PREVIEW) > -1) { com.newgrounds.API.host = com.newgrounds.API.NEWGROUNDS_PREVIEW; } else { com.newgrounds.API.host = (v1.split('/'))[2].toLowerCase(); } return com.newgrounds.API.host; } com.newgrounds.API.host = com.newgrounds.API.LOCAL_HOST; } return com.newgrounds.API.host; }; v1.isPublishedHost = function () { for (var v1 in com.newgrounds.API.PREVIEW_HOSTS) { if (com.newgrounds.API.getHost() == com.newgrounds.API.PREVIEW_HOSTS[v1]) { return false; } } return true; }; v1.loadUserPage = function (u_id, u_name) { if (u_id == undefined && u_name == undefined) { if (com.newgrounds.API.hasUserSession()) { u_id = com.newgrounds.API.user_id; u_name = com.newgrounds.API.user_name; } else { return false; } } if (com.newgrounds.API.publisher_id == 1) { var v1 = 'http://' + com.newgrounds.API.user_name.toLowerCase() + '.newgrounds.com'; getURL(v1, '_blank'); return true; return false; } if (com.newgrounds.API.userpage_format) { v1 = com.newgrounds.API.userpage_format; v1 = (v1.split(':user_id:')).join(u_id.toString()); v1 = (v1.split(':user_name:')).join(escape(u_name)); getURL(v1, '_blank'); return true; } return false; }; v1.loadNewgrounds = function () { com.newgrounds.API.sendCommand('loadNewgrounds', {'host': com.newgrounds.API.getHost()}, true); }; v1.loadMySite = function () { com.newgrounds.API.sendCommand('loadMySite', {'host': com.newgrounds.API.getHost()}, true); }; v1.loadCustomLink = function (link) { com.newgrounds.API.sendCommand('loadCustomLink', {'host': com.newgrounds.API.getHost(), 'link': link}, true); }; v1.logCustomEvent = function (event) { com.newgrounds.API.sendCommand('logCustomEvent', {'host': com.newgrounds.API.getHost(), 'event': event}); }; v1.getScoreBoard = function (board) { if (!com.newgrounds.API.scoreboards || com.newgrounds.API.scoreboards.length < 1) { com.newgrounds.API.sendWarning('You do not have any scoreboards configured in your API setup.'); return null; } for (var v2 in com.newgrounds.API.scoreboards) { if (typeof board == 'string' && com.newgrounds.API.scoreboards[v2].name == board) { return com.newgrounds.API.scoreboards[v2]; } else { if (typeof board == 'number' && com.newgrounds.API.scoreboards[v2].id == board) { return com.newgrounds.API.scoreboards[v2]; } } } com.newgrounds.API.sendWarning('Could not find any scoreboards named \'' + board + '\'.'); return null; }; v1.postScore = function (board_name, value, tag) { var v3 = com.newgrounds.API.getScoreBoard(board_name); if (tag === undefined) { tag = ''; } if (!v3) { com.newgrounds.API.sendError({'command_id': 'postScore'}, new com.newgrounds.APIError('INVALID_SCOREBOARD', 'Failed to post score. Check the spelling of your board name.')); return undefined; } if (value == undefined) { com.newgrounds.API.sendError({'command_id': 'postScore'}, new com.newgrounds.APIError('MISSING_PARAM', 'Missing score value')); return undefined; } com.newgrounds.API.sendSecureCommand('postScore', {'user_name': com.newgrounds.API.user_name, 'board': v3.id, 'value': value, 'tag': tag, 'publisher_id': com.newgrounds.API.publisher_id}); }; v1.loadScores = function (board_name, period, tag) { var v3 = 'loadScores'; var v2 = com.newgrounds.API.getScoreBoard(board_name); if (!v2) { com.newgrounds.API.sendError({'command_id': v3}, new com.newgrounds.APIError('INVALID_SCOREBOARD', 'Failed to load scores. Check the spelling of your board name.')); return undefined; } var v1 = {}; v1.publisher_id = com.newgrounds.API.publisher_id; v1.board = v2.id; v1.num_results = v2.num_results; v1.page = v2.page; if (period === undefined) { v1.period = v2.period; } else { v1.period = period; } if (tag === undefined) { v1.tag = v2.tag; } else { v1.tag = tag; } com.newgrounds.API.sendCommand(v3, v1); }; v1.unlockMedal = function (medal, x, y) { if (!medal) { com.newgrounds.API.sendError({'command_id': 'unlockMedal'}, new com.newgrounds.APIError('MISSING_PARAM', 'missing required medal name')); return undefined; } if (typeof medal != 'object') { medal = com.newgrounds.API.getMedal(medal); } if (!medal) { com.newgrounds.API.sendError({'command_id': 'unlockMedal'}, new com.newgrounds.APIError('INVALID_MEDAL', 'medal unlock failed, check your medal name for correct spelling.')); return undefined; } com.newgrounds.API.callListener(com.newgrounds.APIEvent.UNLOCK_MEDAL, true, {'medal': medal, 'x': x, 'y': y}); if (com.newgrounds.API.hasUserSession() or com.newgrounds.API.debug) { com.newgrounds.API.sendMessage('Attempting to unlock \'' + medal.getName() + '\''); var v3 = new Object(); v3.medal_id = medal.getID(); com.newgrounds.API.sendSecureCommand('unlockMedal', v3); } else { com.newgrounds.API.sendMessage('Unlocking \'' + medal.getName() + '\''); medal.setUnlocked(true); var v2 = com.newgrounds.API.loadLocal('medals_unlocked'); if (!v2) { v2 = new Object(); } v2[medal.getID()] = true; com.newgrounds.API.saveLocal('medals_unlocked', v2); } }; v1.loadMedals = function () { if (com.newgrounds.API.medals) { com.newgrounds.API.callListener(com.newgrounds.APIEvent.MEDALS_LOADED, true, {'medals': com.newgrounds.API.medals}); return undefined; } var v1 = new Object(); if (com.newgrounds.API.hasUserSession()) { v1.publisher_id = com.newgrounds.API.publisher_id; v1.user_id = com.newgrounds.API.user_id; } com.newgrounds.API.sendCommand('getMedals', v1); }; v1.getMedals = function () { return com.newgrounds.API.medals; }; v1.getMedal = function (identifier) { if (!com.newgrounds.API.medals || com.newgrounds.API.medals.length < 1) { com.newgrounds.API.sendWarning('You do not have any medals configured on your API setup!'); return false; } for (var v3 in com.newgrounds.API.medals) { var v1 = com.newgrounds.API.medals[v3]; if (typeof identifier == 'string' && v1.getName() == identifier) { return v1; } else { if (v1.getID() == identifier) { return v1; } } } com.newgrounds.API.sendWarning('Could not find any medals named \'' + identifier + '\'.'); return false; }; v1.saveLocal = function (save_id, save_data, size_allocation) { if (!com.newgrounds.API.sharedObjects[save_id]) { com.newgrounds.API.sharedObjects[save_id] = SharedObject.getLocal('ng_ap_secure_' + com.newgrounds.API.movie_id + '_' + save_id); } com.newgrounds.API.sharedObjects[save_id].data[save_id] = com.newgrounds.API.encodeData(save_data); com.newgrounds.API.sharedObjects[save_id].flush(); }; v1.loadLocal = function (save_id) { if (!com.newgrounds.API.sharedObjects[save_id]) { com.newgrounds.API.sharedObjects[save_id] = SharedObject.getLocal('ng_ap_secure_' + com.newgrounds.API.movie_id + '_' + save_id); } com.newgrounds.API.sharedObjects[save_id].flush(); com.newgrounds.API.echo('sharedobject ' + save_id + ' is: ' + com.newgrounds.API.sharedObjects[save_id].data[save_id]); if (com.newgrounds.API.sharedObjects[save_id].data[save_id]) { com.newgrounds.API.echo('decoded: ' + com.newgrounds.API.decodeData(com.newgrounds.API.sharedObjects[save_id].data[save_id])); return com.newgrounds.API.decodeData(com.newgrounds.API.sharedObjects[save_id].data[save_id]); } else { return null; } }; v1.encodeData = function (data) { return com.newgrounds.API.compressHex(com.newgrounds.encoders.RC4.encrypt(com.newgrounds.encoders.JSON.encode(data), com.newgrounds.API.encryption_key)); }; v1.decodeData = function (base) { return com.newgrounds.encoders.JSON.decode(com.newgrounds.encoders.RC4.decrypt(com.newgrounds.API.uncompressHex(base), com.newgrounds.API.encryption_key)); }; v1.compressHex = function (hex_value) { var v6 = hex_value.length % 6; var v4 = ''; var v5 = new com.newgrounds.encoders.BaseN(com.newgrounds.API.compression_radix); var v1 = 0; while (v1 < hex_value.length) { var v2 = Number('0x' + hex_value.substr(v1, 6)); v4 += v5.encode(v2, 4); v1 += 6; } return v6 + v4; }; v1.uncompressHex = function (base_value) { var v9 = Number(base_value.charAt(0)); var v7 = ''; var v3; var v8 = new com.newgrounds.encoders.BaseN(com.newgrounds.API.compression_radix); var v2 = 1; while (v2 < base_value.length) { var v6 = base_value.substr(v2, 4); var v5 = v8.decode(v6); var v1 = com.newgrounds.API.dec2hex(v5); if (v2 + 4 < base_value.length) { v3 = 6; } else { v3 = v9; } while (v1.length < v3) { v1 = '0' + v1; } v7 += v1; v2 += 4; } return v7; }; v1.dec2hex = function (dec) { var v4 = '0123456789ABCDEF'; var v3 = ''; while (dec > 0) { var v2 = dec % 16; v3 = v4.charAt(v2) + v3; dec = (dec - v2) / 16; } return v3; }; v1.getSaveGroup = function (group) { if (com.newgrounds.API.save_groups == null || com.newgrounds.API.save_groups.length < 1) { com.newgrounds.API.sendWarning('You do not have any save groups configured in your API setup!'); return null; } var v1 = 0; while (v1 <= com.newgrounds.API.save_groups.length) { if (typeof group == 'number' or (Number(group)).toString() == String(group)) { if (com.newgrounds.API.save_groups[v1].getID() == Number(group)) { return com.newgrounds.API.save_groups[v1]; } } else { if (typeof group == 'string') { if ((com.newgrounds.API.save_groups[v1].getName()).toLowerCase() == group.toLowerCase()) { return com.newgrounds.API.save_groups[v1]; } } } ++v1; } com.newgrounds.API.sendWarning('Could not find any save groups named \'' + group + '\'.'); return null; }; v1.getCurrentSaveFile = function () { return com.newgrounds.API.save_file; }; v1.setCurrentSaveFile = function (current) { com.newgrounds.API.save_file = current; }; v1.loadSaveFile = function (save_id, get_contents) { if (get_contents === undefined) { get_contents = true; } var v1 = 'loadSaveFile'; var v2 = {'publisher_id': com.newgrounds.API.publisher_id, 'save_id': save_id, 'get_contents': get_contents}; com.newgrounds.API.save_file = null; com.newgrounds.API.sendCommand(v1, v2); }; v1.loadFilesByDate = function (group_name, sort_descending, key_name, key_value) { if (sort_descending === undefined) { sort_descending = true; } var v2 = com.newgrounds.API.getSaveGroup(group_name); if (!v2) { var v3 = new com.newgrounds.APIError('QUERY_INCOMPLETE', 'The query could not be preformed, check the spelling of your save group name.'); com.newgrounds.API.sendError({'command_id': 'loadFilesByDate'}, v3); return undefined; } var v1 = new com.newgrounds.SaveGroupQuery(v2); if (key_name) { v1.addKeyCondition(key_name, '=', key_value); } v1.sortOn('CREATED_ON', sort_descending ? 'DESC' : 'ASC'); v1.execute(); }; v1.loadFilesByViews = function (group_name, sort_descending, key_name, key_value) { if (sort_descending === undefined) { sort_descending = true; } var v2 = com.newgrounds.API.getSaveGroup(group_name); if (!v2) { var v3 = new com.newgrounds.APIError('QUERY_INCOMPLETE', 'The query could not be preformed, check the spelling of your save group name.'); com.newgrounds.API.sendError({'command_id': 'loadFilesByViews'}, v3); return undefined; } var v1 = new com.newgrounds.SaveGroupQuery(v2); if (key_name) { v1.addKeyCondition(key_name, '=', key_value); } v1.sortOn('TOTAL_VIEWS', sort_descending ? 'DESC' : 'ASC'); v1.execute(); }; v1.loadFilesByRating = function (group_name, rating_name, sort_descending, key_name, key_value) { if (sort_descending === undefined) { sort_descending = true; } var v2 = com.newgrounds.API.getSaveGroup(group_name); if (!v2) { var v3 = new com.newgrounds.APIError('QUERY_INCOMPLETE', 'The query could not be preformed, check the spelling of your save group name.'); com.newgrounds.API.sendError({'command_id': 'loadFilesByRating'}, v3); return undefined; } var v1 = new com.newgrounds.SaveGroupQuery(v2); if (key_name) { v1.addKeyCondition(key_name, '=', key_value); } v1.sortOnRating(rating_name, sort_descending ? 'DESC' : 'ASC', 'score'); v1.execute(); }; v1.lookupSaveFiles = function (save_group) { var v1 = 'lookupSaveFiles'; var v2 = {'publisher_id': com.newgrounds.API.publisher_id, 'group_id': save_group.getID(), 'query': com.newgrounds.encoders.JSON.encode(save_group.getQuery(true))}; com.newgrounds.API.sendCommand(v1, v2); }; v1.newSaveFile = function (group) { var v1 = com.newgrounds.API.getSaveGroup(group); if (v1) { return v1.newFile(); } else { var v2 = new com.newgrounds.APIError('INVALID_SAVE_GROUP', 'You can not create new files in invalid groups.'); com.newgrounds.API.sendError({'command_id': 'newSaveFile'}, v2); } }; v1.newSaveQuery = function (group) { var v1 = com.newgrounds.API.getSaveGroup(group); if (v1) { return v1.newQuery(); } else { var v2 = new com.newgrounds.APIError('INVALID_SAVE_GROUP', '\'' + group + '\' is not a valid save group.'); com.newgrounds.API.sendError({'command_id': 'newSaveQuery'}, v2); } }; v1.checkFilePrivs = function (file) { if (com.newgrounds.API.user_id) { var v1 = com.newgrounds.API.user_id; } else { var v1 = 0; } var v2 = {'group': (file.getGroup()).getID(), 'filename': file.getName(), 'user_id': v1, 'publisher_id': com.newgrounds.API.publisher_id}; com.newgrounds.API.sendCommand('checkFilePrivs', v2); }; v1.saveFile = function (file, overwrite) { var v1; v1 = {'group': (file.getGroup()).getID(), 'filename': file.getName(), 'description': file.getDescription(), 'draft': file.__get__draft(), 'user_name': com.newgrounds.API.user_name}; if (overwrite) { v1.overwrite = overwrite; } if (file.getDuplicateID()) { v1.save_id = file.getDuplicateID(); } if ((file.getKeys()).length > 0) { v1.keys = file.getKeys(); } var v3; v3 = {'file': file.getRawContents()}; if (file.getThumbnailImageScan()) { v3.thumbnail = file.getThumbnailImageScan(); } com.newgrounds.API.save_file = file; com.newgrounds.API.sendSecureCommand('saveFile', v1, null, v3); }; v1.rateSaveFile = function (file, rating, vote) { var v1 = {'group': (file.getGroup()).getID(), 'save_id': file.getID(), 'rating_id': rating.rating_id, 'vote': vote, 'user_id': com.newgrounds.API.user_id}; com.newgrounds.API.sendSecureCommand('rateSaveFile', v1); }; v1.getConfirmation = function (command_name, event, msg, target, confirm, cancel) { var v1 = new com.newgrounds.APIError('CONFIRM_REQUEST', msg); v1.confirm = function () { target[confirm](); }; v1.cancel = function () { target[cancel](); }; v1.command = command_name; com.newgrounds.API.callListener(event, false, v1); }; v1.onRemoteAuthentication = function (auth_result) { var v1 = com.newgrounds.encoders.JSON.decode(com.newgrounds.encoders.RC4.decrypt(auth_result, com.newgrounds.API.encryption_key)); delete com.newgrounds.API.remote_auth; com.newgrounds.API.user_id = v1.NewgroundsAPI_UserID; com.newgrounds.API.user_name = v1.NewgroundsAPI_UserName; com.newgrounds.API.session_id = v1.NewgroundsAPI_SessionID; com.newgrounds.API.publisher_id = v1.NewgroundsAPI_PublisherID; }; v1.doEvent = function (e) { switch (e.command_id) { case 'connectMovie': clearInterval(com.newgrounds.API.timeout); com.newgrounds.API.sendMessage('You have successfully connected to the Newgrounds API Gateway'); com.newgrounds.API.sendMessage('Movie identified as "' + e.movie_name + '"'); com.newgrounds.API.callListener(com.newgrounds.APIEvent.API_CONNECTED, e.success, {'title': e.movie_name}); var v7 = false; if (e.ad_status === -1) { var v11 = 'This movie was not approved to run Flash Ads.'; com.newgrounds.API.sendWarning(v11); com.newgrounds.API.sendWarning('visit ' + com.newgrounds.API.AD_TERMS_URL + ' to view our approval guidelines'); if (!e.ad_url) { com.newgrounds.API.callListener(com.newgrounds.APIEvent.ADS_APPROVED, false, new com.newgrounds.APIError('FLASH_ADS_NOT_APPROVED', v11)); } else { v7 = true; } } else { if (e.ad_status === 0) { var v11 = 'Flash Ads are currently awaiting approval.'; com.newgrounds.API.sendNotice(v11); if (!e.ad_url) { com.newgrounds.API.callListener(com.newgrounds.APIEvent.ADS_APPROVED, false, new com.newgrounds.APIError('FLASH_ADS_NOT_APPROVED', v11)); } else { v7 = true; } } } if (e.ad_url) { com.newgrounds.API.ad_url = unescape(e.ad_url); if (!v7) { com.newgrounds.API.sendMessage('This movie has been approved to run Flash Ads!'); } com.newgrounds.API.callListener(com.newgrounds.APIEvent.ADS_APPROVED, true); } if (e.deny_host) { v11 = com.newgrounds.API.getHost() + ' does not have permission to run this movie!'; com.newgrounds.API.sendWarning(v11); com.newgrounds.API.sendWarning('\tUpdate your API configuration to unblock ' + com.newgrounds.API.getHost()); com.newgrounds.API.callListener(com.newgrounds.APIEvent.HOST_BLOCKED, true, {'real_url': unescape(e.movie_url), 'url': com.newgrounds.API.getOfficialURL()}); } else { if (e.movie_version) { com.newgrounds.API.sendWarning('According to your API Configuration, this version is out of date.'); if (com.newgrounds.API.version) { com.newgrounds.API.sendWarning('\tThe this movie is version ' + com.newgrounds.API.version); } com.newgrounds.API.sendWarning('\tThe most current version is ' + e.movie_version); com.newgrounds.API.callListener(com.newgrounds.APIEvent.NEW_VERSION_AVAILABLE, true, {'version': e.movie_version, 'real_url': unescape(e.movie_url), 'url': com.newgrounds.API.getOfficialURL()}); } } if (e.request_portal_url) { com.newgrounds.API.sendCommand('setPortalID', {'portal_url': _url}); } if (com.newgrounds.API.preload) { com.newgrounds.API.reportNewAsset(); var v8 = {}; if (com.newgrounds.API.hasUserSession()) { v8.publisher_id = com.newgrounds.API.publisher_id; v8.user_id = com.newgrounds.API.user_id; } com.newgrounds.API.sendCommand('preloadSettings', v8); } com.newgrounds.API.reportAssetLoaded(); break; case 'preloadSettings': if (e.medals) { com.newgrounds.API.populateMedals(e.medals); if (!com.newgrounds.API.hasUserSession() and !com.newgrounds.API.debug) { com.newgrounds.API.echo('checking for sharedobject medals...'); var v4 = com.newgrounds.API.loadLocal('medals_unlocked'); if (v4) { for (var v32 in v4) { v32 = Number(v32); if (v4[v32]) { var v3 = com.newgrounds.API.getMedal(v32); com.newgrounds.API.echo('now unlocking ' + v3.getName()); v3.setUnlocked(true); } } } } } if (e.save_groups) { com.newgrounds.API.populateSaveGroups(e.save_groups, e.save_file_path); } if (e.score_boards) { com.newgrounds.API.populateScoreBoards(e.score_boards); } if (_root.NewgroundsAPI_SaveFileID && _root.NewgroundsAPI_SaveGroupID) { com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_REQUESTED, true, {'save_id': _root.NewgroundsAPI_SaveFileID, 'group': com.newgrounds.API.getSaveGroup(_root.NewgroundsAPI_SaveGroupID)}); } com.newgrounds.API.callListener(com.newgrounds.APIEvent.METADATA_LOADED, true); com.newgrounds.API.reportAssetLoaded(); break; case 'logCustomEvent': if (e.success) { com.newgrounds.API.sendMessage('Event \'' + e.event + '\' was logged.'); } com.newgrounds.API.callListener(com.newgrounds.APIEvent.EVENT_LOGGED, e.success, {'event': e.event}); break; case 'postScore': var v9; if (e.success) { var v5 = 'User'; if (com.newgrounds.API.user_email) { v5 = com.newgrounds.API.user_email; } else { if (com.newgrounds.API.user_name) { v5 = com.newgrounds.API.user_name; } } var v19 = com.newgrounds.API.getScoreBoard(e.board); com.newgrounds.API.sendMessage(v5 + ' posted ' + e.value + ' to \'' + v19.name + '\''); v9 = {'board': v19, 'value': e.value, 'username': v5}; } com.newgrounds.API.callListener(com.newgrounds.APIEvent.SCORE_POSTED, e.success, v9); break; case 'loadScores': var v9 = new Object(); var v19 = com.newgrounds.API.getScoreBoard(e.board); if (v19.exists()) { v19.setScores(e.scores, e.period, e.page, e.num_results); } com.newgrounds.API.callListener(com.newgrounds.APIEvent.SCORES_LOADED, e.success, {'board': v19}); break; case 'unlockMedal': var v24 = com.newgrounds.API.getMedal(e.medal_name); v24.setUnlocked(true); com.newgrounds.API.sendMessage('Successfuly unlocked \'' + v24.getName() + '\''); com.newgrounds.API.callListener(com.newgrounds.APIEvent.MEDAL_UNLOCKED, e.success, {'medal_id': v24.id, 'medal': v24}); break; case 'getMedals': com.newgrounds.API.populateMedals(e.medals); com.newgrounds.API.callListener(com.newgrounds.APIEvent.MEDALS_LOADED, e.success, {'medals': com.newgrounds.API.medals}); break; case 'loadSaveFile': var v16 = com.newgrounds.API.getSaveGroup(e.group_id); var v14 = new com.newgrounds.SaveFile(v16); v14.id = e.file.save_id; v14.name = e.file.filename; v14.fileUrl = e.file.file; v14.thumbnailUrl = e.file.thumb; v14.authorName = e.file.user_name; v14.authorId = e.file.user_id; v14.description = e.file.description; v14.setPermissions(e.file.status, e.file.locked); for (var v6 in e.file.keys) { v14.setKey(e.file.keys[v6].id, e.file.keys[v6].value); } for (v6 in e.file.ratings) { v14.setRating(e.file.ratings[v6].id, e.file.ratings[v6].votes, e.file.ratings[v6].score); } if (e.get_contents) { v14.loadContents(); } com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_INITIALIZED, e.success, {'save_id': v14.id, 'file': v14}); com.newgrounds.API.save_file = v14; break; case 'lookupSaveFiles': var v12 = (com.newgrounds.API.getSaveGroup(e.group_id)).getQuery(); v12.onExecuted(e.files); break; case 'rateSaveFile': var v16 = com.newgrounds.API.getSaveGroup(e.group_id); var v14 = v16.getFile(e.save_id); if (e.already_voted) { var v27 = new com.newgrounds.APIError('PERMISSION_DENIED', 'You have already voted on this item today'); com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, false, {'error': v27, 'file': v14, 'save_id': v14.id}); return undefined; } else { if (e.success) { var v10 = v14.onVoted(e); com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, e.success, {'rating': v10, 'file': v14, 'save_id': v14.id}); } else { com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, e.success, {'file': v14, 'save_id': v14.id}); com.newgrounds.API.sendError('Your vote was not accepted.'); } } break; case 'saveFile': if (com.newgrounds.API.save_file) { if (!com.newgrounds.API.save_file.exists()) { com.newgrounds.API.save_file.setID(e.save_id, true); } com.newgrounds.API.save_file.onSaved(e); com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_SAVED, e.success, {'save_id': com.newgrounds.API.save_file.__get__id(), 'file': com.newgrounds.API.save_file}); if (e.success) { com.newgrounds.API.sendMessage('You just saved a new file (id #' + e.save_id + ') to the \'' + (com.newgrounds.API.save_file.__get__group()).__get__name() + '\' save group.'); } } com.newgrounds.API.save_file = null; break; case 'checkFilePrivs': var v9 = {'file': com.newgrounds.API.save_file, 'filename': e.filename, 'group': e.group, 'exists': e.exists, 'can_write': e.can_write}; if (e.duplicate_id) { v9.duplicate_id = e.duplicate_id; } if (!e.success) { com.newgrounds.API.sendWarning('You do not have permission to save this file!'); } com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_PRIVS_LOADED, e.success, v9); } }; v1.getDispatcher = function () { if (!com.newgrounds.API.eventDispatcher) { com.newgrounds.API.eventDispatcher = new com.newgrounds.APIEventDispatcher(); } return com.newgrounds.API.eventDispatcher; }; v1.hasEventListener = function (event) { return (com.newgrounds.API.getDispatcher()).hasEventListener(event); }; v1.addEventListener = function (event, listener, target) { com.newgrounds.API.echo('Adding a listener for \'' + event + '\''); (com.newgrounds.API.getDispatcher()).addEventListener(event, listener, target); }; v1.removeEventListener = function (event, target) { (com.newgrounds.API.getDispatcher()).removeEventListener(event, target); }; v1.callListener = function (event, success, data, target) { com.newgrounds.API.echo('Fired Event: ' + event); var v2 = new com.newgrounds.APIEvent(event, success, data); (com.newgrounds.API.getDispatcher()).dispatchEvent(v2); if (event == com.newgrounds.APIEvent.API_CONNECTED && !success) { com.newgrounds.API.connected = false; } com.newgrounds.API.bridge.sendEvent(event, {'success': success, 'data': data}); }; v1.sendError = function (c, e) { switch (c.command_id) { case 'connectMovie': clearInterval(com.newgrounds.API.timeout); com.newgrounds.API.callListener(com.newgrounds.APIEvent.API_CONNECTED, false, {'error': e, 'response': c}); break; case 'saveFile': com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_SAVED, false, {'error': e, 'file': com.newgrounds.API.save_file, 'response': c}); com.newgrounds.API.save_file = null; } var v3 = '[Newgrounds API ERROR] :: ' + c.command_id + '() - ' + e.name + ':' + '\n' + '\t\t\t\t' + e.message; trace(v3); com.newgrounds.API.bridge.sendEvent('trace', {'data': v3}); }; v1.sendWarning = function (m, c) { if (c) { m += '\r[Newgrounds API WARNING] :: \tSee ' + com.newgrounds.API.COMMANDS_WIKI_URL + c.toLowerCase() + ' for additional information.'; } var v1 = '[Newgrounds API WARNING] :: ' + m; trace(v1); com.newgrounds.API.bridge.sendEvent('trace', {'data': v1}); }; v1.sendNotice = function (m, c) { if (c) { m += '\r[Newgrounds API NOTICE] :: \tSee ' + com.newgrounds.API.COMMANDS_WIKI_URL + c.toLowerCase() + ' for additional information.'; } trace('[Newgrounds API NOTICE] :: ' + m); }; v1.fatalError = function (m, c) { if (c) { m += '\r\tSee ' + com.newgrounds.API.COMMANDS_WIKI_URL + c.toLowerCase() + ' for additional information.'; } throw '***ERROR*** frame=' + _root._currentframe + ', class=API' + '\n' + '\n' + m; }; v1.openLoginPage = function () { if (com.newgrounds.API.hasUserSession()) { return undefined; } if (!com.newgrounds.API.remote_auth) { var v1 = com.newgrounds.encoders.MD5.calculate(Math.random() + 'a' + com.newgrounds.API.movie_id); v1 = 'POOPYPANTS'; com.newgrounds.API.remote_auth = new com.newgrounds.RemoteAuth(v1); } var v2 = com.newgrounds.encoders.RC4.encrypt(com.newgrounds.API.remote_auth.__get__token(), com.newgrounds.API.encryption_key); trace(v2); getURL(com.newgrounds.API.LOGIN_URL + '?api_auth_id=' + com.newgrounds.API.movie_id + '&api_auth_key=' + v2, '_blank'); }; v1.sendSecureCommand = function (command, secure_params, unsecure_params, files) { if (!com.newgrounds.API.debug && !com.newgrounds.API.hasUserSession() && !com.newgrounds.API.hasUserEmail()) { com.newgrounds.API.sendError({'command_id': command}, new com.newgrounds.APIError('IDENTIFICATION_REQUIRED', 'You must be logged in, or provide an e-mail address using \'API.setUserEmail("name@domain.com");\' to use ' + command + '().')); return undefined; } if (!command) { com.newgrounds.API.fatalError('Missing command', 'sendSecureCommand'); } if (!secure_params) { com.newgrounds.API.fatalError('Missing secure_params', 'sendSecureCommand'); } if (!unsecure_params) { unsecure_params = new Object(); } var v2 = ''; var v1 = 0; while (v1 < 16) { v2 += com.newgrounds.API.compression_radix.charAt(Math.floor(Math.random() * com.newgrounds.API.compression_radix.length)); ++v1; } if (com.newgrounds.API.debug && !com.newgrounds.API.fake_session && !com.newgrounds.API.session_id) { secure_params.session_id = ''; } else { secure_params.session_id = com.newgrounds.API.session_id; } secure_params.as_version = 2; secure_params.user_email = com.newgrounds.API.user_email; secure_params.publisher_id = com.newgrounds.API.publisher_id; secure_params.seed = v2; secure_params.command_id = command; var v6 = com.newgrounds.encoders.JSON.encode(secure_params); trace('JSON: ' + v6 + '\n'); var v9 = com.newgrounds.encoders.MD5.calculate(v2); var v7 = com.newgrounds.encoders.RC4.encrypt(v6, com.newgrounds.API.encryption_key); var v8 = v9 + v7; unsecure_params.secure = com.newgrounds.API.compressHex(v8); com.newgrounds.API.sendCommand('securePacket', unsecure_params, false, files); }; v1.sendCommand = function (command, params, open_browser, files) { if (!com.newgrounds.API.connected and command != 'connectMovie') { var v12 = 'API.' + command + '() - API.connect() must be called before this command can be called' + '\n'; com.newgrounds.API.fatalError(v12, 'connect'); } if (open_browser) { var v2 = new Object(); } else { var v2 = new LoadVars(); } v2.command_id = command; v2.tracker_id = com.newgrounds.API.movie_id; if (com.newgrounds.API.debug) { v2.debug = com.newgrounds.API.debug; } if (params) { for (var v9 in params) { v2[v9] = params[v9]; } } if (files) { for (v9 in files) { v2[v9] = files[v9]; } } if (open_browser) { var v6 = com.newgrounds.API.GATEWAY_URL + '?seed=' + Math.random(); for (v9 in v2) { v6 += '&' + escape(v9) + '=' + escape(v2[v9]); } trace('OPENING ' + v6); getURL(v6, '_blank'); v2.removeMovieClip(); } else { var v10 = new LoadVars(); v10.remember_command_id = v2.command_id; v10.onData = function (data) { com.newgrounds.API.echo('INPUT: \r' + data + '\n'); if (data) { var v2 = com.newgrounds.encoders.JSON.decode(data); } else { var v2 = {'success': false}; } if (!v2.success) { if (!v2.error_code && !v2.error_msg) { v2.error_code = 'CONNECTION_FAILED'; v2.error_msg = 'Could not contact the API Gateway'; v2.command_id = this.remember_command_id; } var v4 = new com.newgrounds.APIError(v2.error_code, v2.error_msg); com.newgrounds.API.sendError(v2, v4); } else { com.newgrounds.API.doEvent(v2); } }; var v7 = new Array(); for (var v8 in v2) { v7.push(v8 + '=' + escape(v2[v8])); } com.newgrounds.API.echo('POST ' + com.newgrounds.API.GATEWAY_URL + '?' + v7.join('&')); v2.sendAndLoad(com.newgrounds.API.GATEWAY_URL + '?seed=' + Math.random(), v10, 'POST'); com.newgrounds.API.last_command = v2.command_id; } }; v1.renderAd = function (target) { if (com.newgrounds.API.ad_swf_url) { target.background = target.createEmptyMovieClip('background', 100); target.background.beginFill(0); target.background.moveTo(0, 0); target.background.lineTo(300, 0); target.background.lineTo(300, 250); target.background.lineTo(0, 250); target.background.lineTo(0, 0); target.background.endFill(); target.mask = target.createEmptyMovieClip('mask', 101); target.mask.beginFill(0); target.mask.moveTo(0, 0); target.mask.lineTo(300, 0); target.mask.lineTo(300, 250); target.mask.lineTo(0, 250); target.mask.lineTo(0, 0); target.mask.endFill(); target.clip = target.createEmptyMovieClip('clip', 102); target.clip.ad = target.clip.createEmptyMovieClip('ad', 100); target.clip.setMask(target.mask); target.clip.ad._lockroot = true; loadMovie(com.newgrounds.API.ad_swf_url, target.clip.ad); com.newgrounds.API.callListener(com.newgrounds.APIEvent.AD_ATTACHED, true, {'target': target}); } else { com.newgrounds.API.callListener(com.newgrounds.APIEvent.AD_ATTACHED, false, new com.newgrounds.APIError('FLASH_ADS_NOT_APPROVED', 'Unable to render ad')); } }; v1.attachFlashAd = function (target) { if (com.newgrounds.API.checkAdFlood()) { com.newgrounds.API.ad_swf_url = null; } else { if (com.newgrounds.API.checkAdCache()) { com.newgrounds.API.reportNewAsset(); var v1 = new LoadVars(); v1.onData = function (data) { if (data) { com.newgrounds.API.ad_swf_url = data; } else { com.newgrounds.API.ad_swf_url = null; } com.newgrounds.API.reportAssetLoaded(); com.newgrounds.API.renderAd(target); }; if (com.newgrounds.API.ad_url.indexOf('?') > -1) { v1.load(com.newgrounds.API.ad_url + '&random=' + Math.random()); } else { v1.load(com.newgrounds.API.ad_url + '?random=' + Math.random()); } if (!com.newgrounds.API.ad_warning) { com.newgrounds.API.ad_warning = true; com.newgrounds.API.sendMessage('You may get a security sandbox violation from this ad. This is nothing to worry about!'); } } else { if (com.newgrounds.API.ad_swf_url) { com.newgrounds.API.renderAd(target); } } } }; v1.checkAdFlood = function () { if (!com.newgrounds.API.ad_url) { return false; } var v2 = new Date(); var v1 = v2.getTime(); if (v1 >= com.newgrounds.API.ad_flood) { if (v1 - com.newgrounds.API.ad_flood > 1000) { com.newgrounds.API.ad_flood = v1 + 1000; return false; } com.newgrounds.API.ad_flood = v1; com.newgrounds.API.sendWarning('This movie is attempting to load multiple ads at too high of a frequency; you may have a bad preloader loop.'); return true; } return false; }; v1.checkAdCache = function () { if (!com.newgrounds.API.ad_url) { return false; } var v2 = new Date(); var v1 = v2.getTime(); if (v1 >= com.newgrounds.API.ad_url_cache) { com.newgrounds.API.ad_url_cache = v1 + 300000; return true; } return false; }; v1.sendMessage = function (m, r) { var v1 = '[Newgrounds API] :: ' + m; if (r) { return v1; } else { trace(v1); com.newgrounds.API.bridge.sendEvent('trace', {'data': v1}); } }; v1.echo = function (m) { if (com.newgrounds.API.do_echo) { trace(m); } }; v1.LOGIN_URL = 'http://ng-local.newgrounds.com/apilogin/'; v1.do_echo = true; v1.GATEWAY_URL = 'http://www.ngads.com/gateway_v2.php'; v1.NEWGROUNDS_PREVIEW = 'uploads.ungrounded.net/previews'; v1.AD_TERMS_URL = 'http://www.newgrounds.com/wiki/using-the-site/terms-of-use/flash-ads/'; v1.COMMANDS_WIKI_URL = 'http://www.newgrounds.com/wiki/developer-resources/flash-api/commands/'; v1.LOCAL_HOST = 'localhost'; v1.NEWGROUNDS_WWW = 'www.newgrounds.com'; v1.PREVIEW_HOSTS = new Array(com.newgrounds.API.LOCAL_HOST, com.newgrounds.API.NEWGROUNDS_PREVIEW); v1.ad_url_cache = 0; v1.ad_flood = 0; v1.ad_warning = false; v1.save_file = null; v1.publisher_id = 1; v1.fake_session = false; v1.medals = null; v1.userpage_format = null; v1.scoreboards = new Array(); v1.save_groups = null; v1.compression_radix = '/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X'; v1.errors = com.newgrounds.APIError.init_codes(); v1.sharedObjects = new Object(); v1.bridge = new com.newgrounds.Bridge(_root.NewgroundsAPI_SandboxID); v1.preload = true; v1.preload_items = 0; v1.preload_items_loaded = 0; ASSetPropFlags(com.newgrounds.API.prototype, null, 1); } #endinitclip } movieClip 314 __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 315 __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 316 __Packages.com.newgrounds.SaveGroup { #initclip label -29747: label -15570: label -14936: label -12734: Unknown action: 0xfc function () {  = (562 % 511) * true; if (!'') { } else {} return ; } var  = 739 + (); for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { for (;;) { if ( == 790) {  -= 104; true; } if ( == 94) {  += 589; for (;;) { if ( != 608) break;  += 221; if ( == 419) {  += 573; } if ( == 920) {  -= 167; } if ( != 20) break;  += 932; goto -29747; if ( == 690) {  -= 82; } if ( == 864) {  -= 683; } if ( != 533) break;  += 387; goto 1398; label 1398: if ( == 502) {  += 31; } if ( == 284) {  += 580; } if ( != 429) goto 1554;  += 254; label 1554:  -= 98; var eval(true ::: !true) =  != 181;  -= 491; continue; break;  -= 488; goto -15570;  -= 344;  += 690; for (;;) {  -= 271;  -= 57; }  += 303; for (;;) { goto -14936;  += 718;  -= 560; }  -= 262; for (;;) {  += 74;  += 274; for (;;) {  -= 972;  -= 644; } }  -= 272;  += 578; goto -12734; } ; true; } } } } } } } } } } } } } } } } } } } } } } } } } } } } } #endinitclip } movieClip 319 __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 321 __Packages.com.newgrounds.encoders.ImageScanner { #initclip if (!_global.com) { _global.com = new Object(); } if (!_global.com.newgrounds) { _global.com.newgrounds = new Object(); } if (!_global.com.newgrounds.encoders) { _global.com.newgrounds.encoders = new Object(); } if (!_global.com.newgrounds.encoders.ImageScanner) { var v1 = function (the_source) { if (the_source) { this.image_source = the_source; } else { this.image_source = _root; } this.reset(); if (typeof this.image_source == 'movieclip') { if (this.image_source == _root) { this.source_width = Stage.width; this.source_height = Stage.height; } else { this.source_width = Math.floor(this.image_source._width); this.source_height = Math.floor(this.image_source._height); } this.sourceBitmap = new flash.display.BitmapData(this.source_width, this.source_height, false, 4294967295.0); this.sourceBitmap.draw(_root); } else { if (this.image_source.width) { this.source_width = this.image_source.width; this.source_height = this.image_source.height; this.sourceBitmap = this.image_source; } else { this.error('You can only use BitMaptData and MovieClip objects to create images'); } } }; com.newgrounds.encoders.ImageScanner = v1; var v2 = v1.prototype; v2.setCallback = function (target, funct) { if (target && funct) { this.callback_target = target; this.callback_function = funct; } }; v2.reset = function () { this.callback_target = null; this.callback_function = null; this.debug.bad_pixels = 0; this.hash = '0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ<>?:;-_=+()!&'; var v3 = Math.pow(this.hash.length, 2); trace('MAX COLORS: ' + v3); var v2 = Math.floor(Math.pow(v3, 0.3333333333333333)) - 1; var v4 = Math.pow(v2, 3); this.cube = v2; this.basen = new com.newgrounds.encoders.BaseN(this.hash); this.xpos = 0; this.ypos = 0; this.pixels = 0; this.busy = false; }; v2.startScan = function (w, h, s) { if (w) { this.image_width = w; } if (h) { this.image_height = h; } if (s != undefined) { this.crop = s; } var v7 = _root.getNextHighestDepth(); var v6 = _root.createEmptyMovieClip('API_image_container_' + v7, v7); var v5 = v6.createEmptyMovieClip('canvas', 100); v5.attachBitmap(this.sourceBitmap, 100); if (this.crop) { if (this.image_width / this.source_width > this.image_height / this.source_height) { this.canvas_width = this.image_width; this.canvas_height = Math.ceil(this.source_height * (this.image_width / this.source_width)); } else { this.canvas_height = this.image_height; this.canvas_width = Math.ceil(this.source_width * (this.image_height / this.source_height)); } } else { this.canvas_width = this.image_width; this.canvas_height = this.image_height; } v5._x = Math.round((this.image_width - this.canvas_width) / 2); v5._width = this.canvas_width; v5._height = this.canvas_height; this.resizedBitmap = new flash.display.BitmapData(this.image_width, this.image_height, false, 4294967295.0); this.resizedBitmap.draw(v6); v6.removeMovieClip(); this.copyBitmap = new flash.display.BitmapData(this.image_width, this.image_height, false, 4294967295.0); var v3 = '' + this.image_width; while (v3.length < 3) { v3 = '0' + v3; } var v4 = '' + this.image_height; while (v4.length < 3) { v4 = '0' + v4; } this.output = v3 + v4; this.draw_interval = setInterval(this, 'drawChunk', 10); this.busy = false; return this.resizedBitmap; }; v2.getBitmapData = function () { return this.copyBitmap; }; v2.getBytesTotal = function () { return this.image_width * this.image_height * 2; }; v2.getBytesScanned = function () { return this.pixels * 2; }; v2.getProgress = function () { return Math.round((this.getBytesScanned() / this.getBytesTotal()) * 100); }; v2.drawChunk = function () { if (!this.busy) { this.busy = true; var v2 = 0; while (v2 < this.pixels_per_chunk) { if (!this.nextPixel()) { clearInterval(this.draw_interval); this.callback_interval = setInterval(this, 'doCallback', 25); this.busy = true; break; } ++v2; } this.busy = false; } }; v2.doCallback = function () { this.busy = false; clearInterval(this.callback_interval); if (this.callback_target and this.callback_function) { this.callback_target[this.callback_function](this.output); } else { this.onScanComplete(this.output); } }; v2.onScanComplete = function (packet) { this.sendMessage('packet size: ' + this.output.length + ' bytes', 'onScanComplete'); }; v2.nextPixel = function () { var v15 = this.xpos; var v14 = this.ypos; var v7 = this.resizedBitmap.getPixel(v15, v14); var v17 = v7 >> 16 & 255; var v20 = v7 >> 8 & 255; var v16 = v7 >> 0 & 255; var v11 = Math.round(((v17 + 1) / 256) * this.cube); var v10 = Math.round(((v20 + 1) / 256) * this.cube); var v13 = Math.round(((v16 + 1) / 256) * this.cube); var v12 = v11 * (this.cube + 1) * (this.cube + 1) + v10 * (this.cube + 1) + v13; var v6 = this.basen.encode(v12, 2); this.output += v6; if (v6.length != 2) { trace('bad pixel ' + v6); } var v5 = this.basen.decode(v6); var v18 = v5; var v8 = v5 % (this.cube + 1); v5 = (v5 - v8) / (this.cube + 1); var v9 = v5 % (this.cube + 1); var v19 = (v5 - v9) / (this.cube + 1); if (v13 != v8 and v10 != v9 and v11 != v10) { ++this.debug.bad_pixels; trace('BAD PIXEL ' + this.debug.bad_pixels + ') ' + v12 + ' != ' + v18 + ' ' + v6); trace(this.basen.debug.lastencode); } var v2 = (Math.round((v19 / this.cube) * 255)).toString(16); var v4 = (Math.round((v9 / this.cube) * 255)).toString(16); var v3 = (Math.round((v8 / this.cube) * 255)).toString(16); while (v2.length < 2) { v2 = '0' + v2; } while (v4.length < 2) { v4 = '0' + v4; } while (v3.length < 2) { v3 = '0' + v3; } this.copyBitmap.setPixel(v15, v14, Number('0x' + v2 + v4 + v3)); ++this.pixels; if (this.pixels >= this.image_width * this.image_height) { return false; } ++this.xpos; if (this.xpos >= this.image_width) { this.xpos = 0; ++this.ypos; } return true; }; v2.error = function (e, f) { this.sendMessage(e, f, 'ERROR'); }; v2.sendMessage = function (msg, func, type) { var v1 = 'ImageScanner'; if (func) { v1 += '.' + func + '()'; } if (type) { v1 = type + ' in ' + v1; } v1 += ' :: ' + msg; trace(v1); }; v2.image_width = 100; v2.image_height = 100; v2.crop = true; v2.pixels_per_chunk = 500; v2.debug = new Object(); ASSetPropFlags(com.newgrounds.encoders.ImageScanner.prototype, null, 1); } #endinitclip } movieClip 320 __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);




http://swfchan.com/19/90226/info.shtml
Created: 28/3 -2019 13:41:02 Last modified: 28/3 -2019 13:41:02 Server time: 13/05 -2024 01:53:21