Files
Justin Marshall 101266ab72 Initial commit.
2026-04-27 10:35:40 -07:00

136 lines
4.0 KiB
C++

/*-----------------------------------------------------------------------**
** Diablo
**
** Constants and Variables
**
** (C)1996 Condor, Inc. All rights reserved.
**
**-----------------------------------------------------------------------**
** $Header: /Diablo/MISDAT.H 2 1/23/97 12:21p Jmorin $
**-----------------------------------------------------------------------**
**
** File Routines
**-----------------------------------------------------------------------*/
/*-----------------------------------------------------------------------**
** Defines
**-----------------------------------------------------------------------*/
typedef void (*MIADDPRC)(int mi, int sx, int sy, int dx, int dy, int midir, char mienemy, int id, int dam);
typedef void (*MIPROC)(int i);
#define MIS_WEAP 0
#define MIS_SPL 1
#define MIS_NONE 2
// Missile Magic Type
#define MIMT_NONE 0
#define MIMT_FIRE 1
#define MIMT_LGHT 2
#define MIMT_MISC 3
#define MIMT_ACID 4
// Missile File Flags
#define MFF_MONSTONLY 1 // Only loaded for particular monsters
#define MFF_STATIC 2 // Do not animate -- one frame per direction
#define MFF_MULTI 4 // All directions of anim are in one file
#define MF_NONE 255
#define MF_STARTLOAD 0
#define MF_ARROW 0
#define MF_FIREBOLT 1
#define MF_GUARDIAN 2
#define MF_LIGHTNING 3
#define MF_FIRE 4
#define MF_EXP1 5
#define MF_TOWN 6
#define MF_FLASH1 7
#define MF_FLASH2 8
#define MF_MANASHLD 9
#define MF_BLOOD 10
#define MF_BONE 11
#define MF_METAL 12
#define MF_FARROW 13
#define MF_DOOM 14
#define MF_GOLEM 15
#define MF_SPURT 16
#define MF_BOOM 17
#define MF_STONE 18
#define MF_BIGEXP 19
#define MF_FLAMES 20
#define MF_THINLIGHT 21
#define MF_FLARE 22
#define MF_FLAREXP 23
#define MF_MAGBALL 24
#define MF_KRULL 25
#define MF_CBOLT 26
#define MF_HBOLT 27
#define MF_HEXPL 28
#define MF_LARROW 29
#define MF_FAEXP 30
#define MF_ACID 31
#define MF_ACIDSPLAT 32
#define MF_ACIDPUD 33
#define MF_ETHER 34
#define MF_FIRERUN 35
#define MF_RESURRECT 36
#define MF_BONESPIRIT 37
#define MF_RPORTAL 38
#define MF_FIREPLAR 39
#define MF_BFLARE 40
#define MF_BFLAREXP 41
#define MF_CFLARE 42
#define MF_CFLAREXP 43
#define MF_DFLARE 44
#define MF_DFLAREXP 45
#define MF_HORKSPAWN 46
#define MF_REFLECTSHLD 47
#define MF_ORANGEFLARE 48
#define MF_BLUEFLARE 49
#define MF_REDFLARE 50
#define MF_YELLOWFLARE 51
#define MF_RUNEHOTSPOT 52
#define MF_YELLOWEXPLOSION 53
#define MF_BLUEEXPLOSION 54
#define MF_REDEXPLOSION 55
#define MF_BLUE2FLARE 56
#define MF_ORANGEEXPLOSION 57
#define MF_BLUE2EXPLOSION 58
/*-----------------------------------------------------------------------**
** Structures
**-----------------------------------------------------------------------*/
typedef struct {
BYTE mName; // #defines name of missile for ease of use
MIADDPRC mAddProc; // procedure for creating one of these missiles
MIPROC mProc; // procedure to run each frame
BOOL mDraw; // missile draw or not flag
BYTE mType; // missile type (weapon, spell, none)
BYTE mResist; // missile resistance type (fire, light, misc, none)
BYTE mFileNum; // file# of missile gfx table
int mlSFX; // missile launch sound
int miSFX; // missile impact sound
} MissileData;
typedef struct {
BYTE mAnimName; // #defines name of missile file for ease of use
BYTE mAnimFAmt; // amount of files
char *mAnimPath; // path for cels
BOOL mFlags; // e.g. MFF_MONSTOLY
BYTE *mAnimData[16]; // data pointer to anim tables
BYTE mAnimDelay[16]; // anim delay amount
BYTE mAnimLen[16]; // number of anim frames
long mAnimWidth[16]; // anim width
long mAnimWidth2[16]; // anim width2
} MisFileData;
/*-----------------------------------------------------------------------**
** Externs
**-----------------------------------------------------------------------*/
extern MissileData missiledata[];
extern MisFileData misfiledata[];
/*-----------------------------------------------------------------------**
** Prototypes
**-----------------------------------------------------------------------*/