

typedef u_char	STONE;			/* 石 */

#define	AREA_MAX	12			/* エリア数 */
#define	STAGE_MAX	10			/* ステージ数 */

#define	FIELD_W		13			/* 盤の大きさ */
#define	FIELD_H		 8


/*** フィールドデータ *******/
typedef	struct {
	int		num;				/* 石の数 */
	int		dir;				/* 光線初期方向 */
	int		sx, sy;				/* 光線初期位置 */
	STONE	stone[FIELD_H][FIELD_W];	/* 石配置 */
} FIELD;

/*** 光線 *******/
typedef struct {
	int		dir;				/* 方向 */
	int		x, y;				/* 位置 */
} RAY;

#define	RAY_MAX		16			/* 光線の長さ */
#define FLASH_TIME	 6			/* フラッシュ時間 */


extern FIELD far*	field;							/* 現在のフィールド */
extern int		stone_cnt[FIELD_H][FIELD_W];		/* 石消去カウンタ */
extern RAY		ray[RAY_MAX];						/* 光線 */
extern int		cursor_x, cursor_y;					/* カーソル位置 */
extern Bool		cursor_disp;						/* カーソルを表示するか */
extern int		clear_flag;							/* クリア、失敗 */

extern int		area_num;							/* エリア番号 */
extern int		stage_num;							/* ステージ番号 */

extern u_short	play_data[AREA_MAX];				/* プレイデータ */


#define	check_stage(area, stage)	(play_data[area] & (1 << stage))
#define	check_area(area)			(play_data[area] >= (8 << 12))
													/* クリアしたか */

/**************** End of File **************************************/