ReC98/th04/formats/bb.h

46 lines
1.3 KiB
C
Raw Permalink Normal View History

#include "pc98.h"
#define BB_SIZE 2048
// Bitmap format, storing 1-bit values for 8 tiles in one byte.
typedef uint8_t bb_tiles8_t;
// Blocky boss entrance animations
// -------------------------------
extern bb_tiles8_t __seg *bb_boss_seg;
// Loads the .BB file with the given name into memory, and sets [bb_boss_seg]
// to the newly allocated segment. Does not attempt to free [bb_boss_seg], and
// will leak memory if it is not a nullptr.
void pascal near bb_boss_load(const char far *fn);
// Frees any previously allocated [bb_boss_seg].
#if (GAME == 5)
void near bb_boss_free(void);
#else
void far bb_boss_free(void);
#endif
// -------------------------------
/// Text dissolve circles
/// ---------------------
#define BB_TXT_W 32
#define BB_TXT_H 32
#define BB_TXT_VRAM_W (BB_TXT_W / BYTE_DOTS)
#define BB_TXT_IN_SPRITE 16
#define BB_TXT_IN_CELS 8
#define BB_TXT_OUT_SPRITE 0
#define BB_TXT_OUT_CELS 16
// Puts the given TXT*.BB sprite at (⌊left/8⌋*8, top). Assumptions:
// • ES is already set to the beginning of a VRAM segment
// • The GRCG is active, and set to the intended color
#define bb_txt_put_8(left, top, sprite) \
_CX = sprite; \
bb_txt_put_8_raw(left, top);
void __fastcall near bb_txt_put_8_raw(uscreen_x_t left, uvram_y_t top);
/// ---------------------