2020-01-10 13:17:19 +00:00
|
|
|
|
// Box
|
|
|
|
|
// ---
|
|
|
|
|
#define DIALOG_BOX_W 320
|
|
|
|
|
#define DIALOG_BOX_H 48
|
|
|
|
|
#define DIALOG_BOX_TILE_W 16
|
|
|
|
|
#define DIALOG_BOX_TILE_H 4
|
|
|
|
|
#define DIALOG_BOX_TILE_COUNT 3
|
|
|
|
|
|
2020-08-05 21:04:47 +00:00
|
|
|
|
#define DIALOG_BOX_TILE_VRAM_W (DIALOG_BOX_TILE_W / BYTE_DOTS)
|
|
|
|
|
#define DIALOG_BOX_VRAM_W (DIALOG_BOX_W / BYTE_DOTS)
|
2020-01-10 13:17:19 +00:00
|
|
|
|
|
2021-04-17 18:08:30 +00:00
|
|
|
|
extern const dot_rect_t(DIALOG_BOX_TILE_W, DIALOG_BOX_TILE_H) DIALOG_BOX_TILES[
|
|
|
|
|
DIALOG_BOX_TILE_COUNT
|
|
|
|
|
];
|
2020-01-10 13:17:19 +00:00
|
|
|
|
|
2020-08-20 19:59:45 +00:00
|
|
|
|
void pascal near dialog_box_put(uscreen_x_t left, uvram_y_t top, int tile);
|
2020-01-10 13:17:19 +00:00
|
|
|
|
void pascal near dialog_box_fade_in();
|
|
|
|
|
// ---
|
2021-11-20 21:04:46 +00:00
|
|
|
|
|
|
|
|
|
enum dialog_side_t {
|
|
|
|
|
DIALOG_SIDE_PLAYCHAR = 0,
|
|
|
|
|
DIALOG_SIDE_BOSS = 1,
|
|
|
|
|
|
|
|
|
|
_dialog_side_t_FORCE_INT16 = 0x7FFF
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern dialog_side_t dialog_side;
|
|
|
|
|
|
2021-11-21 17:55:15 +00:00
|
|
|
|
// Restores the [FACE_W]×[FACE_H] pixels starting at (⌊left/8⌋*8, top) on the
|
|
|
|
|
// currently active VRAM page with the same pixels from the other VRAM page.
|
|
|
|
|
void pascal near dialog_face_unput_8(uscreen_x_t left, uvram_y_t top);
|
2021-11-18 15:15:50 +00:00
|
|
|
|
|
|
|
|
|
#if (GAME == 4)
|
|
|
|
|
// Dialog-related image functions with optional EMS support
|
|
|
|
|
// --------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
// Loads the remaining .CDG images for in-game dialog that haven't been in
|
|
|
|
|
// memory since the start of the stage (i.e., the player character
|
|
|
|
|
// faceset), freeing any images that aren't used during a dialog (i.e.,
|
|
|
|
|
// the bomb background) in exchange for the necessary conventional memory.
|
|
|
|
|
void near dialog_init(void);
|
2021-11-19 20:11:53 +00:00
|
|
|
|
|
|
|
|
|
// Restores the bomb background image, after freeing any dialog-only images
|
|
|
|
|
// (i.e., the player character faceset) in exchange for the necessary
|
|
|
|
|
// conventional memory.
|
|
|
|
|
// Apparently, this was also the most convenient place to load the boss
|
|
|
|
|
// faceset used for both the Mugetsu defeat / Gengetsu entrance dialog and
|
|
|
|
|
// the Gengetsu defeat dialogue? To differentiate between those two, the
|
|
|
|
|
// function tracks how often it has been called during the Extra Stage.
|
|
|
|
|
void near dialog_exit(void);
|
2021-11-18 15:15:50 +00:00
|
|
|
|
// --------------------------------------------------------
|
|
|
|
|
#endif
|