/*============================================================================
  wsBg.h ver.1.00 「ワンダースワン背景制御」ヘッダファイル
------------------------------------------------------------------------------
												Programmed by Keiichi.Tago.
============================================================================*/

/* -------------------- 2 重定義防止 */
#if !defined WSBG
#define WSBG 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 BGOBJECT_MAX 8
/* 背景表示モード */
#define SETVRAM_NORMAL     0x0000
#define SETVRAM_RL_REVERSE 0x0001
#define SETVRAM_UD_REVERSE 0x0002
/* エフェクト */
#define SETEFFECT_NORMAL  0x0000
#define SETEFFECT_DIVIDE  0x0001
#define SETEFFECT_UNE     0x0002
#define SETEFFECT_RASTER1 0x0003
#define SETEFFECT_RASTER2 0x0004

/* -------------------- 関数デフォルト定義 */
void wsBgInit( int nSetColorMode );
void wsBgSetObjectFile( int nObjectNumber, char far *lpPath );
void wsBgSetChr( int nObjectNumber, int nChrNumber, int nDefineNumber, int nNumOfDefine );
void wsBgSetPalet( int nObjectNumber, int nPaletNumber, int nDefineNumber );
void wsBgSetVram( int nScreen, int nObjectNumber, int nBgNumber, int nDefineNumber, int nX, int nY, int nColor, int nMode );
void wsBgInitScroll( int nScreen, int nObjectNumber, int nBgNumber, int nX, int nY, int nColor );
void wsBgScroll( int nVx, int nVy );
int wsBgGetScrollPositionX( void );
int wsBgGetScrollPositionY( void );
WORD wsBgGetChrNumber( int nX, int nY );
void wsBgSetBgSpeed( int nSpeed );
void wsBgSetBgAutoScroll( int nVx, int nVy, int nSpeed );
void wsBgSetEffect( int nScreen, int nMode, int nParam1, int nParam2, int nParam3 );
void wsBgSetEffectParam( int nParam1, int nParam2, int nParam3 );
void wsBgPutChar( int nScreen, int nDefineNumber, int nX, int nY, int nPalet );
void wsBgSetPutRange( int nStartNumber, int nEndNumber );
void wsBgSetLetter( int nDefineNumber, int nCode, int nColor, int nShadowColor );
void wsBgPutLetter( int nScreen, int nDefineNumber, int nX, int nY, int nPalet, int nColor, int nShadowColor, int nCode );
void wsBgPutString( int nScreen, int nDefineNumber, int nX, int nY, int nPalet, int nColor, int nShadowColor, char *lpString );

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