/* $Id: bomberclone.h,v 1.30 2004/11/07 04:13:09 stpohle Exp $ */ /* bomberclone.h */ #ifndef _BOMBERCLONE_H_ #define _BOMBERCLONE_H_ #include #include #include #include #include #include #include #include #include #ifdef _WIN32 #include #include #include #ifndef S_ISDIR #define S_ISDIR(a) ((a & _S_IFDIR) == _S_IFDIR) #endif #ifndef S_ISREG #define S_ISREG(a) ((a & _S_IFREG) == _S_IFREG) #endif #else #include #include #include #include #include #include #include #include #endif #include #include #if HAVE_CONFIG_H #include "config.h" #endif #include "basic.h" #include "map.h" #include "gfx.h" #include "font.h" #include "sound.h" #include "network.h" #include "sysfunc.h" #include "keybinput.h" struct { char name[255]; } typedef _serverlist; struct { char datapath[512]; int p_nr; // playernumber of the first local player int p2_nr; // playernumber of the second local player int p_servnr; // Playernumber of the Server int last_ex_nr; // number of the last explosion int updatestatusbar; // 1 if statusbar has to be updated unsigned char state; int init_timeout; // gametimeout init value float timeout; // game timeout char playername[LEN_PLAYERNAME]; char player2name[LEN_PLAYERNAME]; int players_nr_s; // number of players at the beginning int players_nr; // number of player who are alife signed char lastwinner; // number of the last winnet int maxplayer; // number of max players for the server int sock; // the server socket int net_ai_family; char port[LEN_PORT]; // what port we're using char servername[LEN_SERVERNAME + LEN_PORT + 2]; // holds the name of the current server char gamename[LEN_GAMENAME]; // this will hold the game name char ogcserver[LEN_SERVERNAME+LEN_PORT+2]; char password[LEN_PASSWORD]; // password for the game int passwordenabled; // if the server use the password char ogc_port[LEN_PORT]; int firewall; int notifygamemaster; int askplayername; // ask player for name at startup int start_bombs; // start values int start_range; float start_speed; float bomb_tickingtime; // time before the bomb explodes unsigned char gametype; // GT_* values type of the Game if Deathmatch or other int dropitemsondeath; // if a player should drop items when he die unsigned char ai_players; // number of ai players } typedef _bomberclone; #define IS_LPLAYER2 (bman.p2_nr != bman.p_nr && bman.p2_nr >= 0 && bman.p2_nr < MAX_PLAYERS) struct { signed char dir; signed char bestdir; } typedef _airunaway; extern _bomberclone bman; extern Uint32 timestamp; extern float timefactor; extern float timediff; extern int debug; // Game routines.. extern void game_draw_info (); extern void game_keys_loop (); extern void game_loop (); extern void game_end (); extern void game_start(); extern void game_showresult (); extern int game_check_endgame (); extern void game_showresultnormal (); extern void game_showresultteam (); extern void game_menu_create (); extern void game_menu_loop (SDL_Event *event, int eventstate); // everything is declared in field.c extern void draw_field (); extern void field_clear(int x, int y); extern void field_animation_add (int x, int y); extern void field_animation (); extern void field_loop (); extern void field_hurrysize (); extern void field_hurrydropitems (); extern int field_check_alldirs (int x, int y, int type); extern void draw_stone (int x, int y); extern void stone_drawfire (int x, int y, int frame); extern void stonelist_add (int x, int y); extern void stonelist_del (); extern void stonelist_draw (); // configuration extern void config_init (int argc, char **argv); extern void config_menu (); extern int config_read(); extern int config_write(); extern void ReadPrgArgs (int argc, char **argv); extern void ReadPrgArgs_Jump (int argc, char **argv); // debug.c extern void d_in_pl_detail (char *head); extern void d_playerdetail (char *head); extern void d_gamedetail (char *head); extern void d_printf (char *fmt,...); extern void d_bitprint (int bits, int nr); extern void d_fatal (char *fmt,...); extern void debug_ingameinfo(); extern void d_printsdlrect (char *text, SDL_Rect *rect); extern void d_teamdetail (char *head); // special.c extern void special_use (int p_nr); extern void special_pickup (int p_nr, int s_type); extern void special_loop (); extern void special_clear (int p_nr); extern void special_push (int p_nr); extern void special_row (int p_nr); extern void special_trigger (int p_nr); extern void special_liquidmoved (int p_nr); extern void tileset_load (char *tileset, int dx, int dy); extern void tileset_random (); extern void tileset_free (); // help extern void help (int showpage); #endif