/*
	Free Cell & Speed for WonderSwan
		header file
*/

#define	BIOS_INLINE

#define	FILE_PATH	"/ram0/hima.scr"
#define	FILE_INFO	"[ひまつぶし]の記録"
#define STEP_FILE	"/ram0/hima.stp"
#define STEP_INFO	"クリア手順の記録"
#define	DATA_DIR	"/ram0"
#define	DATA_INFO	"card  #"
#define	MAX_DATAFILE	8

#define	freq2n(f)	(2048 - 3072000 / ((f) * 32))

#define CARDNUM		52

#define cards_width 39
#define cards_height 12
#define title_width 20
#define title_height 10

#define	CHAR_CARDS	0
#define CHAR_WAKU	(cards_width * cards_height)
#define CHAR_SPACE	(CHAR_WAKU + 4)
#define CHAR_STR	(CHAR_WAKU + 9)		/* あと35char */

typedef unsigned long	u_long;
typedef unsigned short	u_short;
typedef unsigned char	u_char;

void fcell_main( void );	/* fcell.c */
void speed_main( void );	/* speed.c */
unsigned short far *rotFont( unsigned short font[] );
unsigned char far *rotFontMono( unsigned char font[] );
void putSprite33( int n, int x, int y );
void dispWaku( int x, int y, int w, int h, int rot );
int msg( int x, int y, char *str, int rev, int rot, int font_pos );
int exitMenu( int x, int y, int w, int h, char *list[], int lines, int rot );
void score_read( void );
void score_write( void );
void screenFadeOut( void );
void screenFadeIn( void );
void play_card_put( void );
void play_key_push( void );
void play_disp_msg( void );
void play_game_clear( void );
void edit( void );		/* fcell.c */
int fnam_read( char fnam[][6] );


/* キャラクタデータ(独立したファイルで定義) */
extern unsigned short bmp_cards[];
extern unsigned short bmp_title[];

#ifndef _MAIN_

/* キャラクタデータ */
extern unsigned short waku[];

/* キャラクタ関連変数 */
extern unsigned short	card_char[4][13][9];
extern unsigned short	cell_char[9];
extern unsigned short	waku_spr[9];

/* スクリーン制御関連変数 */
extern int 	scroll_y;

/* 成績保存用変数 */
extern int 	win[4], lose[4], draw[4];
/* ただし，draw[3]は読み込みカードデータのファイル名を
　 格納した配列のインデックスとして使う
 */

/* SPEEDのCOMレベル */
extern int	level;

/* FreeCell用カードデータのファイル名 */
extern char	fnam[MAX_DATAFILE + 1][6];

#endif
