public function recordinput(key:KeyPoll, dwgfx:dwgraphicsclass, game:gameclass, map:mapclass, obj:entityclass, help:helpclass, music:musicclass):void { //record your input and add it to the record string //Keys are: //0 - nothing //1 - left //2 - right //3 - left+right //4 - flip //5 - left+flip //6 - right+flip //7 - left+right+flip //8 - Map/teleport if (!game.recordinit) { //Init recording game.recordinit = true; game.combomode = false; game.comboaction = "x"; game.combolen = 0; game.currentaction = "x"; } game.press_left = false; game.press_right = false; game.press_action = false; game.press_map = false; if (key.isDown(Keyboard.LEFT)) game.press_left = true; if (key.isDown(Keyboard.RIGHT)) game.press_right = true; if (key.isDown(90) || key.isDown(32) || key.isDown(86) || key.isDown(Keyboard.UP) || key.isDown(Keyboard.DOWN)) game.press_action = true; if (key.isDown(Keyboard.ENTER) || key.isDown(Keyboard.BACK)) game.press_map = true; if (game.press_map) { game.currentaction = "8"; }else{ if (game.press_left) { if (game.press_right) { if (game.press_action) { game.currentaction = "7"; }else { game.currentaction = "3"; } }else { if (game.press_action) { game.currentaction = "5"; }else { game.currentaction = "1"; } } }else { if (game.press_right) { if (game.press_action) { game.currentaction = "6"; }else { game.currentaction = "2"; } }else { if (game.press_action) { game.currentaction = "4"; }else { game.currentaction = "0"; } } } } if (game.comboaction != game.currentaction) { //we're doing something different, output and move on if (game.comboaction == "x") { //init game.recordstring += String(game.savex) + "," + String(game.savey) + "," +String(game.saverx) + "," + String(game.savery) +"," + String(game.savegc) + ","; }else{ game.recordstring += String(game.combolen+1) + "," + game.comboaction + ","; } game.combolen = 1; game.comboaction = game.currentaction; }else { //add to the combo! game.combolen++; } if (game.currentaction == "8") { //teleporter - we can't combo this! game.recordstring += "1," + game.currentaction + ","; } gameinput(key, dwgfx, game, map, obj, help, music); } public function titleinput(key:KeyPoll, dwgfx:dwgraphicsclass, map:mapclass, game:gameclass, obj:entityclass, help:helpclass, music:musicclass):void { game.inittouchpoints(key); game.press_left = false; game.press_right = false; game.press_action = false; game.press_map = false; if ((key.isDown(15) || key.isDown(17)) && key.isDown(70) && !game.fullscreentoggleheld) { //Toggle fullscreen game.fullscreentoggleheld = true; if (game.fullscreen) {game.fullscreen = false; }else {game.fullscreen = true;} updategraphicsmode(game, dwgfx); game.savestats(map, dwgfx); } if ((key.isDown(15) || key.isDown(17)) && key.isDown(70)) { game.fullscreentoggleheld = true; }else { game.fullscreentoggleheld = false; } if ((key.isDown(15) || key.isDown(17)) && key.isDown(70)) { game.fullscreentoggleheld = true; }else { game.fullscreentoggleheld = false; } if (dwgfx.flipmode) { if (key.isDown(Keyboard.LEFT) || key.isDown(Keyboard.DOWN) || key.isDown(65) || key.isDown(83)) game.press_left = true; if (key.isDown(Keyboard.RIGHT) || key.isDown(Keyboard.UP) || key.isDown(68) || key.isDown(87)) game.press_right = true; }else{ if (key.isDown(Keyboard.LEFT) || key.isDown(Keyboard.UP) || key.isDown(65) || key.isDown(87)) game.press_left = true; if (key.isDown(Keyboard.RIGHT) || key.isDown(Keyboard.DOWN) || key.isDown(68) || key.isDown(83)) game.press_right = true; } if (key.isDown(90) || key.isDown(32) || key.isDown(86)) game.press_action = true; //|| key.isDown(Keyboard.UP) || key.isDown(Keyboard.DOWN)) game.press_action = true; //on menus, up and down don't work as action if (key.isDown(Keyboard.ENTER) || key.isDown(Keyboard.BACK)) game.press_map = true; game.gettouchpoints_mainmenu(key, dwgfx); //In the menu system, all keypresses are single taps rather than holds. Therefore this test has to be done for all presses if (!game.press_action && !game.press_left && !game.press_right) game.jumpheld = false; if (!game.press_map) game.mapheld = false; if (!game.jumpheld && dwgfx.fademode==0) { if (game.press_action || game.press_left || game.press_right || game.press_map){ game.jumpheld = true; } /* if (game.press_left) { game.mainmenu--; }else if (game.press_right) { game.mainmenu++; } if (game.mainmenu < 0) game.mainmenu = 2; if (game.mainmenu > 2 ) game.mainmenu = 0; */ /* if (game.press_action) { if (!game.menustart) { game.menustart = true; music.play(6); music.playef(18, 10); game.screenshake = 10; game.flashlight = 5; }else{ if(game.mainmenu==0){ dwgfx.fademode = 2; }else if (game.mainmenu == 1) { if (game.telesummary != "") { dwgfx.fademode = 2; } }else if (game.mainmenu == 2) { if (game.quicksummary != "") { dwgfx.fademode = 2; } } } } */ if (key.isDown(27) && game.currentmenuname != "youwannaquit" && game.menustart) { music.playef(11, 10); game.previousmenuname = game.currentmenuname; game.createmenu("youwannaquit"); map.nexttowercolour(); } if(game.menustart){ if (game.press_left) { game.currentmenuoption--; }else if (game.press_right) { game.currentmenuoption++; } } if (game.currentmenuoption < 0) game.currentmenuoption = game.nummenuoptions-1; if (game.currentmenuoption >= game.nummenuoptions ) game.currentmenuoption = 0; if (game.press_action) { if (!game.menustart) { game.menustart = true; music.play(6); music.playef(18, 10); game.screenshake = 10; game.flashlight = 5; map.colstate = 10; map.nexttowercolour(); game.loadstats(map, dwgfx); if (game.slowdown == 0) game.slowdown = 30; //stage.frameRate = game.slowdown; }else{ if (game.currentmenuname == "mainmenu") { if (game.mobilemenu) { if (game.currentmenuoption == 0) { //Play if (game.telesummary == "" && game.quicksummary == "") { //No saves exist, just start a new game game.mainmenu = 0; dwgfx.fademode = 2; }else { //Bring you to the normal playmenu music.playef(11, 10); game.createmenu("play"); map.nexttowercolour(); } }else if (game.currentmenuoption == 1) { /* //Bring you to the normal playmenu music.playef(11, 10); game.createmenu("playerworlds"); map.nexttowercolour(); */ music.playef(11, 10); game.levelpage=0; editor.getDirectoryData(); game.loadcustomlevelstats(); //Should only load a file if it's needed game.createmenu("levellist"); map.nexttowercolour(); /*}else if (game.currentmenuoption == 2) { //Options music.playef(11, 10); game.createmenu("supergravitron"); map.nexttowercolour();*/ }else if (game.currentmenuoption == 2) { //Credits music.playef(11, 10); game.createmenu("options"); map.nexttowercolour(); }else if (game.currentmenuoption == 3) { //Credits music.playef(11, 10); game.createmenu("credits"); map.nexttowercolour(); }else if (game.currentmenuoption == 4) { //More games (external link) music.playef(11, 10); var distractionware_link:URLRequest = new URLRequest( "http://distractionware.com/games/ios/" ); //var distractionware_link:URLRequest = new URLRequest( "http://distractionware.com/games/android/" ); navigateToURL( distractionware_link, "_blank" ); } }else{ if (game.currentmenuoption == 0) { //Play if (game.telesummary == "" && game.quicksummary == "") { //No saves exist, just start a new game game.mainmenu = 0; dwgfx.fademode = 2; }else { //Bring you to the normal playmenu music.playef(11, 10); game.createmenu("play"); map.nexttowercolour(); } /*}else if (game.currentmenuoption == 1) { //Options music.playef(11, 10); game.createmenu("graphicoptions"); map.nexttowercolour(); */ }else if (game.currentmenuoption == 1){ //Bring you to the normal playmenu music.playef(11, 10); game.createmenu("playerworlds"); map.nexttowercolour(); }else if (game.currentmenuoption == 2) { //Options //Options music.playef(11, 10); game.createmenu("graphicoptions"); map.nexttowercolour(); }else if (game.currentmenuoption == 3) { //Options //Options music.playef(11, 10); game.createmenu("options"); map.nexttowercolour(); }else if (game.currentmenuoption == 4) { //Credits //Credits music.playef(11, 10); game.createmenu("credits"); map.nexttowercolour(); }/*else if (game.currentmenuoption == 4) { //bye! music.playef(2, 10); game.mainmenu = 100; dwgfx.fademode = 2; }*/ } }else if(game.currentmenuname=="levellist"){ if(game.currentmenuoption==game.nummenuoptions-1){ //go back to menu music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); }else if(game.currentmenuoption==game.nummenuoptions-2){ //next page music.playef(11, 10); if((game.levelpage*3)+3>=editor.ListOfMetaData.length){ game.levelpage=0; }else{ game.levelpage++; } game.createmenu("levellist"); game.currentmenuoption=game.nummenuoptions-2; map.nexttowercolour(); }else{ //Ok, launch the level! //PLAY CUSTOM LEVEL HOOK music.playef(11, 10); game.playcustomlevel = (game.levelpage * 3) + game.currentmenuoption; game.customleveltitle = editor.ListOfMetaData[game.playcustomlevel].title; game.customlevelfilename = editor.ListOfMetaData[game.playcustomlevel].filename; //DETERMINE IF THERE'S A SAVED GAME HERE /* TiXmlDocument doc((game.saveFilePath+editor.ListOfMetaData[game.playcustomlevel].filename+".vvv").c_str()); if (!doc.LoadFile()){ */ if (game.customcookieexists[game.playcustomlevel]) { music.playef(11, 10); game.createmenu("quickloadlevel"); map.nexttowercolour(); }else { game.showloadingnotice = true; game.mainmenu = 22; dwgfx.fademode = 2; } //}else{ // music.playef(11, 10); // game.createmenu("quickloadlevel"); // map.nexttowercolour(); //} } }else if(game.currentmenuname=="quickloadlevel"){ if (game.currentmenuoption == 0) {//continue save game.showloadingnotice = true; game.mainmenu = 23; dwgfx.fademode = 2; }else if (game.currentmenuoption == 1) { game.showloadingnotice = true; game.mainmenu = 22; dwgfx.fademode = 2; }else if(game.currentmenuoption==2){ music.playef(11, 10); game.levelpage=0; game.createmenu("levellist"); map.nexttowercolour(); } }else if(game.currentmenuname=="playerworlds"){ if(game.currentmenuoption==0){ music.playef(11, 10); game.levelpage=0; editor.getDirectoryData(); game.loadcustomlevelstats(); //Should only load a file if it's needed game.createmenu("levellist"); map.nexttowercolour(); }else if(game.currentmenuoption==1){ //LEVEL EDITOR HOOK music.playef(11, 10); game.mainmenu = 20; dwgfx.fademode = 2; editor.filename=""; }else if(game.currentmenuoption==2){ //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); } }else if(game.currentmenuname=="errornostart"){ music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); }else if (game.currentmenuname == "graphicoptions") { if (game.advanced_mode) { if (game.currentmenuoption == 0) { //toggle fullscreen music.playef(11, 10); if (game.fullscreen) {game.fullscreen = false; }else {game.fullscreen = true;} updategraphicsmode(game, dwgfx); game.savestats(map, dwgfx); game.createmenu("graphicoptions"); }else if (game.currentmenuoption == 1) { //enable acceleration: if in fullscreen, go back to window first music.playef(11, 10); game.advanced_mode = false; if (game.fullscreen) { game.fullscreen = false; updategraphicsmode(game, dwgfx); game.fullscreen = true; } updategraphicsmode(game, dwgfx); game.savestats(map, dwgfx); game.createmenu("graphicoptions"); game.currentmenuoption = 1; }else if (game.currentmenuoption == 2) { //change scaling mode music.playef(11, 10); game.advanced_scaling = (game.advanced_scaling + 1) % 5; updategraphicsmode(game, dwgfx); game.savestats(map, dwgfx); game.createmenu("graphicoptions"); game.currentmenuoption = 2; }else if (game.currentmenuoption == 3) { //change smoothing music.playef(11, 10); game.advanced_smoothing = !game.advanced_smoothing; updategraphicsmode(game, dwgfx); game.savestats(map, dwgfx); game.createmenu("graphicoptions"); game.currentmenuoption = 3; }else{ //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); } }else{ if (game.currentmenuoption == 0) { //toggle fullscreen music.playef(11, 10); if (game.fullscreen) {game.fullscreen = false; }else {game.fullscreen = true;} updategraphicsmode(game, dwgfx); game.savestats(map, dwgfx); game.createmenu("graphicoptions"); }else if (game.currentmenuoption == 1) { //disable acceleration: if in fullscreen, go back to window first music.playef(11, 10); game.advanced_mode = true; if (game.fullscreen) { game.fullscreen = false; updategraphicsmode(game, dwgfx); game.fullscreen = true; } updategraphicsmode(game, dwgfx); game.savestats(map, dwgfx); game.createmenu("graphicoptions"); game.currentmenuoption = 1; }else{ //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); } } }else if (game.currentmenuname == "youwannaquit") { if (game.currentmenuoption == 0) { //bye! music.playef(2, 10); game.mainmenu = 100; dwgfx.fademode = 2; }else{ music.playef(11, 10); game.createmenu(game.previousmenuname); map.nexttowercolour(); } }else if (game.currentmenuname == "setinvincibility") { if (game.currentmenuoption == 0) { //back music.playef(11, 10); game.createmenu("accessibility"); game.currentmenuoption = 2; map.nexttowercolour(); }else { map.invincibility = !map.invincibility; game.deletequick(); game.deletetele(); game.savestats(map, dwgfx); music.playef(11, 10); game.createmenu("accessibility"); game.currentmenuoption = 2; map.nexttowercolour(); } }else if (game.currentmenuname == "setslowdown1") { if (game.currentmenuoption == 0) { //back music.playef(11, 10); game.createmenu("accessibility"); game.currentmenuoption = 3; map.nexttowercolour(); }else { //change game speed game.deletequick(); game.deletetele(); game.createmenu("setslowdown2"); map.nexttowercolour(); music.playef(11, 10); } }else if (game.currentmenuname == "setslowdown2") { if (game.currentmenuoption == 0) { //back //stage.frameRate = 30; game.slowdown = 30; game.savestats(map, dwgfx); music.playef(11, 10); game.createmenu("accessibility"); game.currentmenuoption = 3; map.nexttowercolour(); }else if (game.currentmenuoption == 1) { //stage.frameRate = 24; game.slowdown = 24; game.savestats(map, dwgfx); music.playef(11, 10); game.createmenu("accessibility"); game.currentmenuoption = 3; map.nexttowercolour(); }else if (game.currentmenuoption == 2) { //stage.frameRate = 18; game.slowdown = 18; game.savestats(map, dwgfx); music.playef(11, 10); game.createmenu("accessibility"); game.currentmenuoption = 3; map.nexttowercolour(); }else if (game.currentmenuoption == 3) { //stage.frameRate = 12; game.slowdown = 12; game.savestats(map, dwgfx); music.playef(11, 10); game.createmenu("accessibility"); game.currentmenuoption = 3; map.nexttowercolour(); } }else if (game.currentmenuname == "accessibility") { if (game.currentmenuoption == 0) { //disable animated backgrounds game.colourblindmode = !game.colourblindmode; game.savestats(map, dwgfx); map.tdrawback = true; music.playef(11, 10); }else if (game.currentmenuoption == 1) { //disable screeneffects game.noflashingmode = !game.noflashingmode; game.savestats(map, dwgfx); if (!game.noflashingmode) { music.playef(18, 10); game.screenshake = 10; game.flashlight = 5; } /*}else if (game.currentmenuoption == 2) { //invincibility if (!map.invincibility) { game.createmenu("setinvincibility"); map.nexttowercolour(); }else { map.invincibility = !map.invincibility; } music.playef(11, 10); }else if (game.currentmenuoption == 3) { //change game speed game.createmenu("setslowdown1"); map.nexttowercolour(); music.playef(11, 10); */ }else if (game.currentmenuoption == 2) { //back music.playef(11, 10); game.createmenu("options"); map.nexttowercolour(); }else{ //Can't do yet! play sad sound music.playef(2, 10); } }else if (game.currentmenuname == "options") { if (game.currentmenuoption == 0) { //accessibility options music.playef(11, 10); game.createmenu("accessibility"); map.nexttowercolour(); }else if (game.currentmenuoption == 1) { //unlock play options music.playef(11, 10); game.createmenu("unlockmenu"); map.nexttowercolour(); }else if (game.currentmenuoption == 2) { //clear data menu music.playef(11, 10); game.createmenu("cleardatamenu"); map.nexttowercolour(); }else if (game.currentmenuoption == 3) { //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); }else{ //Can't do yet! play sad sound music.playef(2, 10); } }else if (game.currentmenuname == "unlockmenutrials") { if (game.currentmenuoption == 0) { //unlock 1 if (game.unlock[9]) { game.unlock[9] = false; game.unlocknotify[9] = false; music.playef(11, 10); game.savestats(map, dwgfx); game.createmenu("unlockmenutrials"); game.currentmenuoption = 0; }else{ game.unlock[9] = true; game.unlocknotify[9] = true; music.playef(11, 10); game.savestats(map, dwgfx); game.createmenu("unlockmenutrials"); game.currentmenuoption = 0; } }else if (game.currentmenuoption == 1) { //unlock 2 if (game.unlock[10]) { game.unlock[10] = false; game.unlocknotify[10] = false; music.playef(11, 10); game.savestats(map, dwgfx); game.createmenu("unlockmenutrials"); game.currentmenuoption = 1; }else{ game.unlock[10] = true; game.unlocknotify[10] = true; music.playef(11, 10); game.savestats(map, dwgfx); game.createmenu("unlockmenutrials"); game.currentmenuoption = 1; } }else if (game.currentmenuoption == 2) { //unlock 3 if (game.unlock[11]) { game.unlock[11] = false; game.unlocknotify[11] = false; music.playef(11, 10); game.savestats(map, dwgfx); game.createmenu("unlockmenutrials"); game.currentmenuoption = 2; }else{ game.unlock[11] = true; game.unlocknotify[11] = true; music.playef(11, 10); game.savestats(map, dwgfx); game.createmenu("unlockmenutrials"); game.currentmenuoption = 2; } }else if (game.currentmenuoption == 3) { //unlock 4 if (game.unlock[12]) { game.unlock[12] = false; game.unlocknotify[12] = false; music.playef(11, 10); game.savestats(map, dwgfx); game.createmenu("unlockmenutrials"); game.currentmenuoption = 3; }else{ game.unlock[12] = true; game.unlocknotify[12] = true; music.playef(11, 10); game.savestats(map, dwgfx); game.createmenu("unlockmenutrials"); game.currentmenuoption = 3; } }else if (game.currentmenuoption == 4) { //unlock 5 if (game.unlock[13]) { game.unlock[13] = false; game.unlocknotify[13] = false; music.playef(11, 10); game.savestats(map, dwgfx); game.createmenu("unlockmenutrials"); game.currentmenuoption = 4; }else{ game.unlock[13] = true; game.unlocknotify[13] = true; music.playef(11, 10); game.savestats(map, dwgfx); game.createmenu("unlockmenutrials"); game.currentmenuoption = 4; } }else if (game.currentmenuoption == 5) { //unlock 6 if (game.unlock[14]) { game.unlock[14] = false; game.unlocknotify[14] = false; music.playef(11, 10); game.savestats(map, dwgfx); game.createmenu("unlockmenutrials"); game.currentmenuoption = 5; }else{ game.unlock[14] = true; game.unlocknotify[14] = true; music.playef(11, 10); game.savestats(map, dwgfx); game.createmenu("unlockmenutrials"); game.currentmenuoption = 5; } }else if (game.currentmenuoption == 6) { //back //back music.playef(11, 10); game.createmenu("unlockmenu"); map.nexttowercolour(); } }else if (game.currentmenuname == "unlockmenu") { if (game.currentmenuoption == 0) { //unlock time trials seperately... music.playef(11, 10); game.createmenu("unlockmenutrials"); map.nexttowercolour(); }else if (game.currentmenuoption == 1) { //unlock intermissions if (game.unlock[16]) { music.playef(11, 10); game.unlock[16] = false; game.unlocknotify[16] = false; game.unlock[6] = false; game.unlock[7] = false; game.savestats(map, dwgfx); game.createmenu("unlockmenu"); game.currentmenuoption = 1; }else{ music.playef(11, 10); game.unlock[16] = true; game.unlocknotify[16] = true; game.unlock[6] = true; game.unlock[7] = true; game.savestats(map, dwgfx); game.createmenu("unlockmenu"); game.currentmenuoption = 1; } }else if (game.currentmenuoption == 2) { //unlock no death mode if (game.unlock[17]) { music.playef(11, 10); game.unlock[17] = false; game.unlocknotify[17] = false; game.savestats(map, dwgfx); game.createmenu("unlockmenu"); game.currentmenuoption = 2; }else{ music.playef(11, 10); game.unlock[17] = true; game.unlocknotify[17] = true; game.savestats(map, dwgfx); game.createmenu("unlockmenu"); game.currentmenuoption = 2; } }else if (game.currentmenuoption == 3) { //unlock flip mode if (game.unlock[18]) { music.playef(11, 10); game.unlock[18] = false; game.unlocknotify[18] = false; game.savestats(map, dwgfx); game.createmenu("unlockmenu"); game.currentmenuoption = 3; }else{ music.playef(11, 10); game.unlock[18] = true; game.unlocknotify[18] = true; game.savestats(map, dwgfx); game.createmenu("unlockmenu"); game.currentmenuoption = 3; } }else if (game.currentmenuoption == 4) { //unlock jukebox if (game.stat_trinkets == 20) { music.playef(11, 10); game.stat_trinkets = 0; game.savestats(map, dwgfx); game.createmenu("unlockmenu"); game.currentmenuoption = 4; }else{ music.playef(11, 10); game.stat_trinkets = 20; game.savestats(map, dwgfx); game.createmenu("unlockmenu"); game.currentmenuoption = 4; } }else if (game.currentmenuoption == 5) { //unlock secret lab if (game.unlock[8]) { music.playef(11, 10); game.unlock[8] = false; game.unlocknotify[8] = false; game.savestats(map, dwgfx); game.createmenu("unlockmenu"); game.currentmenuoption = 5; }else { music.playef(11, 10); game.unlock[8] = true; game.unlocknotify[8] = true; game.savestats(map, dwgfx); game.createmenu("unlockmenu"); game.currentmenuoption = 5; } }else{ //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); } }else if (game.currentmenuname == "credits") { if (game.currentmenuoption == 0) { //next page music.playef(11, 10); game.createmenu("credits2"); map.nexttowercolour(); }else{ //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); } }else if (game.currentmenuname == "credits2") { if (game.currentmenuoption == 0) { //next page music.playef(11, 10); game.createmenu("credits3"); map.nexttowercolour(); }else{ //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); } }else if (game.currentmenuname == "credits3") { if (game.currentmenuoption == 0) { //next page music.playef(11, 10); game.createmenu("credits4"); map.nexttowercolour(); }else{ //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); } }else if (game.currentmenuname == "credits4") { if (game.currentmenuoption == 0) { //next page music.playef(11, 10); game.createmenu("credits5"); map.nexttowercolour(); }else{ //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); } }else if (game.currentmenuname == "credits5") { if (game.currentmenuoption == 0) { //next page music.playef(11, 10); game.createmenu("credits6"); map.nexttowercolour(); }else{ //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); } }else if (game.currentmenuname == "credits6") { if (game.currentmenuoption == 0) { //next page music.playef(11, 10); game.createmenu("credits7"); map.nexttowercolour(); }else{ //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); } }else if (game.currentmenuname == "credits7") { if (game.currentmenuoption == 0) { //next page music.playef(11, 10); game.createmenu("credits8"); map.nexttowercolour(); }else{ //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); } }else if (game.currentmenuname == "credits8") { if (game.currentmenuoption == 0) { //next page music.playef(11, 10); game.createmenu("credits9"); map.nexttowercolour(); }else{ //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); } }else if (game.currentmenuname == "credits9") { if (game.currentmenuoption == 0) { //first page music.playef(11, 10); game.createmenu("credits"); map.nexttowercolour(); }else{ //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); music.niceplay(6); } }else if (game.currentmenuname == "play") { if (game.currentmenuoption == 0) { //continue //right, this depends on what saves you've got if (game.telesummary == "") { //You at least have a quicksave, or you couldn't have gotten here game.mainmenu = 2; dwgfx.fademode = 2; }else if (game.quicksummary == "") { //You at least have a telesave, or you couldn't have gotten here game.mainmenu = 1; dwgfx.fademode = 2; }else { //go to a menu! /* music.playef(11, 10); game.loadsummary(map, help); //Prepare save slots to display game.createmenu("continue"); map.settowercolour(3); */ game.mainmenu = 2; dwgfx.fademode = 2; } }else if (game.currentmenuoption == 1) { //play modes music.playef(11, 10); game.createmenu("playmodes"); map.nexttowercolour(); }else if (game.currentmenuoption == 2) { //newgame music.playef(11, 10); game.createmenu("newgamewarning"); map.nexttowercolour(); }else if (game.currentmenuoption == 3) { //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); } }else if (game.currentmenuname == "playsecretlab") { //as above, except with an extra option... if (game.currentmenuoption == 0) { //continue //right, this depends on what saves you've got if (game.telesummary == "") { //You at least have a quicksave, or you couldn't have gotten here game.mainmenu = 2; dwgfx.fademode = 2; }else if (game.quicksummary == "") { //You at least have a telesave, or you couldn't have gotten here game.mainmenu = 1; dwgfx.fademode = 2; }else { //go to a menu! /* music.playef(11, 10); game.loadsummary(map, help); //Prepare save slots to display game.createmenu("continue"); map.settowercolour(3); */ game.mainmenu = 2; dwgfx.fademode = 2; } }else if (game.currentmenuoption == 1) { game.mainmenu = 11; dwgfx.fademode = 2; }else if (game.currentmenuoption == 2) { //play modes music.playef(11, 10); game.createmenu("playmodes"); map.nexttowercolour(); }else if (game.currentmenuoption == 3) { //newgame music.playef(11, 10); game.createmenu("newgamewarning"); map.nexttowercolour(); }else if (game.currentmenuoption == 4) { //back music.playef(11, 10); game.createmenu("mainmenu"); map.nexttowercolour(); } }else if (game.currentmenuname == "newgamewarning") { if (game.currentmenuoption == 0) { //yep game.mainmenu = 0; dwgfx.fademode = 2; game.deletequick(); game.deletetele(); }else{ //back music.playef(11, 10); game.createmenu("play"); map.nexttowercolour(); } }else if (game.currentmenuname == "cleardatamenu") { if (game.currentmenuoption == 0) { //back music.playef(11, 10); game.createmenu("options"); map.nexttowercolour(); }else{ //yep music.playef(23, 10); game.deletequick(); game.deletetele(); game.deletestats(map, dwgfx); game.flashlight = 5; game.screenshake = 15; game.createmenu("mainmenu"); map.nexttowercolour(); } }else if (game.currentmenuname == "flipmode_mobile") { if (game.currentmenuoption == 0 && game.unlock[18]) { //enable/disable flip mode music.playef(18, 10); game.screenshake = 10; game.flashlight = 5; dwgfx.setflipmode = !dwgfx.setflipmode; game.savemystats = true; }else if (game.currentmenuoption == 1) { //back music.playef(11, 10); game.createmenu("play"); map.nexttowercolour(); }else{ //Can't do yet! play sad sound music.playef(2, 10); } }else if (game.currentmenuname == "playmodes") { if (game.currentmenuoption == 0 && game.slowdown == 30 && !map.invincibility) { //go to the time trial menu music.playef(11, 10); game.createmenu("timetrials"); map.nexttowercolour(); }else if (game.currentmenuoption == 1 && game.unlock[16]) { //intermission mode menu music.playef(11, 10); game.createmenu("intermissionmenu"); map.nexttowercolour(); }else if (game.currentmenuoption == 2 && game.unlock[17] && game.slowdown == 30 && !map.invincibility) { //start a game in no death mode music.playef(11, 10); game.createmenu("startnodeathmode"); map.nexttowercolour(); }else if (game.currentmenuoption == 3 && game.unlock[18]) { //enable/disable flip mode music.playef(11, 10); game.createmenu("flipmode_mobile"); map.nexttowercolour(); }else if (game.currentmenuoption == 4) { //back music.playef(11, 10); game.createmenu("play"); map.nexttowercolour(); }else{ //Can't do yet! play sad sound music.playef(2, 10); } }else if (game.currentmenuname == "startnodeathmode") { if (game.currentmenuoption == 0) { //start no death mode, disabling cutscenes game.mainmenu = 10; dwgfx.fademode = 2; }else if (game.currentmenuoption == 1) { game.mainmenu = 9; dwgfx.fademode = 2; }else if (game.currentmenuoption == 2) { //back music.playef(11, 10); game.createmenu("play"); map.nexttowercolour(); } }else if (game.currentmenuname == "continue") { if (game.currentmenuoption == 0) { game.mainmenu = 1; dwgfx.fademode = 2; }else if (game.currentmenuoption == 1) { game.mainmenu = 2; dwgfx.fademode = 2; }else if (game.currentmenuoption == 2) { //back music.playef(11, 10); game.createmenu("play"); map.nexttowercolour(); } }else if (game.currentmenuname == "intermissionmenu") { if (game.currentmenuoption == 0) { music.playef(11, 10); music.play(6); game.createmenu("playint1"); map.nexttowercolour(); }else if (game.currentmenuoption == 1) { music.playef(11, 10); music.play(6); game.createmenu("playint2"); map.nexttowercolour(); }else if (game.currentmenuoption == 2) { //back music.playef(11, 10); game.createmenu("play"); map.nexttowercolour(); } }else if (game.currentmenuname == "playint1") { if (game.currentmenuoption == 0) { game.mainmenu = 12; dwgfx.fademode = 2; }else if (game.currentmenuoption == 1) { game.mainmenu = 13; dwgfx.fademode = 2; }else if (game.currentmenuoption == 2) { game.mainmenu = 14; dwgfx.fademode = 2; }else if (game.currentmenuoption == 3) { game.mainmenu = 15; dwgfx.fademode = 2; }else if (game.currentmenuoption == 4) { //back music.playef(11, 10); game.createmenu("play"); map.nexttowercolour(); } }else if (game.currentmenuname == "playint2") { if (game.currentmenuoption == 0) { game.mainmenu = 16; dwgfx.fademode = 2; }else if (game.currentmenuoption == 1) { game.mainmenu = 17; dwgfx.fademode = 2; }else if (game.currentmenuoption == 2) { game.mainmenu = 18; dwgfx.fademode = 2; }else if (game.currentmenuoption == 3) { game.mainmenu = 19; dwgfx.fademode = 2; }else if (game.currentmenuoption == 4) { //back music.playef(11, 10); game.createmenu("play"); map.nexttowercolour(); } }else if (game.currentmenuname == "gameover2") { //back music.playef(11, 10); music.play(6); game.createmenu("mainmenu"); map.nexttowercolour(); }else if (game.currentmenuname == "unlocktimetrials" || game.currentmenuname == "unlocktimetrial") { //back music.playef(11, 10); game.createmenu("play"); map.nexttowercolour(); }else if (game.currentmenuname == "unlocknodeathmode" || game.currentmenuname == "unlockintermission" || game.currentmenuname == "unlockflipmode") { //back music.playef(11, 10); game.createmenu("play"); map.nexttowercolour(); }else if (game.currentmenuname == "timetrials") { if (game.currentmenuoption == 0 && game.unlock[9]) { //space station 1 game.mainmenu = 3; dwgfx.fademode = 2; }else if (game.currentmenuoption == 1 && game.unlock[10]) { //lab game.mainmenu = 4; dwgfx.fademode = 2; }else if (game.currentmenuoption == 2 && game.unlock[11]) { //tower game.mainmenu = 5; dwgfx.fademode = 2; }else if (game.currentmenuoption == 3 && game.unlock[12]) { //station 2 game.mainmenu = 6; dwgfx.fademode = 2; }else if (game.currentmenuoption == 4 && game.unlock[13]) { //warp game.mainmenu = 7; dwgfx.fademode = 2; }else if (game.currentmenuoption == 5 && game.unlock[14]) { //final game.mainmenu = 8; dwgfx.fademode = 2; }else if (game.currentmenuoption == 6) { //go to the time trial menu //back music.playef(11, 10); game.createmenu("play"); map.nexttowercolour(); }else { //Can't do yet! play sad sound music.playef(2, 10); } }else if (game.currentmenuname == "timetrialcomplete3") { if (game.currentmenuoption == 1) { //back music.playef(11, 10); music.play(6); game.createmenu("play"); map.nexttowercolour(); }else if (game.currentmenuoption == 0) { //duplicate the above based on given time trial level! if (game.timetriallevel == 0) { //space station 1 game.mainmenu = 3; dwgfx.fademode = 2; }else if (game.timetriallevel == 1) { //lab game.mainmenu = 4; dwgfx.fademode = 2; }else if (game.timetriallevel == 2) { //tower game.mainmenu = 5; dwgfx.fademode = 2; }else if (game.timetriallevel == 3) { //station 2 game.mainmenu = 6; dwgfx.fademode = 2; }else if (game.timetriallevel == 4) { //warp game.mainmenu = 7; dwgfx.fademode = 2; }else if (game.timetriallevel == 5) { //final game.mainmenu = 8; dwgfx.fademode = 2; } } }else if (game.currentmenuname == "gamecompletecontinue" || game.currentmenuname == "nodeathmodecomplete2") { if (game.currentmenuoption == 0) { music.play(6); music.playef(11, 10); game.createmenu("play"); map.nexttowercolour(); } } } } } if (dwgfx.fademode == 1) script.startgamemode(game.mainmenu, key, dwgfx, game, map, obj, help, music); } public function gameinput(key:KeyPoll, dwgfx:dwgraphicsclass, game:gameclass, map:mapclass, obj:entityclass, help:helpclass, music:musicclass):void { game.inittouchpoints(key); if(!script.running){ game.press_left = false; game.press_right = false; game.press_action = false; game.press_map = false; } if ((key.isDown(15) || key.isDown(17)) && key.isDown(70) && !game.fullscreentoggleheld) { //Toggle fullscreen game.fullscreentoggleheld = true; if (game.fullscreen) {game.fullscreen = false; }else {game.fullscreen = true;} updategraphicsmode(game, dwgfx); game.savestats(map, dwgfx); } if ((key.isDown(15) || key.isDown(17)) && key.isDown(70)) { game.fullscreentoggleheld = true; }else { game.fullscreentoggleheld = false; } if (game.recording == 2 && !game.playbackfinished) { //playback! //record your input and add it to the record string //Keys are: //0 - nothing //1 - left //2 - right //3 - left+right //4 - flip //5 - left+flip //6 - right+flip //7 - left+right+flip //8 - Map/teleport if (!game.recordinit) { //Init recording game.recordinit = true; game.combomode = false; game.playmove = game.playback[game.playbackpos+1]; game.playcombo = game.playback[game.playbackpos]; } if (game.playcombo <= 0) { //move on to the next action game.playbackpos += 2; game.playmove = game.playback[game.playbackpos + 1]; game.playcombo = game.playback[game.playbackpos]; if (game.playcombo > 1) game.playcombo--; } if (game.playcombo >= 1) { game.playcombo--; if (game.playmove == 1 || game.playmove == 3 || game.playmove == 5 || game.playmove == 7){ game.press_left = true; } if (game.playmove == 2 || game.playmove == 3 || game.playmove == 6 || game.playmove == 7){ game.press_right = true; } if (game.playmove == 4 || game.playmove == 5 || game.playmove == 6 || game.playmove == 7){ game.press_action = true; } if (game.playmove == 8){ game.press_map = true; //game.playbackfinished = true; trace("finished!"); } } }else { if(!script.running){ if (key.isDown(Keyboard.LEFT) || key.isDown(65)) game.press_left = true; if (key.isDown(Keyboard.RIGHT) || key.isDown(68)) game.press_right = true; if (key.isDown(90) || key.isDown(32) || key.isDown(86) || key.isDown(Keyboard.UP) || key.isDown(Keyboard.DOWN) || key.isDown(87) || key.isDown(83)) game.press_action = true; if (key.isDown(Keyboard.ENTER) || key.isDown(Keyboard.BACK)) game.press_map = true; game.gettouchpoints(key, dwgfx); } } if (game.advancetext) { if (game.pausescript) { game.press_action = false; if (key.isDown(90) || key.isDown(32) || key.isDown(86) || key.isDown(Keyboard.UP) || key.isDown(Keyboard.DOWN) || key.isDown(87) || key.isDown(83)) game.press_action = true; //Iterate through touch points, find buttons that are being pressed switch(game.controlstyle) { case 0: if (key.touchPoints > 0) { game.press_action = true; } /*for (i = 0; i < key.touchPoints; i++) { //if (key.touchid[i] != key.controlstick) { game.press_action = true; //} }*/ break; //To do: make these better case 1: if (key.touchPoints > 0) { game.press_action = true; } break; case 2: if (key.touchPoints > 0) { game.press_action = true; } break; } } if (game.press_action && !game.jumpheld) { if (game.pausescript) { game.pausescript = false; game.hascontrol = true; game.jumpheld = true; }else{ game.state++; game.jumpheld = true; } } } if (!game.press_map) game.mapheld = false; /* if (key.isDown("1".charCodeAt(0))) { dwgfx.screen.width = 640; dwgfx.screen.height = 480; setstage(640,480); } if (key.isDown("2".charCodeAt(0))) { dwgfx.screen.width = 960; dwgfx.screen.height = 720; setstage(960,720); } if (key.isDown("3".charCodeAt(0))) { dwgfx.screen.width = 1280; dwgfx.screen.height = 960; setstage(1280,960); } */ /*game.test = true; game.teststring = String(game.inertia); if (key.isDown("1".charCodeAt(0))) game.inertia = 0.5; if (key.isDown("2".charCodeAt(0))) game.inertia = 0.6; if (key.isDown("3".charCodeAt(0))) game.inertia = 0.7; if (key.isDown("4".charCodeAt(0))) game.inertia = 0.8; if (key.isDown("5".charCodeAt(0))) game.inertia = 0.9; if (key.isDown("6".charCodeAt(0))) game.inertia = 1; if (key.isDown("7".charCodeAt(0))) game.inertia = 1.1; if (key.isDown("8".charCodeAt(0))) game.inertia = 1.2; if (key.isDown("9".charCodeAt(0))) game.inertia = 1.3; if (key.isDown("0".charCodeAt(0))) game.inertia = 1.4;*/ if(!game.mobilemenu){ if (game.intimetrial && dwgfx.fademode == 1 && game.quickrestartkludge) { //restart the time trial game.quickrestartkludge = false; script.startgamemode(game.timetriallevel + 3, key, dwgfx, game, map, obj, help, music); game.deathseq = -1; game.completestop = false; } } //Entity type 0 is player controled for (i = 0; i < obj.nentity; i++) { if (obj.entities[i].rule == 0) { if (game.hascontrol && game.deathseq == -1 && game.lifeseq <= 5) { /* if (key.isDown(8)) { script.load("returntohub"); } */ /* if (key.isDown(27)) { game.state = 0; dwgfx.textboxremove(); map.tdrawback = true; music.haltdasmusik(); game.gamestate = TITLEMODE; } */ if (game.press_map && !game.mapheld) { game.mapheld = true; if (game.activetele && game.readytotele > 20 && !game.intimetrial) { if(!dwgfx.flipmode) obj.flags[73] = 1; //Flip mode test if(int(Math.abs(obj.entities[i].vx))<=1 && int(obj.entities[i].vy)==0){ //wait! space station 2 debug thingy if (game.teleportscript != "") { //trace(game.recordstring); //We're teleporting! Yey! game.activetele = false; game.hascontrol = false; music.fadeout(); //Uncomment this when it's working! i = obj.getplayer(); obj.entities[i].colour = 102; i = obj.getteleporter(); obj.entities[i].tile = 6; obj.entities[i].colour = 102; //which teleporter script do we use? it depends on the companion! game.state = 4000; game.statedelay = 0; }else if (game.companion == 0) { //Alright, normal teleporting game.gamestate = 5; dwgfx.menuoffset = 240; //actually this should count the roomname if (map.extrarow) dwgfx.menuoffset -= 10; dwgfx.menubuffer.copyPixels(dwgfx.screenbuffer, dwgfx.screenbuffer.rect, dwgfx.tl, null, null, false); dwgfx.resumegamemode = false; game.useteleporter = true; game.initteleportermode(map); }else { //trace(game.recordstring); //We're teleporting! Yey! game.activetele = false; game.hascontrol = false; music.fadeout(); //Uncomment this when it's working! i = obj.getplayer(); obj.entities[i].colour = 102; i = obj.getcompanion(game.companion); if(i>-1) obj.entities[i].colour = 102; i = obj.getteleporter(); obj.entities[i].tile = 6; obj.entities[i].colour = 102; //which teleporter script do we use? it depends on the companion! game.state = 3000; game.statedelay = 0; } } }else if (game.activeactivity > -1) { if(int(Math.abs(obj.entities[i].vx))<=1 && int(obj.entities[i].vy)==0){ script.load(obj.blocks[game.activeactivity].script); obj.removeblock(game.activeactivity); } }else if (game.swnmode == 1 && game.swngame == 1) { //quitting the super gravitron game.mapheld = true; //Quit menu, same conditions as in game menu game.gamestate = MAPMODE; game.gamesaved = false; dwgfx.resumegamemode = false; game.menupage = 20; // The Map Page dwgfx.menubuffer.copyPixels(dwgfx.screenbuffer, dwgfx.screenbuffer.rect, dwgfx.tl, null, null, false); dwgfx.menuoffset = 240; //actually this should count the roomname if (map.extrarow) dwgfx.menuoffset -= 10; }else if (game.intimetrial && dwgfx.fademode == 0) { if (game.mobilemenu) { //Quit menu in time trial 12345 game.mapheld = true; //Quit menu, same conditions as in game menu game.gamestate = MAPMODE; game.gamesaved = false; dwgfx.resumegamemode = false; game.menupage = 10; // The Map Page dwgfx.menubuffer.copyPixels(dwgfx.screenbuffer, dwgfx.screenbuffer.rect, dwgfx.tl, null, null, false); dwgfx.menuoffset = 240; //actually this should count the roomname if (map.extrarow) dwgfx.menuoffset -= 10; }else{ //Quick restart of time trial script.hardreset(key, dwgfx, game, map, obj, help, music); if (dwgfx.setflipmode) dwgfx.flipmode = true; dwgfx.fademode = 2; game.completestop = true; music.fadeout(); game.intimetrial = true; game.quickrestartkludge = true; } }else if (dwgfx.fademode==0){ //Normal map screen, do transition later game.gamestate = MAPMODE; map.cursordelay = 0; map.cursorstate = 0; game.gamesaved = false; dwgfx.resumegamemode = false; game.menupage = 0; // The Map Page dwgfx.menubuffer.copyPixels(dwgfx.screenbuffer, dwgfx.screenbuffer.rect, dwgfx.tl, null, null, false); dwgfx.menuoffset = 240; //actually this should count the roomname if (map.extrarow) dwgfx.menuoffset -= 10; } } if (key.isDown(27) && (!map.custommode || map.custommodeforreal)) { game.mapheld = true; //Quit menu, same conditions as in game menu game.gamestate = MAPMODE; game.gamesaved = false; dwgfx.resumegamemode = false; game.menupage = 10; // The Map Page dwgfx.menubuffer.copyPixels(dwgfx.screenbuffer, dwgfx.screenbuffer.rect, dwgfx.tl, null, null, false); dwgfx.menuoffset = 240; //actually this should count the roomname if (map.extrarow) dwgfx.menuoffset -= 10; } if (key.isDown("R".charCodeAt(0)) && game.deathseq<=0 && map.invincibility) { game.deathseq = 30; } if (game.press_left) {game.tapleft++; }else { if (game.tapleft <= 4 && game.tapleft > 0) {if (obj.entities[i].vx < 0) obj.entities[i].vx = 0;}game.tapleft = 0; } if (game.press_right) {game.tapright++; }else { if (game.tapright <= 4 && game.tapright > 0) {if (obj.entities[i].vx > 0) obj.entities[i].vx = 0;}game.tapright = 0;} if(game.press_left){ //obj.entities[i].vx = -4; obj.entities[i].ax = -3; obj.entities[i].dir = 0; }else if (game.press_right){ //obj.entities[i].vx = 4; obj.entities[i].ax = 3; obj.entities[i].dir = 1; }else{ //obj.entities[i].vx = 0; } if (!game.press_action) { game.jumppressed = 0; game.jumpheld = false; } if (game.press_action && !game.jumpheld) { game.jumppressed = 5; game.jumpheld = true; } if (game.jumppressed > 0) { game.jumppressed--; if (obj.entities[i].onground>0 && game.gravitycontrol == 0) { game.gravitycontrol = 1; obj.entities[i].vy = -4; obj.entities[i].ay = -3; music.playef(0, 10); game.jumppressed = 0; game.totalflips++; } if (obj.entities[i].onroof>0 && game.gravitycontrol == 1) { game.gravitycontrol = 0; obj.entities[i].vy = 4; obj.entities[i].ay = 3; music.playef(1, 10); game.jumppressed = 0; game.totalflips++; } } }else { //Simple detection of keypresses outside player control, will probably scrap this (expand on //advance text function) if (!game.press_action) { game.jumppressed = 0; game.jumpheld = false; } if (game.press_action && !game.jumpheld) { game.jumppressed = 5; game.jumpheld = true; } } } } } public function mapinput(key:KeyPoll, dwgfx:dwgraphicsclass, game:gameclass, map:mapclass, obj:entityclass, help:helpclass, music:musicclass):void { game.inittouchpoints(key); game.press_left = false; game.press_right = false; game.press_action = false; game.press_map = false; if ((key.isDown(15) || key.isDown(17)) && key.isDown(70) && !game.fullscreentoggleheld) { //Toggle fullscreen game.fullscreentoggleheld = true; if (game.fullscreen) {game.fullscreen = false; }else {game.fullscreen = true;} updategraphicsmode(game, dwgfx); game.savestats(map, dwgfx); } if ((key.isDown(15) || key.isDown(17)) && key.isDown(70)) { game.fullscreentoggleheld = true; }else { game.fullscreentoggleheld = false; } if(dwgfx.menuoffset==0){ if (dwgfx.flipmode) { if (key.isDown(Keyboard.LEFT) || key.isDown(Keyboard.DOWN) || key.isDown(65) || key.isDown(83)) game.press_left = true; if (key.isDown(Keyboard.RIGHT) || key.isDown(Keyboard.UP) || key.isDown(68) || key.isDown(87)) game.press_right = true; }else{ if (key.isDown(Keyboard.LEFT) || key.isDown(Keyboard.UP) || key.isDown(65) || key.isDown(87)) game.press_left = true; if (key.isDown(Keyboard.RIGHT) || key.isDown(Keyboard.DOWN) || key.isDown(68) || key.isDown(83)) game.press_right = true; } if (key.isDown(90) || key.isDown(32) || key.isDown(86)) game.press_action = true; if (game.menupage < 9) { if (key.isDown(Keyboard.ENTER) || key.isDown(Keyboard.BACK)) game.press_map = true; if (key.isDown(27)) { game.mapheld = true; game.menupage = 10; } }else{ if (key.isDown(Keyboard.ENTER) || key.isDown(27)) game.press_map = true; if (key.isDown(Keyboard.BACK)) game.press_map = true; } game.gettouchpoints_gamemenu(key, obj, music, dwgfx); //In the menu system, all keypresses are single taps rather than holds. Therefore this test has to be done for all presses if (!game.press_action && !game.press_left && !game.press_right) game.jumpheld = false; if (!game.press_map && !key.isDown(27)) game.mapheld = false; }else { game.mapheld = true; game.jumpheld = true; } /* if (key.isDown(Keyboard.T)) { game.menupage = 30; } */ if (!game.mapheld) { if (game.mobilemenu) { if (game.press_map) { //Normal map screen, do transition later dwgfx.resumegamemode = true; } }else{ if (game.press_map && ((game.menupage < 10) || game.menupage == 30)) { //Normal map screen, do transition later dwgfx.resumegamemode = true; } } } if (dwgfx.fademode == 1) { dwgfx.menubuffer.fillRect(dwgfx.menubuffer.rect, 0x000000); dwgfx.resumegamemode = true; obj.removeallblocks(); game.menukludge = false; if (game.menupage >= 20) { game.state = 96; game.statedelay = 0; }else{ game.state = 80; game.statedelay = 0; } } if (!game.jumpheld) { if (game.press_action || game.press_left || game.press_right || game.press_map){ game.jumpheld = true; } if (game.press_left) { game.menupage--; }else if (game.press_right) { game.menupage++; } if (game.menupage == 1 && obj.flags[67] == 1 && game.press_action && !game.insecretlab) { //Warp back to the ship dwgfx.resumegamemode = true; game.teleport_to_x = 2; game.teleport_to_y = 11; //trace(game.recordstring); //We're teleporting! Yey! game.activetele = false; game.hascontrol = false; i = obj.getplayer(); obj.entities[i].colour = 102; //which teleporter script do we use? it depends on the companion! game.state = 4000; game.statedelay = 0; } if (game.mobilemenu) { if (game.menupage == 3 && game.press_action) { //quit to menu if (dwgfx.fademode == 0) { if (game.intimetrial || game.insecretlab || game.nodeathmode) game.menukludge = true; script.hardreset(key, dwgfx, game, map, obj, help, music); if(dwgfx.setflipmode) dwgfx.flipmode = true; dwgfx.fademode = 2; music.fadeout(); } } }else{ if (game.menupage == 3 && !game.gamesaved && game.press_action && !game.intimetrial && !game.nodeathmode && !game.insecretlab && !game.inintermission) { game.flashlight = 5; game.screenshake = 10; music.playef(18, 10); game.gamesaved = true; game.savetime = game.timestring(help); game.savearea = map.currentarea(map.area(game.roomx, game.roomy)); game.savetrinkets = game.trinkets; if (game.roomx >= 102 && game.roomx <= 104 && game.roomy >= 110 && game.roomy <= 111) game.savearea = "The Ship"; if(map.custommodeforreal){ game.customsavequick(editor.ListOfMetaData[game.playcustomlevel].file_num, map, obj, music, help); }else{ game.savequick(map, obj, music, help); } } } if (game.mobilemenu) { if (game.menupage == 20 && game.press_action) { //quit to menu if (dwgfx.fademode == 0) { game.swnmode = false; dwgfx.fademode = 2; music.fadeout(); } } if (game.menupage == 10 && game.press_action) { //return to game if (dwgfx.fademode == 0) { if (game.intimetrial || game.insecretlab || game.nodeathmode) game.menukludge = true; script.hardreset(key, dwgfx, game, map, obj, help, music); if(dwgfx.setflipmode) dwgfx.flipmode = true; dwgfx.fademode = 2; music.fadeout(); } } }else{ if (game.menupage == 20 && game.press_action) { //return to game dwgfx.resumegamemode = true; } if (game.menupage == 21 && game.press_action) { //quit to menu if (dwgfx.fademode == 0) { game.swnmode = false; dwgfx.fademode = 2; music.fadeout(); } } if (game.menupage == 10 && game.press_action) { //return to game dwgfx.resumegamemode = true; } if (game.menupage == 11 && game.press_action) { //quit to menu if (dwgfx.fademode == 0) { if (game.intimetrial || game.insecretlab || game.nodeathmode) game.menukludge = true; script.hardreset(key, dwgfx, game, map, obj, help, music); if(dwgfx.setflipmode) dwgfx.flipmode = true; dwgfx.fademode = 2; music.fadeout(); } } } if (game.menupage < 0) game.menupage = 3; if (game.menupage > 3 && game.menupage < 9) game.menupage = 0; if (game.menupage == 9) game.menupage = 11; if (game.menupage == 12) game.menupage = 10; if (game.menupage == 19) game.menupage = 21; if (game.menupage == 22) game.menupage = 20; } } public function teleporterinput(key:KeyPoll, dwgfx:dwgraphicsclass, game:gameclass, map:mapclass, obj:entityclass, help:helpclass, music:musicclass):void { game.inittouchpoints(key); game.press_left = false; game.press_right = false; game.press_action = false; game.press_map = false; if ((key.isDown(15) || key.isDown(17)) && key.isDown(70) && !game.fullscreentoggleheld) { //Toggle fullscreen game.fullscreentoggleheld = true; if (game.fullscreen) {game.fullscreen = false; }else {game.fullscreen = true;} updategraphicsmode(game, dwgfx); game.savestats(map, dwgfx); } if ((key.isDown(15) || key.isDown(17)) && key.isDown(70)) { game.fullscreentoggleheld = true; }else { game.fullscreentoggleheld = false; } if(dwgfx.menuoffset==0){ if (key.isDown(Keyboard.LEFT)|| key.isDown(65)) game.press_left = true; if (key.isDown(Keyboard.RIGHT) || key.isDown(68)) game.press_right = true; if (key.isDown(90) || key.isDown(32) || key.isDown(86) || key.isDown(Keyboard.UP) || key.isDown(Keyboard.DOWN)|| key.isDown(87)|| key.isDown(83)) game.press_action = true; if (key.isDown(Keyboard.ENTER) || key.isDown(Keyboard.BACK)) game.press_map = true; game.gettouchpoints_teleportmenu(key, music, dwgfx); //In the menu system, all keypresses are single taps rather than holds. Therefore this test has to be done for all presses if (!game.press_action && !game.press_left && !game.press_right) game.jumpheld = false; if (!game.press_map) game.mapheld = false; }else { game.mapheld = true; game.jumpheld = true; } if (!game.jumpheld) { if (game.press_action || game.press_left || game.press_right || game.press_map){ game.jumpheld = true; } if (game.press_left) { game.teleport_to_teleporter--; if (game.teleport_to_teleporter < 0) game.teleport_to_teleporter = map.numteleporters - 1; tempx = map.teleporters[game.teleport_to_teleporter].x; tempy = map.teleporters[game.teleport_to_teleporter].y; while (map.explored[tempx + (20 * tempy)] == 0) { game.teleport_to_teleporter--; if (game.teleport_to_teleporter < 0) game.teleport_to_teleporter = map.numteleporters - 1; tempx = map.teleporters[game.teleport_to_teleporter].x; tempy = map.teleporters[game.teleport_to_teleporter].y; } }else if (game.press_right) { game.teleport_to_teleporter++; if (game.teleport_to_teleporter >= map.numteleporters) game.teleport_to_teleporter = 0; tempx = map.teleporters[game.teleport_to_teleporter].x; tempy = map.teleporters[game.teleport_to_teleporter].y; while (map.explored[tempx + (20 * tempy)] == 0) { game.teleport_to_teleporter++; if (game.teleport_to_teleporter >= map.numteleporters) game.teleport_to_teleporter = 0; tempx = map.teleporters[game.teleport_to_teleporter].x; tempy = map.teleporters[game.teleport_to_teleporter].y; } } if (game.press_map) { tempx = map.teleporters[game.teleport_to_teleporter].x; tempy = map.teleporters[game.teleport_to_teleporter].y; if (game.roomx == tempx + 100 && game.roomy == tempy + 100) { //cancel! dwgfx.resumegamemode = true; }else { //teleport dwgfx.resumegamemode = true; game.teleport_to_x = tempx; game.teleport_to_y = tempy; //trace(game.recordstring); //We're teleporting! Yey! game.activetele = false; game.hascontrol = false; i = obj.getplayer(); obj.entities[i].colour = 102; i = obj.getteleporter(); obj.entities[i].tile = 6; obj.entities[i].colour = 102; //which teleporter script do we use? it depends on the companion! game.state = 4000; game.statedelay = 0; } } } } public function gamecompleteinput(key:KeyPoll, dwgfx:dwgraphicsclass, game:gameclass, map:mapclass, obj:entityclass, help:helpclass, music:musicclass):void { game.inittouchpoints(key); game.press_left = false; game.press_right = false; game.press_action = false; game.press_map = false; if ((key.isDown(15) || key.isDown(17)) && key.isDown(70) && !game.fullscreentoggleheld) { //Toggle fullscreen game.fullscreentoggleheld = true; if (game.fullscreen) {game.fullscreen = false; }else {game.fullscreen = true;} updategraphicsmode(game, dwgfx); game.savestats(map, dwgfx); } if ((key.isDown(15) || key.isDown(17)) && key.isDown(70)) { game.fullscreentoggleheld = true; }else { game.fullscreentoggleheld = false; } game.gettouchpoints_gamecomplete(key, music, dwgfx); if (game.press_action) { game.creditposition -= 6; if (game.creditposition <= -1650) { if(dwgfx.fademode==0){ dwgfx.fademode = 2; } game.creditposition = -1650; }else { map.bypos += 6; map.bscroll = +6; } game.press_action = true; } if (key.isDown(Keyboard.ENTER) || key.isDown(Keyboard.BACK)) game.press_map = true; //if (key.isDown(27)) { game.mapheld = true; game.menupage = 10; } if (!game.mapheld) { if(game.press_map){ //Return to game if(dwgfx.fademode==0){ dwgfx.fademode = 2; } } } } public function gamecompleteinput2(key:KeyPoll, dwgfx:dwgraphicsclass, game:gameclass, map:mapclass, obj:entityclass, help:helpclass, music:musicclass):void { game.inittouchpoints(key); game.press_left = false; game.press_right = false; game.press_action = false; game.press_map = false; if ((key.isDown(15) || key.isDown(17)) && key.isDown(70) && !game.fullscreentoggleheld) { //Toggle fullscreen game.fullscreentoggleheld = true; if (game.fullscreen) {game.fullscreen = false; }else {game.fullscreen = true;} updategraphicsmode(game, dwgfx); game.savestats(map, dwgfx); } if ((key.isDown(15) || key.isDown(17)) && key.isDown(70)) { game.fullscreentoggleheld = true; }else { game.fullscreentoggleheld = false; } if ((key.isDown(15) || key.isDown(17)) && key.isDown(70)) { game.fullscreentoggleheld = true; }else { game.fullscreentoggleheld = false; } game.gettouchpoints_gamecomplete(key, music, dwgfx); if (game.press_action) { game.creditposx++; if (game.creditposy >= 30) { if(dwgfx.fademode==0){ dwgfx.fademode = 2; music.fadeout(); } } game.press_action = true; } if (key.isDown(Keyboard.ENTER) || key.isDown(Keyboard.BACK)) game.press_map = true; //if (key.isDown(27)) { game.mapheld = true; game.menupage = 10; } if (!game.mapheld) { if(game.press_map){ //Return to game if(dwgfx.fademode==0){ dwgfx.fademode = 2; music.fadeout(); } } } } public function controltutorialinput(key:KeyPoll, dwgfx:dwgraphicsclass, game:gameclass, map:mapclass, obj:entityclass, help:helpclass, music:musicclass):void { if (game.controltutorialstate >= 13) { if (key.isDown(90) || key.isDown(32) || key.isDown(86) || key.isDown(Keyboard.UP) || key.isDown(Keyboard.DOWN)) game.press_action = true; game.gettouchpoints_controltutorial(key, music, dwgfx); if (game.press_action) { game.gamestate = game.GAMEMODE; } } }