ReC98/th04/item/items.hpp

52 lines
1.0 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.

enum item_type_t {
IT_POWER = 0,
IT_POINT = 1,
IT_DREAM = 2,
IT_BIGPOWER = 3,
IT_BOMB = 4,
IT_1UP = 5,
IT_FULLPOWER = 6,
IT_COUNT,
};
struct item_t {
char flag;
char unused;
motion_t pos;
unsigned char type;
char unknown;
int patnum; // Assumed to be a 16×16 sprite.
int pulled_to_player; // Yup, a 16-bit bool.
};
#define ITEM_W 16
#define ITEM_H 16
#define ITEM_PULL_SPEED 10
#if GAME == 5
# define ITEM_COUNT 40
#else
# define ITEM_COUNT 32
#endif
extern item_t items[ITEM_COUNT];
extern const int ITEM_TYPE_PATNUM[IT_COUNT];
void pascal near items_add(Subpixel x, Subpixel y, item_type_t type);
// Items dropped when losing a life
// --------------------------------
#define MISS_ITEM_COUNT 5
typedef enum {
MISS_FIELD_LEFT = 0,
MISS_FIELD_CENTER = 1,
MISS_FIELD_RIGHT = 2,
MISS_FIELD_COUNT,
};
// Yes, these have Y first and X second.
extern const Subpixel ITEM_MISS_VELOCITIES[MISS_FIELD_COUNT][2][MISS_ITEM_COUNT];
void pascal near items_miss_add(void);
// --------------------------------