/*	
 *	cliplot.h
 *
 *	拪慖張棟
 *
 *	CLiP - Common Library for P/ECE
 *	Copyright (C) 2001-2014 Naoyuki Sawa
 *
 *	* Tue May 29 00:54:45 JST 2012 Naoyuki Sawa
 *	- 1st 儕儕乕僗丅
 *	* Sat Aug 03 00:18:29 JST 2013 Naoyuki Sawa
 *	- 拪慖昞偺僨乕僞峔憿傪曄峏偟丄拪慖楍偺悢傪捛壛偟傑偟偨丅
 *	  LOT_draw_table()偵晄惓側拪慖楍僀儞僨僋僗傪巜掕偟偨帪丄僄儔乕掆巭偡傞傛偆偵偟傑偟偨丅
 *	- tool/MkLotTbl.awk 傪曄峏偟丄怴偟偄僨乕僞峔憿偵増偭偨拪慖昞傪弌椡偡傞傛偆偵偟傑偟偨丅
 *	  傕偆丄屆偄僨乕僞峔憿偺拪慖昞傪巊梡偡傞帠偼偁傝傑偣傫丅
 *	* Tue Jan 14 23:30:11 JST 2014 Naoyuki Sawa
 *	- 拪慖昞偺僨乕僞峔憿傪曄峏偟丄拪慖楍偺id傪捛壛偟傑偟偨丅
 *	  LOT_draw_table()偺巇條傪曄峏偟丄拪慖楍傪僀儞僨僋僗偱側偔id偲僗僉僢僾夞悢偱巜掕偡傞傛偆偵偟傑偟偨丅
 *	- tool/MkLotTbl.awk 傪曄峏偟丄怴偟偄僨乕僞峔憿偵増偭偨拪慖昞傪弌椡偡傞傛偆偵偟傑偟偨丅
 *	  傕偆丄屆偄僨乕僞峔憿偺拪慖昞傪巊梡偡傞帠偼偁傝傑偣傫丅
 *	* Fri Jan 31 01:01:32 JST 2014 Naoyuki Sawa
 *	- LOT_get_column_weight()偲LOT_get_table_weight()傪捛壛偟傑偟偨丅
 *	* Fri Feb 28 01:16:14 JST 2014 Naoyuki Sawa
 *	- LOT_get_table_size()偲LOT_get_table_column_id()傪捛壛偟傑偟偨丅
 */
#ifndef __CLIP_LOT_H__
#define __CLIP_LOT_H__

/****************************************************************************
 *	巊梡椺嘆
 ****************************************************************************/
