// ＡＩＧライブラリ　スプライト関数
//	Copyright (C) 1998 by AIG-SOFT

#ifndef	__AIG_SPRITE__
#define	__AIG_SPRITE__	1	/* ヘッダー読み込みシンボル */

#include <stdio.h>
#include <iocslib.h>
#include "deftype.h"

#ifdef	__cplusplus
// 95/11 : G++対応
extern	"C" {
#endif

#ifdef	__PROTO_TYPE
	void	SP_SET1(int ,unchar );
	void	SP_SET1A(int ,int ,int ,int ,int );
	void	SP_PRW1(int ,int );
	void	SP_MOVE1(int ,int ,int );
	void	SP_PAL1(int ,int );
	void	SP_HVREV1(int ,int );
	int	SP_XY1(int ,int *);
	int	PTcode(int ,int ,int ,int );
	void	PCGPaletSet(FILE *,int);
	void	PCGCharSet(FILE *,int);
	
	void	bg_to_graph(int,int,int);
	void	sp_to_graph1(void);
	void	sp_to_graph2(void);
	int	pcg_to_graph(void);
	void	remake_pat(unsint *,int,int);
#else
	void	SP_SET1();
	void	SP_SET1A();
	void	SP_PRW1();
	void	SP_MOVE1();
	void	SP_PAL1();
	void	SP_HVREV1();
	int	SP_XY1();
	int	PTcode();
	void	PCGPaletSet();
	void	PCGCharSet();
	
	void	bg_to_graph();
	void	sp_to_graph1();
	void	sp_to_graph2();
	int	pcg_to_graph();
	void	remake_pat();
#endif

#ifdef	__cplusplus
}
#endif

// define版
#define	PTcodeD(vr,hr,pl,cd)	(((vr)<<15)|((hr)<<14)|((pl)<<8)|(cd))

// スプライトアドレス計算
#define	SP_ADRS(sp,of)	((unshort *)(0xeb0000+sp*8+of))

// スプライト優先順位
#define	SPOFF	0b00	/* 消す */
#define	SPLOW	0b01	/* BG0>BG1>SP */
#define	SPMID	0b10	/* BG0>SP>BG1 */
#define	SPHIGH	0b11	/* SP>BG0>BG1 */

// スプライト左右反転
#define	SPNM	0b00	/* 普通 */
#define	SPHR	0b01	/* 左右反転 */
#define	SPVR	0b10	/* 上下反転 */

#endif
