taisei/src/menu/media.c
Andrei Alexeyev 9b5d515721
Cutscenes (#249)
* WIP cutscenes

* cutscene tweaks

* cutscene: erase background drawing under text

* Make text outlines thicker

* Prepare an interface for adding new cutscenes

* Basic progress tracking for cutscenes

* cutscene: support specifying scene name and BGM

* cutscene: exit with transition after scene ends

* Implement --cutscene ID and --list-cutscenes CLI flags

* fix progress_write_cmd_unlock_cutscenes

* Play intro cutscene before entering main menu for the first time

Also added --intro parameter in dev builds to force playing the intro
cutscene

* Add intro cutscene

* cutscenes: update opening/01 scene

* add Reimu Good End

* remove Bonus Data

* split up a bit of dialogue, revert an image change in intro

* small typo

* most cutscenes complete

* smartquotify

* finish Extra intros

* new cutscenes routed into main game

* fix ENDING_ID

* rough 'mediaroom' menu

* fix cutscene menu crash

* derp

* PR changes

* fixing imports

* more PR fixes

* PR fixes, including updating the script to #255

* add in newlines for readability

Co-authored-by: Alice D <alice@starwitch.productions>
2020-11-28 12:11:10 +02:00

52 lines
1.3 KiB
C

/*
* This software is licensed under the terms of the MIT License.
* See COPYING for further information.
* ---
* Copyright (c) 2011-2019, Lukas Weber <laochailan@web.de>.
* Copyright (c) 2012-2019, Andrei Alexeyev <akari@taisei-project.org>.
*/
#include "taisei.h"
#include "media.h"
#include "musicroom.h"
#include "cutsceneview.h"
#include "common.h"
#include "options.h"
#include "global.h"
#include "video.h"
static void menu_action_enter_musicroom(MenuData *menu, void *arg) {
enter_menu(create_musicroom_menu(), NO_CALLCHAIN);
}
static void menu_action_enter_cutsceneview(MenuData *menu, void *arg) {
enter_menu(create_cutsceneview_menu(), NO_CALLCHAIN);
}
static void draw_media_menu(MenuData *m) {
draw_options_menu_bg(m);
draw_menu_title(m, "Media Room");
draw_menu_list(m, 100, 100, NULL, SCREEN_H);
}
MenuData *create_media_menu(void) {
MenuData *m = alloc_menu();
m->draw = draw_media_menu;
m->logic = animate_menu_list;
m->flags = MF_Abortable;
m->transition = TransFadeBlack;
add_menu_entry(m, "Music Room", menu_action_enter_musicroom, NULL);
add_menu_entry(m, "Replay Cutscenes", menu_action_enter_cutsceneview, NULL);
add_menu_separator(m);
add_menu_entry(m, "Back", menu_action_close, NULL);
while(!dynarray_get(&m->entries, m->cursor).action) {
++m->cursor;
}
return m;
}