//	
//	廲寁偑65536偱偁傞拪慖昞偺丄偳偺峴偵摉慖偡傞偐傪拪慖偡傞偵偼丄LOT_draw_table()傪巊偄傑偡丅
//	
//	//劇劅劅劅劍劅劅劅劅劅劅劅劅劅劅劅劅劅劅劅劍劅劅劅劅劅劅劅劅劅劅劅劅劅劅劅劉
//	//劆  //  劆        掅妋棪(skip=0)        劆        崅妋棪(skip=1)        劆
//	//劌劅劅劅劑劅劅劅劍劅劅劅劍劅劅劅劍劅劅劅劑劅劅劅劍劅劅劅劍劅劅劅劍劅劅劅劎
//	//劆  id  劆INDEX1劆INDEX2劆INDEX3劆INDEX4劆INDEX1劆INDEX2劆INDEX3劆INDEX4劆
//	//劌劅劅劅劑劅劅劅劑劅劅劅劑劅劅劅劑劅劅劅劑劅劅劅劑劅劅劅劑劅劅劅劑劅劅劅劎
//	//劆ATARI1劆 26214劆     0劆     0劆     0劆  1638劆     0劆     0劆     0劆
//	//劆ATARI2劆 13107劆 16384劆     0劆     0劆  3277劆 24576劆     0劆     0劆
//	//劆ATARI3劆  6554劆     0劆     0劆 65536劆  6554劆     0劆     0劆     0劆
//	//劆ATARI4劆  3277劆 16384劆     0劆     0劆 13107劆 24576劆     0劆     0劆
//	//劆ATARI5劆  1638劆     0劆     0劆     0劆 26214劆     0劆     0劆 65536劆
//	//劋劅劅劅劏劅劅劅劏劅劅劅劏劅劅劅劏劅劅劅劏劅劅劅劏劅劅劅劏劅劅劅劏劅劅劅劊
//	//拪慖楍id
//	#define INDEX1 0
//	#define INDEX2 1
//	#define INDEX3 2
//	#define INDEX4 3
//	#define INDEX5 4
//	//摉慖抣id
//	#define ATARI1 0
//	#define ATARI2 1
//	#define ATARI3 2
//	#define ATARI4 3
//	#define ATARI5 4
//	const unsigned short TBL_lot[] = {
//		8,			//乧拪慖楍偺悢
//		//==== 掅妋棪 ===
//		//--- 拪慖楍[0] ---
//		INDEX1,5,		//乧拪慖楍偺id偲梫慺悢
//		ATARI1,26214-1,		//劉
//		ATARI2,13107-1,		//劆
//		ATARI3, 6554-1,		//劌拪慖楍={摉慖抣,廳傒抣}亊梫慺悢
//		ATARI4, 3277-1,		//劆
//		ATARI5, 1638-1,		//劊
//		//--- 拪慖楍[1] ---
//		INDEX2,2,
//	//	ATARI1,    0-1,		//佀(廳傒抣=0)偺梫慺偼僨乕僞偵娷傔側偄
//		ATARI2,16384-1,
//	//	ATARI3,    0-1,
//		ATARI4,16384-1,
//	//	ATARI5,    0-1,
//		//--- 拪慖楍[2] ---
//		INDEX3,0,		//佀梫慺偑傂偲偮傕柍偄拪慖楍傕昞尰壜擻
//	//	ATARI1,    0-1,
//	//	ATARI2,    0-1,
//	//	ATARI3,    0-1,
//	//	ATARI4,    0-1,
//	//	ATARI5,    0-1,
//		//--- 拪慖楍[3] ---
//		INDEX4,1,
//	//	ATARI1,    0-1,
//	//	ATARI2,    0-1,
//		ATARI3,65536-1,
//	//	ATARI4,    0-1,
//	//	ATARI5,    0-1,
//		//==== 崅妋棪 ===
//		//--- 拪慖楍[4] ---
//		INDEX1,5,		//乧拪慖昞偺拞偵摨偠id偑2夞埲忋弌尰偡傞応崌偼丄堷悢偺skip晹暘傪1埲忋偱巜掕壜擻丅
//		ATARI1, 1638-1,
//		ATARI2, 3277-1,
//		ATARI3, 6554-1,
//		ATARI4,13107-1,
//		ATARI5,26214-1,
//		//--- 拪慖楍[5] ---
//		INDEX2,2,
//		ATARI2,24576-1,
//		ATARI4,24576-1,
//		//--- 拪慖楍[6] ---
//		INDEX3,0,
//		//--- 拪慖楍[7] ---
//		INDEX4,1,
//		ATARI5,65536-1,
//	};
//	void test() {
//		int hitval1, hitval2;
//		hitval1 = LOT_draw_table(TBL_lot, INDEX1        , RND16(seed)); /* 拪慖楍[0]傪巊梡偟偰丄拪慖傪峴偆 */
//		hitval2 = LOT_draw_table(TBL_lot, INDEX1|(1<<16), RND16(seed)); /* 拪慖楍[4]傪巊梡偟偰丄拪慖傪峴偆 */
//		die("%d %d", hitval1, hitval2);
//	}
//	
//	劔仭NOTE:
//	劔忋婰偺椺偺傛偆偵丄堦偮偺拪慖昞偺拞偵丄摨偠id偑孞傝曉偟弌尰偡傞偙偲傪憐掕偟偰丄偙偺傛偆側巇條偵偟偰偄傑偡丅
//	劔傕偟丄堦偮偺拪慖昞偺拞偵丄摨偠id偑孞傝曉偟弌尰偟側偄扨弮側働乕僗偱棙梡偡傞応崌偼丄壓婰偺擇捠傝偺偳偪傜偐偺曽朄傪嵦偭偰偔偩偝偄丅
//	劔仩曽朄嘆:
//	劔拪慖楍僨乕僞偺id偼捠忢捠傝屄暿偵愝掕偟丄LOT_draw_table()偺堷悢巜掕偱skip偺晹暘傪巜掕偟側偄丅				(懄偪丄堷悢id_skip偺忋埵16價僢僩傪0屌掕)
//	劔佀帺慠側曽朄偱偡丅偙偺曽朄傪嵦傞偙偲傪悇彠偟傑偡丅
//	劔仩曽朄嘇:
//	劔拪慖楍僨乕僞偺id傪慡偰0偲偟丄LOT_draw_table()偺堷悢偱id偺晹暘傕0屌掕偲偟丄skip偺晹暘偱壗楍栚傪巊梡偡傞偐傪巜掕偡傞丅	(懄偪丄堷悢id_skip偺壓埵16價僢僩傪0屌掕)
//	劔佀屄暿偺id傪掕媊偡傞昁梫偑柍偔丄僨乕僞嶌惉偺庤娫偑徣偗傑偡丅
//	
//---------------------------------------------------------------------------
//	
//	拪慖僨乕僞偼丄忋婰偺傛偆偵庤嶌嬈偱嶌惉偡傞曽朄偺懠偵丄僄僋僙儖僼傽僀儖偐傜曄姺偟偰嶌惉偡傞曽朄傕偁傝傑偡丅
//	拪慖僨乕僞傪僄僋僙儖僼傽僀儖偐傜曄姺偟偰嶌惉偡傞曽朄偼丄tool/MkLotTbl.bat,MkLotTbl.awk傪嶲徠偟偰偔偩偝偄丅
//	
/****************************************************************************
 *	巊梡椺嘇
 ****************************************************************************/
