ReC98/th05/main/bullet/b6ball.hpp

37 lines
821 B
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.

/// Shinki's 32×32 ball bullets
/// ---------------------------
#define B6BALL_COUNT 63
#define B6BALL_W 32
#define B6BALL_H 32
enum b6ball_flag_t {
B6BF_FREE = 0,
B6BF_CLOUD = 1,
B6BF_ALIVE = 2,
B6BF_DECAY = 3,
_b6ball_flag_t_FORCE_UINT8 = 0xFF
};
typedef struct {
b6ball_flag_t flag;
unsigned char angle; // unused
PlayfieldMotion pos;
unsigned int age; // unused and broken, because it's never reset
Subpixel cloud_radius;
int patnum_tiny;
int decay_frames;
int16_t unused;
SubpixelLength8 speed; // unused
int8_t padding;
} b6ball_t;
#define b6ball_template (reinterpret_cast<b6ball_t &>(custom_entities[0]))
#define b6balls (reinterpret_cast<b6ball_t *>(&custom_entities[1]))
// Spawns a new ball bullet according to the [b6ball_template].
void near b6balls_add();
void near b6balls_update();