+ case SDLK_n: {
+ if (event->key.keysym.mod & KMOD_CTRL) {
+ level_picker_cursor_down(&game->level_picker);
+ } else {
+ memory_clean(&game->level_editor_memory);
+ game->level_editor = create_level_editor(
+ &game->level_editor_memory,
+ &game->cursor);
+
+ if (game->level == NULL) {
+ game->level = PUSH_LT(
+ game->lt,
+ create_level_from_level_editor(
+ game->level_editor),
+ destroy_level);
+ } else {
+ game->level = RESET_LT(
+ game->lt,
+ game->level,
+ create_level_from_level_editor(
+ game->level_editor));
+ }
+
+ if (game->level == NULL) {
+ return -1;
+ }
+
+ game_switch_state(game, GAME_STATE_LEVEL);
+ }