/*******************************************************************

  XPUYO   puyo-puyo for X11          (c)1997 CDR/TK  (Tatsuya Kudoh)

  xpuyo.h ---- header file

  ヘッダーファイル

*******************************************************************/

#define NOTHING     0
#define WALL        7
#define WHITE_PUYO  8
#define KILLED      9


/* ハイスコアリスト */

typedef struct {
  int score;
  int block;
  int uid;
  char name[32];
  int rank;
} record_t;


/* 変数 */
extern char* Myname;

extern record_t Record[];
extern int Record_entry;

extern int Dir_x[4];
extern int Dir_y[4];

extern int Sc;
extern int Sc_block;
extern int Sc_base;
extern int Sc_multi;
extern int Level;
extern Level_start;
extern int Colors;
extern int Speed;


extern record_t Record[];
extern record_t Player;


/*  screen.c */

void init_map( void );
void refresh( void );
int fall_all( void );
int kill_puyo( void );
void set_puyo( int x, int y, int col );
int  ismove( int x, int y );
void dead( void );


/* move.c */

void make_next( void );
int init_move( void );
int fall_puyo( void );
void settle_puyo( void );
void move_puyo( int d );
void rotate_puyo( int d );


/* graphic.c */

void put_graph( int x, int y, int col, int form );
int set_graph( int x, int y, int col, int form );
void flush_scr( void );
void save_scr( void );
void blink( int i );
void put_next( int col1, int col2 );
void clear_screen( void );


/* misc.c */

int rnd( int maximum );


/* score.c */

void set_level( void );
void init_calc( void );
void start_calc( void );
void add_score( int puyo );
void calc_score( void );

/* record.c */

int init_record( void );
int save_record( void );

/*main.c */
void put_score( void );
