sdlbomber/bomber.h

215 regels
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 */