ReC98/th03/shots.hpp

45 lines
824 B
C++

#define SHOT_VELOCITY -12.0f
#define SHOT_SO_PID (320 / 8)
#define SHOT_SPRITE_COUNT 4
#define SHOT_W 16
#define SHOT_H 8
#define SHOT_VRAM_W (SHOT_W / 8)
#define SHOT_VRAM_H (SHOT_H / 2)
#pragma option -b-
enum shot_mode_t {
SM_NONE = 0,
SM_1_PAIR = 1,
SM_2_PAIRS = 2,
SM_4_PAIRS = 3,
SM_REIMU_HYPER = 4, // 1 shot pair + 1 amulet pair
};
enum shot_active_t {
SA_DISABLED = 0,
SA_ENABLED = 1,
SA_BLOCKED_FOR_THIS_FRAME = 2,
};
#pragma option -b
struct shotpair_t {
char flag;
char unused_1;
SPPoint topleft;
Subpixel velocity_y;
unsigned int so_pid;
unsigned char so_anim;
char unused_2;
unsigned char pid;
char unused_3;
};
#define SHOTPAIR_DISTANCE 16
#define SHOTPAIR_COUNT 32
extern shotpair_t shotpairs[SHOTPAIR_COUNT];
void pascal near shots_update(void);
void pascal near shots_render(void);