//	
//	僙儖偺屄乆偺抣偑摉慖妋棪(N/65536)偱偁傞拪慖昞偺丄僙儖傪巜掕偟偰摉斲傪敾抐偡傞偵偼丄LOT_get_table_weight()傪巊偄傑偡丅
//	
//	//劇劅劅劅劍劅劅劅劅劅劅劅劅劅劅劅劅劅劅劅劍劅劅劅劅劅劅劅劅劅劅劅劅劅劅劅劉
//	//劆  //  劆        掅妋棪(skip=0)        劆        崅妋棪(skip=1)        劆
//	//劌劅劅劅劑劅劅劅劍劅劅劅劍劅劅劅劍劅劅劅劑劅劅劅劍劅劅劅劍劅劅劅劍劅劅劅劎
//	//劆  id  劆INDEX1劆INDEX2劆INDEX3劆INDEX4劆INDEX1劆INDEX2劆INDEX3劆INDEX4劆
//	//劌劅劅劅劑劅劅劅劑劅劅劅劑劅劅劅劑劅劅劅劑劅劅劅劑劅劅劅劑劅劅劅劑劅劅劅劎
//	//劆ATARI1劆  6553劆  1638劆   819劆     0劆 65536劆 16384劆  8192劆     0劆
//	//劆ATARI2劆  6553劆  1638劆   819劆     0劆 65536劆 16384劆  8192劆     0劆
//	//劆ATARI3劆  3276劆   819劆     0劆     0劆 32768劆  8192劆     0劆     0劆
//	//劆ATARI4劆  3276劆   819劆     0劆     0劆 32768劆  8192劆     0劆     0劆
//	//劆ATARI5劆  1638劆     0劆     0劆     0劆 16384劆     0劆     0劆     0劆
//	//劋劅劅劅劏劅劅劅劏劅劅劅劏劅劅劅劏劅劅劅劏劅劅劅劏劅劅劅劏劅劅劅劏劅劅劅劊
//	//拪慖楍id
//	#define INDEX1 0
//	#define INDEX2 1
//	#define INDEX3 2
//	#define INDEX4 3
//	#define INDEX5 4
//	//摉慖抣id
//	#define ATARI1 0
//	#define ATARI2 1
//	#define ATARI3 2
//	#define ATARI4 3
//	#define ATARI5 4
//	const unsigned short TBL_lot[] = {
//		8,			//乧拪慖楍偺悢
//		//==== 掅妋棪 ===
//		//--- 拪慖楍[0] ---
//		INDEX1,5,		//乧拪慖楍偺id偲梫慺悢
//		ATARI1, 6553-1,		//劉
//		ATARI2, 6553-1,		//劆
//		ATARI3, 3276-1,		//劌拪慖楍={摉慖抣,廳傒抣}亊梫慺悢
//		ATARI4, 3276-1,		//劆
//		ATARI5, 1638-1,		//劊
//		//--- 拪慖楍[1] ---
//		INDEX2,4,
//		ATARI1, 1638-1,
//		ATARI2, 1638-1,
//		ATARI3,  819-1,
//		ATARI4,  819-1,
//	//	ATARI5,    0-1,		//佀(廳傒抣=0)偺梫慺偼僨乕僞偵娷傔側偄
//		//--- 拪慖楍[2] ---
//		INDEX3,2,
//		ATARI1,  819-1,
//		ATARI2,  819-1,
//	//	ATARI3,    0-1,
//	//	ATARI4,    0-1,
//	//	ATARI5,    0-1,
//		//--- 拪慖楍[3] ---
//		INDEX4,0,		//佀梫慺偑傂偲偮傕柍偄拪慖楍傕昞尰壜擻
//	//	ATARI1,    0-1,
//	//	ATARI2,    0-1,
//	//	ATARI3,    0-1,
//	//	ATARI4,    0-1,
//	//	ATARI5,    0-1,
//		//==== 崅妋棪 ===
//		//--- 拪慖楍[4] ---
//		INDEX1,5,		//乧拪慖昞偺拞偵摨偠id偑2夞埲忋弌尰偡傞応崌偼丄堷悢偺skip晹暘傪1埲忋偱巜掕壜擻丅
//		ATARI1,65536-1,
//		ATARI2,65536-1,
//		ATARI3,32768-1,
//		ATARI4,32768-1,
//		ATARI5,16384-1,
//		//--- 拪慖楍[5] ---
//		INDEX2,4,
//		ATARI1,16384-1,
//		ATARI2,16384-1,
//		ATARI3, 8192-1,
//		ATARI4, 8192-1,
//	//	ATARI5,    0-1,
//		//--- 拪慖楍[6] ---
//		INDEX3,2,
//		ATARI1, 8192-1,
//		ATARI2, 8192-1,
//	//	ATARI3,    0-1,
//	//	ATARI4,    0-1,
//	//	ATARI5,    0-1,
//		//--- 拪慖楍[7] ---
//		INDEX4,0,
//	//	ATARI1,    0-1,
//	//	ATARI2,    0-1,
//	//	ATARI3,    0-1,
//	//	ATARI4,    0-1,
//	//	ATARI5,    0-1,
//	};
//	void test() {
//		int result1, result2;
//		result1 = LOT_get_table_weight(TBL_lot, INDEX1        , ATARI1) > RND16(seed); /* 拪慖楍[0]偺ATARI1偺廳傒抣偑丄棎悢抣傪挻夁偟偰偄傟偽丄摉慖偲傒側偡 */
//		result2 = LOT_get_table_weight(TBL_lot, INDEX1|(1<<16), ATARI1) > RND16(seed); /* 拪慖楍[4]偺ATARI1偺廳傒抣偑丄棎悢抣傪挻夁偟偰偄傟偽丄摉慖偲傒側偡 */
//		die("%d %d", result1, result2);
//	}
//	
/****************************************************************************
 *	巊梡椺嘊
 ****************************************************************************/
