/***  スプライト制御ルーチンヘッダー  ***/

#define IDX_MAX			896
#define PALSTK_MAX		( 16 * 256 )

#define BAK0_IDX	  0		/* インデックス格納オフセット	*/
#define MAIN_IDX	 16
#define BAK1_IDX	240
#define BACK_IDX	256

#define	SCR_WC		18
#define	SCR_WD		( SCR_WC * 16 )
#define SCR_OFSX	-16
#define SCR_OFSY	-16

#define FRAME_X		( map_dtx - SCR_OFSX & 4095 )
#define FRAME_Y		( map_dty - SCR_OFSY & 4095 )
#define FRM_CX		( map_dtx - SCR_OFSX + 128 & 4095 )
#define FRM_CY		( map_dty - SCR_OFSY + 128 & 4095 )

#define IMGMAP_WDX		( imgmap_wx << 4 )
#define IMGMAP_WDY		( imgmap_wy << 4 )
#define IMGMAP_BUF(x,y)	*( imgmap_p + (x) + imgmap_wx * (y) )

extern	unsigned short	*imgmap_p ;
extern	int		pattern_idx[];
extern	int		imgmap_wx, imgmap_wy, map_dtx, map_dty, map_chx, map_chy ;
extern	int		scr_chx, scr_chy ;

void	sprite_end( void ), sprite_init( void );
void	scroll( int xm, int ym );
void	map_init( void ), map_reset( int x, int y );
int		load_imagemap( char *fname );
int		load_sprite( char *fname, int spr_ofs, int pal_ofs );
