ReC98/th04/main/dialog/dialog.hpp

53 lines
1.9 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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
#define DIALOG_BOX_TILE_VRAM_W (DIALOG_BOX_TILE_W / BYTE_DOTS)
#define DIALOG_BOX_VRAM_W (DIALOG_BOX_W / BYTE_DOTS)
extern const dot_rect_t(DIALOG_BOX_TILE_W, DIALOG_BOX_TILE_H) DIALOG_BOX_TILES[
DIALOG_BOX_TILE_COUNT
];
void pascal near dialog_box_put(uscreen_x_t left, uvram_y_t top, int tile);
void pascal near dialog_box_fade_in();
// ---
enum dialog_side_t {
DIALOG_SIDE_PLAYCHAR = 0,
DIALOG_SIDE_BOSS = 1,
_dialog_side_t_FORCE_INT16 = 0x7FFF
};
extern dialog_side_t dialog_side;
// 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);
#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);
// 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);
// --------------------------------------------------------
#endif