ReC98/th02/main/item/item.hpp

40 lines
1.3 KiB
C++

#include "pc98.h"
enum item_type_t {
IT_POWER = 0,
IT_POINT = 1,
IT_BOMB = 2,
IT_BIGPOWER = 3,
IT_1UP = 4,
IT_COUNT,
_item_type_t_FORCE_UINT8 = 0xFF
};
#define ITEM_COUNT 20
// Turns the next N power or point items spawned via items_add() into big power
// items. Used for recharging power after using a continue after a Game Over.
extern unsigned int item_bigpower_override;
// Spawns the Game Over item set on the next call to items_miss_add().
// ZUN bloat: Both turning this into a parameter or hardcoding the condition
// (as TH04 and TH05 do it) would have been better than this.
extern bool items_miss_add_gameover;
// Also picks a new starting point inside the hardcoded randomized item cycle
// used by items_add_semirandom().
void near items_init_and_reset(void);
// Unconditionally spawns a big power item if [item_bigpower_override] is > 0.
// Otherwise, spawns a bomb item with a 1-in-512 chance, or the next item along
// a hardcoded ring of power and point items.
void pascal items_add_semirandom(screen_x_t left, screen_y_t top);
void pascal items_add(int type, screen_x_t left, screen_y_t top);
// Spawns each of the items dropped when losing a life at the given position.
void pascal near items_miss_add(screen_x_t left, screen_y_t top);
void near items_update_and_render(void);