ReC98/th05/main/bullet/b4ball.hpp

43 lines
1.0 KiB
C++

#define B4BALL_COUNT 63
#define B4BALL_W 32
#define B4BALL_H 32
typedef struct {
unsigned char flag;
unsigned char angle;
PlayfieldMotion pos;
unsigned int age;
bool16 revenge;
int patnum_tiny_base;
int hp;
int damaged_this_frame;
SubpixelLength8 speed;
int8_t padding;
} b4ball_t;
struct b4ball_template_t {
/* -------------------- */ int8_t _unused_1;
unsigned char angle;
PlayfieldPoint origin;
/* -------------------- */ int16_t _unused_2[5];
bool16 revenge;
int patnum_tiny_base;
int hp;
/* -------------------- */ int16_t _unused_3;
SubpixelLength8 speed;
};
#define b4ball_template ( \
reinterpret_cast<b4ball_template_t &>(custom_entities[0]) \
)
#define b4balls (reinterpret_cast<b4ball_t *>(&custom_entities[1]))
void pascal near b4balls_reset(void);
// Spawns a new ball bullet according to the [b4ball_template]. Reads all
// non-unused fields of the b4ball_template_t structure.
void pascal near b4balls_add(void);
void pascal near b4balls_update(void);
void pascal near b4balls_render(void);