220 lines
3.3 KiB
C
220 lines
3.3 KiB
C
#ifndef BOMBER_H
|
|
#define BOMBER_H
|
|
|
|
#include "SDL.h"
|
|
|
|
typedef unsigned char uchar;
|
|
extern int xcolors[256];
|
|
#define NUMGFX 3
|
|
#define IXSIZE 640
|
|
#define IYSIZE 480
|
|
|
|
|
|
#define MYF1 0x180
|
|
#define MYF2 0x181
|
|
#define MYF3 0x182
|
|
#define MYF4 0x183
|
|
#define MYF5 0x184
|
|
#define MYF6 0x185
|
|
#define MYF7 0x186
|
|
#define MYF8 0x187
|
|
#define MYF9 0x188
|
|
#define MYF10 0x189
|
|
#define MYLEFT 0x190
|
|
#define MYRIGHT 0x191
|
|
#define MYUP 0x192
|
|
#define MYDOWN 0x193
|
|
#define MYPAGEUP 0x194
|
|
#define MYPAGEDOWN 0x195
|
|
#define MYHOME 0x196
|
|
#define MYEND 0x197
|
|
#define MYALTL 0x198
|
|
#define MYALTR 0x199
|
|
|
|
#define MYDELETE 0x7f
|
|
|
|
#define MYSHIFTED 0x40
|
|
#define MYALTED 0x200
|
|
|
|
|
|
typedef struct gfxset
|
|
{
|
|
uchar gs_colormap[768];
|
|
uchar gs_inout[256];
|
|
uchar *gs_pic;
|
|
int gs_xsize;
|
|
int gs_ysize;
|
|
} gfxset;
|
|
|
|
typedef struct figure
|
|
{
|
|
int xsize,ysize;
|
|
int xdelta,ydelta;
|
|
uchar *graphics;
|
|
} figure;
|
|
|
|
typedef struct solid
|
|
{
|
|
int xsize,ysize;
|
|
uchar *graphics;
|
|
} solid;
|
|
|
|
typedef struct listhead listhead;
|
|
struct listhead {
|
|
listhead *prev, *next;
|
|
};
|
|
|
|
typedef struct player {
|
|
listhead list, list_all_players;
|
|
int xpos,ypos;
|
|
int flags;
|
|
int abilities;
|
|
int speed;
|
|
int speedturtle_timeout;
|
|
int bombsused;
|
|
int bombsavailable;
|
|
int flamelength;
|
|
int *at;
|
|
int figcount;
|
|
int doing;
|
|
int action;
|
|
int color;
|
|
int controller;
|
|
int fixx,fixy;
|
|
int kills, deaths;
|
|
figure *figure;
|
|
} player;
|
|
|
|
#define FLG_CONTROL 1
|
|
#define FLG_DEAD 2
|
|
|
|
|
|
typedef struct sprite {
|
|
int flags;
|
|
int xpos,ypos;
|
|
figure *fig;
|
|
} sprite;
|
|
|
|
typedef struct damage {
|
|
int xpos,ypos;
|
|
int xsize,ysize;
|
|
} damage;
|
|
|
|
typedef struct bomb {
|
|
listhead list;
|
|
int type;
|
|
int xpos,ypos;
|
|
int px,py;
|
|
int power;
|
|
int timer;
|
|
int figcount;
|
|
player *owner;
|
|
} bomb;
|
|
|
|
|
|
#define BOMB_OFF 0
|
|
#define BOMB_NORMAL 1
|
|
#define BOMB_CONTROLLED 2
|
|
#define BOMBLIFE 60
|
|
#define BOMB_CONTROLLED_LIFE 150
|
|
#define FLAMELIFE 15
|
|
#define DECAYLIFE 15
|
|
|
|
typedef struct flame {
|
|
listhead list;
|
|
int xpos,ypos;
|
|
int px,py;
|
|
int timer;
|
|
int lurd;
|
|
player *owner;
|
|
} flame;
|
|
|
|
#define FL_UP 2
|
|
#define FL_DOWN 8
|
|
#define FL_LEFT 1
|
|
#define FL_RIGHT 4
|
|
|
|
typedef struct brickdecay {
|
|
listhead list;
|
|
int xpos,ypos;
|
|
int px,py;
|
|
int timer;
|
|
} brickdecay;
|
|
|
|
typedef struct bonustile {
|
|
listhead list;
|
|
int xpos,ypos;
|
|
int px,py;
|
|
int type;
|
|
} bonustile;
|
|
|
|
typedef struct generic {
|
|
listhead list;
|
|
int xpos,ypos;
|
|
int px,py;
|
|
int timer;
|
|
void (*process)();
|
|
void (*draw)();
|
|
void *ptr1,*ptr2;
|
|
int data1,data2;
|
|
} generic;
|
|
|
|
enum tile_types {
|
|
TILE_NONE = -1,
|
|
TILE_DISEASE = 0,
|
|
TILE_KICK = 1,
|
|
TILE_FLAME = 2,
|
|
TILE_PUNCH = 3,
|
|
TILE_SKATES = 4,
|
|
TILE_BOMB = 5,
|
|
TILE_SPOOGE = 6,
|
|
TILE_GOLDFLAME = 7,
|
|
TILE_BAD_DISEASE = 8,
|
|
TILE_TRIGGER = 9,
|
|
TILE_RANDOM = 10,
|
|
TILE_JELLY = 11,
|
|
TILE_GRAB = 12,
|
|
TILE_RANDOM2 = 13,
|
|
TILE_TURTLE = 14
|
|
};
|
|
|
|
|
|
#define ACT_INVALID 0x88
|
|
#define ACT_NONE 0
|
|
#define ACT_UP 1
|
|
#define ACT_DOWN 2
|
|
#define ACT_LEFT 3
|
|
#define ACT_RIGHT 4
|
|
#define ACT_ENTER 5
|
|
#define ACT_QUIT 6
|
|
#define ACT_MASK 0x1f
|
|
#define ACT_PRIMARY 0x40
|
|
#define ACT_SECONDARY 0x80
|
|
|
|
|
|
#define FIELD_EMPTY 0
|
|
#define FIELD_BORDER 1
|
|
#define FIELD_BOMB 2
|
|
#define FIELD_BRICK 3
|
|
#define FIELD_FLAME 4
|
|
#define FIELD_EXPLODING 5
|
|
#define FIELD_BONUS 6
|
|
|
|
#define CODE_CONT 0
|
|
#define CODE_QUIT 1
|
|
#define CODE_ALLDEAD 2
|
|
|
|
|
|
|
|
#define MAXTHINGS 500
|
|
#define MAXSETS 8
|
|
#define MAXSPRITES 256
|
|
#define MAXDAMAGES 512
|
|
|
|
extern volatile char exitflag;
|
|
|
|
extern uchar needwhole;
|
|
extern figure walking[MAXSETS][60];
|
|
|
|
#endif /* BOMBER_H */
|