oMenu if (menu_x > gui_width+150) && (menu_committed != -1) { switch (menu_committed) { case 2: SlideTransition(TRANS_MODE.NEXT); break; case 1: { if (!file_exists(SAVEFILE)) { SlideTransition(TRANS_MODE.NEXT); } else { var file = file_text_open_read(SAVEFILE); var target = file_text_read_real(file); file_text_close(file); SlideTransition(TRANS_MODE.GOTO,target); } } break; case 0: game_end(); break; } } oTransition //Progress the transition if (mode != TRANS_MODE.OFF) { if (mode == TRANS_MODE.INTRO) { percent = max(0,percent - max((percent/10),0.005)); } else { percent = min(1.2, percent + max((1.2 - percent) / 10, 0.005)); } if (percent == 1.2) || (percent == 0) { switch (mode) { case TRANS_MODE.INTRO: { mode = TRANS_MODE.OFF; break; } case TRANS_MODE.NEXT: { mode = TRANS_MODE.INTRO; room_goto_next(); break; } case TRANS_MODE.GOTO: { if (instance_exists(demon)) { mode = TRANS_MODE.INTRO; room_goto(target_room); demon.x = target_x; demon.y = target_y; oCamera.x = target_x; oCamera.y = target_y; demon.sprite_index = idle; break; } } case TRANS_MODE.GAMERESTART: { game_restart(); break; } case TRANS_MODE.ROOMRESTART: { mode = TRANS_MODE.INTRO; if (global.checkpointR != 0) { room_goto(global.checkpointR); if !instance_exists(demon) && !instance_exists(obj_wand) { instance_create_depth(x, y, 500, obj_wand); instance_create_depth(x, y, 700, demon); instance_create_depth(x, y, 600, obj_map); instance_create_depth(x, y, 700, obj_magicdust); healthbar.hp = healthbar.max_hp; healthbar.mp = healthbar.max_mp; demon.sprite_index = idle; } } else { room_restart(); healthbar.hp = healthbar.max_hp; healthbar.mp = healthbar.max_mp; } break; } } } } oPlayer ROOM START //Overwrite old save if (file_exists(SAVEFILE)) file_delete(SAVEFILE); //Create new save var file; file = file_text_open_write(SAVEFILE); file_text_write_real(file,room); file_text_close(file); SlideTransition scr with (oTransition) { mode = argument[0]; if (argument_count > 1) target = argument[1]; }