ReC98/th05/sprites/main_pat.h

138 lines
3.9 KiB
C

#include "th04/sprites/cels.h"
#define PARTICLE_W 16
#define PARTICLE_H 16
#define PARTICLE_CELS 4
#define B4BALL_CELS 4
#define B4_CELS 16
/// Pattern numbers for the super_*() functions.
/// Since super_entry_bfnt() doesn't take a "start patnum" parameter, the
/// order in which the files are loaded has to match the order here.
typedef enum {
/// Stage-independent
/// =================
// miko32.bft
// ----------
PAT_ENEMY_KILL = 4,
PAT_ENEMY_KILL_last = (PAT_ENEMY_KILL + ENEMY_KILL_CELS - 1),
PAT_CLOUD_BULLET16_BLUE,
PAT_CLOUD_BULLET16_BLUE_last = (PAT_CLOUD_BULLET16_BLUE + BULLET_CLOUD_CELS - 1),
PAT_CLOUD_BULLET16_RED,
// ----------
// reimu16.bft / mari16.bft / mima16.bft / yuka16.bft
// --------------------------------------------------
PAT_SHOT_SUB = 22,
PAT_OPTION = 26,
// --------------------------------------------------
// miko16.bft / st06_16.bft
// ------------------------
PAT_ITEM = 36,
// Non-directional bullets
PAT_BULLET16_N_BLUE = 44,
PAT_BULLET16_N_BALL_BLUE = PAT_BULLET16_N_BLUE,
PAT_BULLET16_N_OUTLINED_BALL_BLUE,
PAT_BULLET16_N_SMALL_BALL_BLUE,
PAT_BULLET16_N_CROSS_BLUE, // Green during the EX-Alice battle
PAT_BULLET16_N_RED,
PAT_BULLET16_N_BALL_RED = PAT_BULLET16_N_RED,
PAT_BULLET16_N_OUTLINED_BALL_RED,
PAT_BULLET16_N_SMALL_BALL_RED,
PAT_BULLET16_N_STAR,
// Directional bullets
PAT_BULLET16_D,
PAT_BULLET16_D_BLUE = PAT_BULLET16_D,
PAT_BULLET16_D_BLUE_last = (PAT_BULLET16_D_BLUE + BULLET_D_CELS - 1),
PAT_BULLET16_D_GREEN, // Purple during the EX-Alice battle
PAT_BULLET16_D_GREEN_last = (PAT_BULLET16_D_GREEN + BULLET_D_CELS - 1),
// Vector bullets
PAT_BULLET16_V,
PAT_BULLET16_V_RED = PAT_BULLET16_V,
PAT_BULLET16_V_RED_last = (PAT_BULLET16_V_RED + BULLET_V_CELS - 1),
PAT_BULLET16_V_BLUE, // Yellow during the EX-Alice battle
PAT_BULLET16_V_BLUE_last = (PAT_BULLET16_V_BLUE + BULLET_V_CELS - 1),
PAT_CLOUD_PELLET,
PAT_CLOUD_PELLET_last = (PAT_CLOUD_PELLET + BULLET_CLOUD_CELS - 1),
PAT_BULLET_KILL,
PAT_BULLET_KILL_last = (PAT_BULLET_KILL + BULLET_DECAY_CELS - 1),
PAT_DECAY_PELLET,
PAT_DECAY_PELLET_last = (PAT_DECAY_PELLET + BULLET_DECAY_CELS - 1),
PAT_DECAY_BULLET16,
PAT_DECAY_BULLET16_last = (PAT_DECAY_BULLET16 + BULLET_DECAY_CELS - 1),
PAT_FIREWAVE_LEFT = 168, // st06_16.bft only
PAT_FIREWAVE_RIGHT, // st06_16.bft only
PAT_EXPLOSION_SMALL,
PAT_PARTICLE = 172,
PAT_PARTICLE_last = (PAT_PARTICLE + PARTICLE_CELS - 1),
PAT_MIKO16_UNUSED_0,
PAT_MIKO16_UNUSED_1,
PAT_MIKO16_UNUSED_2,
// ------------------------
// bomb0.bft / bomb3.bft
// ---------------------
PAT_PLAYCHAR_BOMB,
// ---------------------
/// =================
/// Stage 4
/// =======
// st03.bb1 / st03.bb2
// -------------------
// Internally, both Mai and Yuki use Mai's patnums, starting at PAT_MAI.
// They are only differentiated inside the rendering function, by adding
// B4_CELS onto the patnum for Yuki. Thus, both files are assumed to have
// the same number of sprites.
PAT_MAI,
PAT_B4_STILL = PAT_MAI,
PAT_B4_RIGHT,
PAT_B4_LEFT,
PAT_YUKI = (PAT_MAI + B4_CELS),
// -------------------
// st03.bb3
// --------
PAT_B4BALL_SNOW = 212,
PAT_B4BALL_SNOW_last = (PAT_B4BALL_SNOW + B4BALL_CELS - 1),
PAT_B4BALL_FIRE,
PAT_B4BALL_FIRE_last = (PAT_B4BALL_FIRE + B4BALL_CELS - 1),
PAT_B4BALL_SNOW_HIT,
PAT_B4BALL_SNOW_HIT_last = (PAT_B4BALL_SNOW_HIT + B4BALL_CELS - 1),
PAT_DECAY_B4BALL,
PAT_DECAY_B4BALL_last = (PAT_DECAY_B4BALL + BULLET_DECAY_CELS - 1),
// --------
/// =======
/// Stage 5
/// =======
// st04.bb2
// --------
PAT_KNIFE = 193,
PAT_KNIFE_last = (PAT_KNIFE + BULLET_V_CELS),
PAT_DECAY_KNIFE,
PAT_DECAY_KNIFE_last = (PAT_DECAY_KNIFE + BULLET_DECAY_CELS - 1),
/// -------
/// =======
/// Stage 6
/// =======
// st05.bb4
// --------
PAT_B6BALL_BLUE_1 = 200,
PAT_B6BALL_PURPLE,
PAT_B6BALL_BLUE_2,
PAT_B6BALL_BLUE_3,
PAT_DECAY_B6BALL,
PAT_DECAY_B6BALL_last = (PAT_DECAY_B6BALL + BULLET_DECAY_CELS - 1),
/// -------
/// =======
} main_patnum_t;