//	
//	LOT_get_table_weight()偺墳梡椺偲偟偰丄廳傒抣傪擟堄偺僨乕僞偲尒側偡偙偲傕偱偒傑偡丅
//	壓婰偼丄INDEX1乣3傪拪慖楍丆PAYOUT傪僨乕僞楍偲偟偰埖偄丄摉慖偟偨栶偺攝摉枃悢傪庢摼偡傞椺偱偡丅
//	
//	//劇劅劅劅劍劅劅劅劍劅劅劅劍劅劅劅劍劅劅劅劉
//	//劆  id  劆PAYOUT劆INDEX1劆INDEX2劆INDEX2劆
//	//劌劅劅劅劑劅劅劅劑劅劅劅劑劅劅劅劑劅劅劅劎
//	//劆ATARI1劆     0劆 26014劆 26114劆 26214劆
//	//劆ATARI2劆    15劆 12907劆 13007劆 13107劆
//	//劆ATARI3劆     7劆  6354劆  6454劆  6554劆
//	//劆ATARI4劆     1劆  3077劆  3177劆  3277劆
//	//劆ATARI5劆     0劆  1438劆  1538劆  1638劆
//	//劋劅劅劅劏劅劅劅劏劅劅劅劏劅劅劅劏劅劅劅劊
//	//拪慖楍id
//	#define PAYOUT 9
//	#define INDEX1 0
//	#define INDEX2 1
//	#define INDEX3 2
//	//摉慖抣id
//	#define ATARI1 0
//	#define ATARI2 1
//	#define ATARI3 2
//	#define ATARI4 3
//	#define ATARI5 4
//	const unsigned short TBL_lot[] = {
//		4,			//乧拪慖楍偺悢
//		//--- 拪慖楍[0] ---
//		PAYOUT,3,		//乧拪慖楍偺id偲梫慺悢
//	//	ATARI1,    0-1,		//佀(廳傒抣=0)偺梫慺偼僨乕僞偵娷傔側偄
//		ATARI2,   15-1,
//		ATARI3,    7-1,
//		ATARI4,    1-1,
//	//	ATARI5,    0-1,
//		//--- 拪慖楍[1] ---
//		INDEX1,5,
//		ATARI1,26014-1,
//		ATARI2,12907-1,
//		ATARI3, 6354-1,
//		ATARI4, 3077-1,
//		ATARI5, 1438-1,
//		//--- 拪慖楍[2] ---
//		INDEX2,5,
//		ATARI1,26114-1,
//		ATARI2,13007-1,
//		ATARI3, 6454-1,
//		ATARI4, 3177-1,
//		ATARI5, 1538-1,
//		//--- 拪慖楍[3] ---
//		INDEX3,5,
//		ATARI1,26214-1,
//		ATARI2,13107-1,
//		ATARI3, 6554-1,
//		ATARI4, 3277-1,
//		ATARI5, 1638-1,
//	};
//	void test() {
//		int hitval, payout;
//		hitval = LOT_draw_table(TBL_lot, INDEX1, RND16(seed));          /* 拪慖楍[0]傪巊梡偟偰丄拪慖傪峴偆 */
//		if(hitval != -1) {                                              /* 偳傟偐偺峴偵摉慖偟偨傜 */
//			payout = LOT_get_table_weight(TBL_lot, PAYOUT, hitval); /* 摉慖峴偺攝摉枃悢傪庢摼偡傞 */
//		} else {                                                        /* 偳偺峴偵傕摉慖偟側偗傟偽乧 */
//			payout = 0;                                             /* 攝摉枃悢傪0偲偡傞 */
//		}
//		die("%d %d", hitval, payout);
//	}
//	

