/*============================================================================*/
/*
	ww_key.c

	WonderWitchキー制御

	Version		Date			Design		Comment
	--------------------------------------------------------------------
	1.00		2000/08/19		Bonz

*/
/*============================================================================*/

/*==============================================================================
//	INCLUDE
//============================================================================*/
#include <sys/types.h>
#include <sys/bios.h>
#include "ww_key.h"

/*==============================================================================
//	DEFINE
//============================================================================*/
#define BIOS_INLINE

/*==============================================================================
//	TYPE DEFINE
//============================================================================*/

/*==============================================================================
//	ENUM
//============================================================================*/

/*==============================================================================
//	RESOURCE
//============================================================================*/

/*==============================================================================
//	GLOBAL
//============================================================================*/
static KEY	key_buffer;	/* キーデータバッファ */
KEY far		*key;		/* キーデータ（アクセス用） */

/*==============================================================================
//	PROTTYPE
//============================================================================*/

/*==============================================================================
//	FUNCTION
//============================================================================*/
/*------------------------------------------------------------------------------
//	キーシステム初期化
//	int	入力：オートリピート開始後のリピート間隔
//	int	入力：オートリピートを開始するまでの遅延時間(0でリピート無効)
//----------------------------------------------------------------------------*/
void WWSYS_InitKey(int rate, int delay)
{
	key_set_repeat(rate, delay);
	
	key_buffer.rate = rate;
	key_buffer.delay = delay;
	key_buffer.prev = 0;
	key_buffer.hit = 0;
	key_buffer.press = 0;
	
	key = &key_buffer;
}


/*------------------------------------------------------------------------------
//	キー入力監視
//----------------------------------------------------------------------------*/
void WWSYS_WatchKey(void)
{
	key_buffer.prev = key_buffer.hit;
	key_buffer.hit = key_hit_check_with_repeat() & 0x0ffe;
	key_buffer.press = key_press_check() & 0x0ffe;
}
