/*============================================================================
  wsSprite.h ver.1.00 「ワンダースワンスプライト制御」ヘッダファイル
------------------------------------------------------------------------------
												Programmed by Keiichi.Tago.
============================================================================*/

/* -------------------- 2 重定義防止 */
#if !defined WSSPRITE
#define WSSPRITE 1

/* -------------------- ヘッダファイル登録 */
#include <sys/fcntl.h>
#include <sys/disp.h>
#include <sys/bios.h>
#include <sys/libwwc.h>
#include <stdio.h>
#include <stdlib.h>
#include "wsPalet.h"
#include "Define.h"

/* -------------------- スプライトモード定義 */
/* オブジェクトの最大数 */
#define OBJECT_MAX 8
/* スプライト */
#define SP_NORMAL     0x0000	/* 通常 */
#define SP_DEFCHR     0x0001	/* キャラクタ再定義 */
#define SP_CLRCHR     0x0002	/* 前回表示のキャラクタクリア */
#define SP_RL_REVERSE 0x4000	/* 左右反転 */
#define SP_UD_REVERSE 0x8000	/* 上下反転 */

/* -------------------- 構造体定義 */
typedef struct {
	/* -------------------- ヘッダ */
	BYTE Mark[ 4 ];		/* 'WSCD' */
	BYTE Ver;			/* バージョン */
	BYTE Type;			/* ( 00h = 白黒 / 01h = カラー ) */
	/* -------------------- 各データのオフセットアドレス */
	WORD lpChr;			/* キャラクタ */
	WORD lpPalet;		/* パレット */
	/* -------------------- オブジェクトデータのオフセットアドレス */
	WORD lpObject[ 64 ];
} CHRHEAD;

/* -------------------- 関数デフォルト定義 */
void wsSpInit( int nSetColorMode );
void wsSpSetObjectFile( int nObjectNumber, char far *lpPath );
void wsSpSetChr( int nObjectNumber, int nChrNumber, int nDefineNumber, int nNumOfDefine );
void wsSpSetPalet( int nObjectNumber, int nPaletNumber, int nDefineNumber );
void wsSpSetObject( int nObjectNumber, int nPatternNumber, int nSpriteNumber, int nDefineNumber, int nPalet, int nX, int nY );
void wsSpMoveObject( int nObjectNumber, int nPatternNumber, int nSpriteNumber, int nX, int nY );
void wsSpSetLetter( int nDefineNumber, int nCode, int nColor, int nShadowColor );
void wsSpPutChar( int nSpriteNumber, int nDefineNumber, int nX, int nY, int nColor );
void wsSpPutString( int nSpriteNumber, int nDefineNumber, int nX, int nY, int nPalet, int nColor, int nShadowColor, char *lpString );

/* -------------------- 2 重定義防止 */
#endif