/****************************************************************************
 *	拪慖張棟
 ****************************************************************************/

/* 拪慖楍傪梡偄偰丄拪慖傪峴偄傑偡丅
 * [in]
 *	column		拪慖楍偺愭摢傾僪儗僗
 *	column_size	拪慖楍偺梫慺悢
 *	rndval		棎悢抣(0乣65535)
 * [out]
 *	栠傝抣		摉慖偟偨梫慺偺摉慖抣
 *			摉慖偟側偐偭偨応崌偼丄-1傪曉偡
 * [note]
 *	- 拪慖楍偼丄梫慺偺暲傃偱偡丅
 *	  梫慺偼丄{摉慖抣,廳傒抣-1}偱偡丅
 *	  廳傒抣偑0偺梫慺偼丄拪慖楍偵娷傔傑偣傫丅
 *	- 忋婰偺峔憿偵偟偨棟桼偼丄廳傒抣偺嵟戝偑65536偱偁傞傛偆側拪慖傪丄儊儌儕岠棪偺椙偄曽朄偱昞尰偡傞偨傔偱偡丅
 *	  廳傒抣傪偦偺傑傑奿擺偡傞偲丄廳傒抣偑32價僢僩昁梫偱偁傝丄廳傒抣偺僼傿乕儖僪偵15價僢僩偺柍懯偑惗偠傑偡丅
 *	  傑偨丄摉慖抣偺昞尰傕丄偨偄偰偄偼32價僢僩傕昁梫側偔丄16價僢僩偱懌傝傞偙偲偑懡偄偱偡丅
 *	  偦偙偱丄廳傒抣傪(-1)偟偰嵟戝抣傪65535偲偟丄摉慖抣偲(廳傒抣-1)偲傕偵丄16價僢僩偱奿擺偡傞偙偲偵偟傑偟偨丅
 *	  廳傒抣偑0偱偁傞梫慺偼奿擺偟傑偣傫偺偱丄廳傒抣偑0偺梫慺偑懡偄僨乕僞傕丄岠棪揑偵昞尰偡傞偙偲偑偱偒傑偡丅
 */
