ReC98/th04/op/zunsoft.cpp

43 lines
1.2 KiB
C++

#include "libs/master.lib/pc98_gfx.hpp"
#include "th01/math/subpixel.hpp"
#include "th04/op/zunsoft.h"
// Copy of the palette used during the logo, to allow non-blocking fades in
// contrast to master.lib's blocking palette_black_in() and palette_black_out()
// functions. (Then again, master.lib has the PaletteTone global for that...)
Palette8 zunsoft_palette;
// ZUN Soft logo explosion structure.
// These are only animated by increasing the distance; origin, angle, and speed
// stay constant.
struct pyro_t {
bool alive;
uint8_t age;
SPPoint origin;
Subpixel distance_prev; // ZUN bloat: Unused.
Subpixel distance;
Subpixel speed;
unsigned char angle;
unsigned char patnum_base; // displayed sprite is incremented every 4 frames
};
// Spawns [n] new explosions at the given screen-coordinate [origin] position.
void pascal zunsoft_pyro_new(screen_point_t origin, int n, char patnum_base)
;
void zunsoft_update_and_render(void)
;
void zunsoft_palette_update_and_show(int tone)
;
static const int PYRO_COUNT = 256;
pyro_t pyros[PYRO_COUNT];
char zun00_pi[] = "zun00.pi";
char logo[] = "logo";
char zun02_bft[] = "zun02.bft";
char zun04_bft[] = "zun04.bft";
char zun01_bft[] = "zun01.bft";
char zun03_bft[] = "zun03.bft";