Files
RustRaptor/raptor/src/anims.h
T

91 lines
2.1 KiB
C

#pragma once
#include "enemy.h"
typedef enum
{
A_NORM,
A_MOVEUP,
A_MOVEDOWN
}ANIM_DIR;
typedef enum
{
GROUND,
MID_AIR,
HIGH_AIR
}GFLAG;
typedef struct ANIMLIB_S
{
int item;
int numframes;
int groundflag;
int playerflag;
int transparent;
int adir;
int xoff;
int yoff;
}ANIMLIB;
typedef struct ANIMS_S
{
struct ANIMS_S *prev;
struct ANIMS_S *next;
int item;
int dx;
int dy;
int pdx; // PREV SIM DX (INTERP)
int pdy; // PREV SIM DY (INTERP)
int x;
int y;
int curframe;
ANIMLIB *lib;
int groundflag;
SPRITE_SHIP *en;
int edone;
}ANIMS;
#define A_LARGE_GROUND_EXPLO1 0
#define A_SMALL_GROUND_EXPLO 1
#define A_PERSON 2
#define A_PLATOON 3
#define A_LARGE_AIR_EXPLO 4
#define A_MED_AIR_EXPLO 5
#define A_SMALL_AIR_EXPLO 6
#define A_MED_AIR_EXPLO2 7
#define A_ENERGY_AIR_EXPLO 8
#define A_LASER_BLAST 9
#define A_SMALL_SMOKE 10
#define A_SMALL_SMOKE_DOWN 11
#define A_SMALL_SMOKE_UP 12
#define A_ENERGY_GRAB_HIT 13
#define A_BLUE_SPARK 14
#define A_ORANGE_SPARK 15
#define A_PLAYER_SHOOT 16
#define A_GROUND_FLARE 17
#define A_GROUND_SPARKLE 18
#define A_ENERGY_GRAB 19
#define A_SUPER_SHIELD 20
// Machine-gun ejecta: same GUNSTR streak art dropped into world space at
// the wingtips (ground layer, drifts with the map scroll) so casings stay
// behind the plane instead of flicking in place at the gun.
#define A_PLAYER_EJECTA 21
void ANIMS_Clear(void);
ANIMS *ANIMS_Remove(ANIMS *anim);
void ANIMS_Init(void);
void ANIMS_CachePics(void);
void ANIMS_FreePics(void);
void ANIMS_StartAnim(int handle, int x, int y);
void ANIMS_StartGAnim(int handle, int x, int y);
void ANIMS_StartEAnim(SPRITE_SHIP *en, int handle, int x, int y);
void ANIMS_StartAAnim(int handle, int x, int y);
void ANIMS_Think(void);
void ANIMS_DisplayGround(void);
void ANIMS_DisplaySky(void);
void ANIMS_DisplayHigh(void);