int LOT_draw_column(const unsigned short* column, int column_size, int rndval);

/* 拪慖楍偺丄巜掕偝傟偨摉慖抣偺丄廳傒抣傪庢摼偟傑偡丅
 * [in]
 *	column		拪慖楍偺愭摢傾僪儗僗
 *	column_size	拪慖楍偺梫慺悢
 *	hitval_sel	摉慖抣
 * [out]
 *	栠傝抣		巜掕偝傟偨摉慖抣偺丄廳傒抣(1乣65536)
 *			巜掕偝傟偨摉慖抣偑懚嵼偟側偐偭偨応崌偼丄0傪曉偡
 * [note]
 *	- 拪慖楍偺拞偵丄巜掕偝傟偨摉慖抣傪帩偮峴偑丄懚嵼偟側偐偭偨応崌偼丄0傪曉偟傑偡丅
 *	  尦乆偺拪慖楍偺拞偵丄巜掕偝傟偨摉慖抣傪帩偮峴偑懚嵼偡傞偑廳傒抣偑0偱偁偭偨偺偐丄埥偄偼丄巜掕偝傟偨摉慖抣傪帩偮峴偑懚嵼偟側偐偭偨偺偐傪丄嬫暿偡傞偙偲偼偱偒傑偣傫丅
 *	  摦嶌忋偼摨偠偱偡偑丄慜幰偼惓忢偱偁傝丄屻幰偼僶僌偱偁傞壜擻惈偑崅偄偱偡丅
 *	  懚嵼偟側偄摉慖抣傪搉偡僶僌偺敪尒偑抶傟傞偍偦傟偑偁傝丄拲堄偟偰偔偩偝偄丅
 */
int LOT_get_column_weight(const unsigned short* column, int column_size, int hitval_sel);

/* 拪慖昞偺丄巜掕偝傟偨拪慖楍傪梡偄偰丄拪慖傪峴偄傑偡丅
 * [in]
 *	table		拪慖昞偺愭摢傾僪儗僗
 *	id_skip[15: 0]	巊梡偡傞拪慖楍偺id	劍巜掕偝傟偨id傪帩偮拪慖楍偺偆偪丄(skip+1)夞栚偵弌尰偟偨拪慖楍傪巊梡偟偰丄拪慖傪峴偆丅
 *	id_skip[31:16]	僗僉僢僾夞悢		劊摨偠id偑暋悢夞弌尰偟側偄扨弮側拪慖昞側傜偽丄僗僉僢僾夞悢=0屌掕偲偟偰id偺傒偱巜掕壜丅
 *	rndval		棎悢抣(0乣65535)
 * [out]
 *	栠傝抣		摉慖偟偨梫慺偺摉慖抣
 *			摉慖偟側偐偭偨応崌偼丄-1傪曉偡
 * [note]
 *	- 拪慖昞偺拞偵丄巜掕偝傟偨id傪帩偮拪慖楍偑丄(skip+1)夞埲忋弌尰偟側偐偭偨応崌偼丄僄儔乕掆巭偟傑偡丅
 */
int LOT_draw_table(const unsigned short* table, int id_skip, int rndval);

