/*	
 *	clipsl5n.h
 *
 *	スロットゲーム用サブルーチン集(5ライン・ノーマル機)
 *
 *	CLiP - Common Library for P/ECE
 *	Copyright (C) 2001-2016 Naoyuki Sawa
 *
 *	* Tue Jun 24 21:30:13 JST 2014 Naoyuki Sawa
 *	- 1stリリース。
 *	- 当モジュールは、PCでツールを作成する時にプロジェクトに含めて使用します。
 *	  P/ECE上で直接使用することは無いので、clip.h,Makefileには含めていません。
 *	* Wed Nov 18 21:37:53 JST 2015 Naoyuki Sawa
 *	- 'extern "C" {'〜'}'で囲みました。.cppを含むWin32プロジェクトからもインクルード出来るようにするためです。
 *	* Sun Jul 24 21:18:15 JST 2016 Naoyuki Sawa
 *	- clipsl5n.cに、clipsl5n.hのインクルードを追加しました。
 *	  /clip/libclip/extclip.hはclipsl5n.hをインクルードしないので、clipsl5n.c,及び,アプリケーションが明示的にインクルードする必要が有ります。
 *	  /clip/libclip/extclip.hがclipsl5n.hをインクルードしない理由は、clipsl5n.h,clipsl4r.h,clipsl1a.hが排他だからです。
 */
#ifndef __CLIP_SL5N_H__
#define __CLIP_SL5N_H__

#ifdef  __cplusplus
extern "C" {
#endif//__cplusplus

/****************************************************************************
 *	スペックデータ作成・出力
 ****************************************************************************/
#ifdef  WIN32	//PC上でスペックデータを作成する時に使用します。P/ECE上では使用しません。
/* 絵柄 */
typedef struct _ST_Slot_Spec_Pict {
	unsigned char	iColor;							//色							0=灰,1=赤,2=緑,3=黄,4=青,5=紫,6=空,7=白
	const char	*pSym,*pName;						//シンボル,名前						アプリケーション定義であるが、セブン絵柄の名前の一部(又は全体)を「ｾﾌﾞﾝ」とすること。チェリー絵柄の名前の一部(又は全体)を「ﾁｪﾘｰ」とすること。それ以外は、自由に定義して良い。
} ST_Slot_Spec_Pict;
/* 条件装置 */
typedef struct _ST_Slot_Spec_HitCd {
	unsigned char	iColor;							//色							0=灰,1=赤,2=緑,3=黄,4=青,5=紫,6=空,7=白
	const char	*pSym,*pName;						//シンボル,名前						アプリケーション定義であるが、ボーナスの名前の一部(又は全体)を「ﾎﾞｰﾅｽ」とすること。CT中全小役の名前の一部(又は全体)を「全小役」とすること。それ以外は、自由に定義して良い。
	unsigned short	aWeight[6];						//[設定値]⇒(抽選値-1)					(1-1)〜(65536-1)
} ST_Slot_Spec_HitCd;
/* 絵柄組合せ */
typedef struct _ST_Slot_Spec_HitFlg {
	unsigned char	iColor;							//色							0=灰,1=赤,2=緑,3=黄,4=青,5=紫,6=空,7=白
	const char	*pSym,*pName;						//シンボル,名前
	unsigned char	aPict[3];						//[リール番号]⇒絵柄番号				   0〜(SIZE_Pict-1)
	unsigned char	nPay;							//払出枚数						   0〜15
	char		aPriority[64/*SIZE_HitCd*/];				//[条件装置番号]⇒優先度				-1,0,1〜	「優先度=0」ならば、停止不可であることを示す。「優先度=(-1)」ならば、停止可能であるがそれ単独では停止不可であり、他の「優先度≧1」の絵柄組合せと同時に表示されねばならないことを示す。
} ST_Slot_Spec_HitFlg;
/* スペック情報 */
typedef struct _ST_Slot_SpecInfo {
	/* 絵柄 */
	const ST_Slot_Spec_Pict (*TBL_Pict/*[SIZE_Pict]*/);			//[絵柄番号]⇒絵柄
	int SIZE_Pict;								//絵柄の数						1〜10
	/* リール配列 */
	const unsigned short (*TBL_Reel/*[21]*/);				//[絵柄位置]⇒絵柄番号([3:0]=左,[7:4]=中,[11:8]=右)	アプリケーション定義であるが、「[0]=Any」とすること。それ以外は、自由に定義して良い。
	int CT_Reel;								//CT中に無制御とするリール番号				0=左,1=中,2=右 (CT非搭載ならばどの値でも関係無い)
	/* 条件装置 */
	const ST_Slot_Spec_HitCd (*TBL_HitCd/*[SIZE_HitCd]*/);			//[条件装置番号]⇒条件装置				アプリケーション定義であるが、「[0]=ハズレ」とすること。それ以外は、自由に定義して良い。
	int SIZE_HitCd;								//条件装置の数						1〜64
	/* 絵柄組合せ */
	const ST_Slot_Spec_HitFlg (*TBL_HitFlg/*[SIZE_HitFlg]*/);		//[絵柄組合せ番号]⇒絵柄組合せ				アプリケーション定義であるが、「[0]=ハズレ(Any,Any,Any)」とすること。それ以外は、自由に定義して良い。
	int SIZE_HitFlg;							//絵柄組合せの数					1〜256
} ST_Slot_SpecInfo;
/* スペックデータを作成する。
 * [in]
 *	pInfo		スペック情報
 * [note]
 *	- 使用例は、clip/Slot/SlotSpec.cを参照してください。
 */
void Slot_MakeSpec(const ST_Slot_SpecInfo* pInfo);
#endif//WIN32	//PC上でスペックデータを作成する時に使用します。P/ECE上では使用しません。

#ifdef  __cplusplus
}//extern "C"
#endif//__cplusplus

#endif/*__CLIP_SL5N_H__*/
