mirror of
https://git.planet-casio.com/Slyvtt/Collab_RPG.git
synced 2025-01-01 06:23:40 +01:00
94 lines
4.2 KiB
C
94 lines
4.2 KiB
C
#ifndef DIALOG_H
|
|
#define DIALOG_H
|
|
|
|
#include <gint/display.h>
|
|
#include <string.h>
|
|
#include "game.h"
|
|
#include "map.h"
|
|
#include "config.h"
|
|
|
|
/* dialogs_text_opt()
|
|
*
|
|
* Show some text in a box with word wrap for dialogs.
|
|
*
|
|
* game: The game struct of the current game.
|
|
* face: A bopti_image_t of the face of the person who's saying this
|
|
* text. This bopti_image_t should have a width of F_WIDTH and
|
|
* a height of F_HEIGHT.
|
|
* text: The text to display.
|
|
* call_before_end: A function called when the end of the text was displayed and
|
|
* the user pressed EXE (or wait_continue was true). His
|
|
* parameter game is the game struct passed to showtext_opt,
|
|
* and i is the current position in text.
|
|
* start_anim: A boolean, that, if he's true, makes that a little animation
|
|
* is shown at the start of showtext_opt.
|
|
* end_anim: A boolean, that, if he's true, makes that a little animation
|
|
* is shown at the end of showtext_opt.
|
|
* for_each_screen: A function called before a page of the dialog gets drawn.
|
|
* His parameter game is the game struct passed to
|
|
* showtext_opt, and i is the current position in text.
|
|
* line_duration: How many ms showtext_opt will wait after a line has been
|
|
* drawn.
|
|
* update_screen: When he's true showtext_opt will update the screen after
|
|
* drawing a line etc.
|
|
* start_i: At which position I start displaying the text.
|
|
* wait_continue: If I should wait that EXE is pressed after drawing a page.
|
|
*/
|
|
|
|
int dialogs_text_opt(Game *game, bopti_image_t *face, char *text,
|
|
int call_before_end(Game *game, unsigned int i),
|
|
bool start_anim,
|
|
bool end_anim,
|
|
void for_each_screen(Game *game, unsigned int i),
|
|
int line_duration, bool update_screen,
|
|
unsigned int start_i, bool wait_continue);
|
|
|
|
/* dialogs_text()
|
|
*
|
|
* Calls dialogs_text_opt with default parameters.
|
|
*
|
|
* game: The game struct of the current game.
|
|
* face: A bopti_image_t of the face of the person who's saying this
|
|
* text. This bopti_image_t should have a width of F_WIDTH and a
|
|
* height of F_HEIGHT.
|
|
* text: The text to display.
|
|
* dialog_start: A boolean, that, if he's true, makes that a little animation is
|
|
* shown at the start of showtext_opt.
|
|
* dialog_end: A boolean, that, if he's true, makes that a little animation is
|
|
* shown at the end of showtext_opt.
|
|
*/
|
|
|
|
void dialogs_text(Game *game, bopti_image_t *face, char *text,
|
|
bool dialog_start, bool dialog_end);
|
|
|
|
/* dialogs_ask()
|
|
*
|
|
* Like dialogs_text, but lets the user choose between multiple possible
|
|
* choices after displaying the text.
|
|
*
|
|
* game: The game struct of the current game.
|
|
* face: A bopti_image_t of the face of the person who's saying this
|
|
* text. This bopti_image_t should have a width of F_WIDTH and a
|
|
* height of F_HEIGHT.
|
|
* text: The text to display.
|
|
* start: A boolean, that, if he's true, makes that a little animation
|
|
* is shown at the start of showtext_opt.
|
|
* end: A boolean, that, if he's true, makes that a little animation
|
|
* is shown at the end of showtext_opt.
|
|
* choices: A pointer to null-terminated strings that are one after the
|
|
* other in memory. They should be one null-terminated string
|
|
* for each possible choice.
|
|
* choice_amount: The amount of possible choices in the choices zero-terminated
|
|
* strings.
|
|
* default_choice: The choice choosen by default when the dialog just opened.
|
|
*/
|
|
|
|
int dialogs_ask(Game *game, bopti_image_t *face, char *text, bool start,
|
|
bool end, char *choices, int choices_amount,
|
|
int default_choice);
|
|
|
|
/* TODO: Doc. */
|
|
void dialogs_initiate_sequence(Game *game, bopti_image_t *face,
|
|
uint32_t dialogNumber);
|
|
|
|
#endif
|