/* 拪慖昞偺丄巜掕偝傟偨拪慖楍偺丄巜掕偝傟偨摉慖抣偺丄廳傒抣傪庢摼偟傑偡丅
 * [in]
 *	table		拪慖昞偺愭摢傾僪儗僗
 *	id_skip[15: 0]	巊梡偡傞拪慖楍偺id	劍巜掕偝傟偨id傪帩偮拪慖楍偺偆偪丄(skip+1)夞栚偵弌尰偟偨拪慖楍傪巊梡偟偰丄拪慖傪峴偆丅
 *	id_skip[31:16]	僗僉僢僾夞悢		劊摨偠id偑暋悢夞弌尰偟側偄扨弮側拪慖昞側傜偽丄僗僉僢僾夞悢=0屌掕偲偟偰id偺傒偱巜掕壜丅
 *	hitval_sel	摉慖抣
 * [out]
 *	栠傝抣		巜掕偝傟偨摉慖抣偺丄廳傒抣(1乣65536)
 *			巜掕偝傟偨摉慖抣偑懚嵼偟側偐偭偨応崌偼丄0傪曉偡
 * [note]
 *	- 拪慖昞偺拞偵丄巜掕偝傟偨id傪帩偮拪慖楍偑丄(skip+1)夞埲忋弌尰偟側偐偭偨応崌偼丄僄儔乕掆巭偟傑偡丅
 *	- 拪慖昞偺拞偵丄巜掕偝傟偨摉慖抣傪帩偮峴偑丄懚嵼偟側偐偭偨応崌偼丄0傪曉偟傑偡丅
 *	  尦乆偺拪慖昞偺拞偵丄巜掕偝傟偨摉慖抣傪帩偮峴偑懚嵼偡傞偑廳傒抣偑0偱偁偭偨偺偐丄埥偄偼丄巜掕偝傟偨摉慖抣傪帩偮峴偑懚嵼偟側偐偭偨偺偐傪丄嬫暿偡傞偙偲偼偱偒傑偣傫丅
 *	  摦嶌忋偼摨偠偱偡偑丄慜幰偼惓忢偱偁傝丄屻幰偼僶僌偱偁傞壜擻惈偑崅偄偱偡丅
 *	  懚嵼偟側偄摉慖抣傪搉偡僶僌偺敪尒偑抶傟傞偍偦傟偑偁傝丄拲堄偟偰偔偩偝偄丅
 */
int LOT_get_table_weight(const unsigned short* table, int id_skip, int hitval_sel);

/* 拪慖昞偺楍悢傪庢摼偟傑偡丅
 * [in]
 *	table		拪慖昞偺愭摢傾僪儗僗
 * [out]
 *	栠傝抣		拪慖昞偺楍悢
 * [note]
 *	- 奐敪儊儌: 摉娭悢偺張棟偼扨弮側偺偱丄屇傃弌偟僆乕僶乕僿僢僪傪旔偗傞偨傔偵丄儅僋儘偲偟偰幚憰偟傑偟偨丅
 */
#define LOT_get_table_size(table) (*(table))

/* 拪慖昞偺丄(i_column)斣栚偺拪慖楍偺丄id媦傃僗僉僢僾夞悢傪庢摼偟傑偡丅
 * [in]
 *	table		拪慖昞偺愭摢傾僪儗僗
 *	i_column	id媦傃僗僉僢僾夞悢傪庢摼偡傞丄拪慖楍偺弴斣(0乣)
 * [out]
 *	栠傝抣[15: 0]	拪慖楍偺id		劍(i_column)斣栚偺拪慖楍傛傝傕慜偵丄(i_column)斣栚偺拪慖楍偲摨偠id偺拪慖楍偑懚嵼偡傞応崌丄
 *	栠傝抣[31:16]	僗僉僢僾夞悢		劊偦偺楍悢傪僗僉僢僾夞悢偲偟偰曉偡丅
 * [note]
 *	- 拪慖昞偺楍悢偑丄拪慖楍偺弴斣(0乣)埲壓偱偁傞応崌偼丄僄儔乕掆巭偟傑偡丅
 *	- 摉娭悢偺栠傝抣偼丄LOT_get_table_weight()娭悢偺丄id_skip堷悢偺宍幃偵屳姺偱偡丅
 *	  摉娭悢偺栠傝抣傪丄LOT_get_table_weight()娭悢偵丄捈愙搉偡偙偲偑偱偒傑偡丅
 *	  劔<椺> 拪慖昞偺慡偰偺拪慖楍傪巊偭偰丄拪慖傪峴偆丅
 *	  劔for(i_column = 0; i_column < LOT_get_table_size(table); i_column++) {
 *	  劔  id_skip = LOT_get_table_column_id(table, i_column);
 *	  劔  hitval  = LOT_draw_table(table, id_skip, RND16(seed));
 *	  劔  printf("%d: %d.%d %d\n", i_column, LOHALF(id_skip), HIHALF(id_skip), hitval);
 *	  劔}
 *	- 奐敪儊儌: 摉娭悢偺娭悢柤偼丄尩枾偵偼乽LOT_get_table_column_id_skip()乿偲偡傋偒偱偡偑丄帺柧側偺偱乽乣_skip乿偼徣棯偟傑偟偨丅
 *	                                                               ~~~~~                                  ~~~~~
 */
int LOT_get_table_column_id(const unsigned short* table, int i_column);

#endif /*__CLIP_LOT_H__*/
