/*
 *	clippzlu.h
 *
 *	PuZzLe game UTiLity
 *
 *	* Sat Jul 15 23:41:47 JST 2017 Naoyuki Sawa
 *	- 1st リリース。
 *	  まずは、PzlUtl_GetRgn()だけを作成しました。
 *	  ぷよぷよタイプの落ち物パズルの消滅判定を行う関数です。
 *	* Mon Jul 17 22:58:52 JST 2017 Naoyuki Sawa
 *	- PzlUtl_GetLin()を追加しました。
 *	  コラムスタイプの落ち物パズルの消滅判定を行う関数です。
 */
#ifndef __CLIP_PZLU_H__
#define __CLIP_PZLU_H__
#ifdef  __cplusplus
extern "C" {
#endif//__cplusplus
//*****************************************************************************
//	構造体
//*****************************************************************************
//領域情報
typedef struct _ST_PzlRgn {
	uint16_t	len;		//+ 0, 2 この領域に属するセルの数。			1〜w*h
	uint16_t	head;		//+ 2, 2 この領域に属する最初のセル番号(=x+y*w)。	0〜w*h-1
} ST_PzlRgn;				//= 4
//*****************************************************************************
//	グローバル関数
//*****************************************************************************
int PzlUtl_GetRgn(ST_PzlRgn aRgn[/*(w*h)*/],
                  uint16_t aNext[/*(w*h)*/],
                  int w, int h,
                  int diag,
                  int minLen,
                  int (*fnGetColor)(int x, int y, void* user_data),
                  void* user_data);
int PzlUtl_GetLin(ST_PzlRgn aRgn[/*(w*h)*/],
                  int w, int h,
                  int dir,
                  int minLen,
                  int (*fnGetColor)(int x, int y, void* user_data),
                  void* user_data);
#ifdef  __cplusplus
}//extern "C"
#endif//__cplusplus
#endif//__CLIP_PZLU_H__
