亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cbeyes.cpp

?? 赤壁之戰(游戲原碼)
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/////////////
//	CBEyes.cpp		:	v0020
//	Written by		:	Liu Gang
//	Compiler		:	Microsoft Visual C++ 4.2
//	Copyright (C)	:	1996 WayAhead Corporation 
//	v0010			:	Feb.26.1997
//	v0020			:	Apr.29.1997, add so many functions
/////////////
// implementation file
// This file is to give thinking methods information they need.
// so call them Eyes.
#include "stdafx.h"
#include "Assert.h"

#include "CBGame.h"
#include "CBMAP.h"
#include "CBCTrl.h"
#include "CBEyes.h"
#include "CBData.h"
#include "CBRDelay.h"

//added by tian yue
#include <math.h>

/////////////
// externals
// declared in CBMap.cpp
extern POINT MAP_ptSenser[2][MAP_SENSER_MAX][8*MAP_SENSER_MAX];
extern POINT MAP_ptLocation[2][MAP_LOCATION_MAX];
extern int MAP_nLocationNum[4];
/////////////

// 本能策略
/////////////
// 取得本單元附近的(視野內)其它單元的ID
// bFriend	:	輸入,0——取得所有單元,1——取得我方單元,2——取得敵方單元
// wThis	:	輸入,本單元ID
// pwArray	:	輸出,其它單元的ID數組
// nNum		:	輸入,需要的其它單元的數量;輸出,實際返回的單元數量
void EYE_GetUnitInSight( int bFriend, WORD wThis, WORD *pwArray, int *pnNum )
{
	struct UNIT_STRUCT *pUnit;
	int nSight;
	BOOL bOdd;
	int nX, nY, nNewX, nNewY;
	int nCounter=0;
	WORD codeUEx;
	WORD *pwCurrent;

	pUnit = MAP_GetUnit( wThis );
	Assert( pUnit );
	nSight = EYE_GetViewRange( &pUnit->Draw );
	bOdd = pUnit->Draw.nY%2;
	nX = pUnit->Draw.nX, nY = pUnit->Draw.nY;
	pwCurrent = pwArray;
	for( int i=0; i<nSight; i++ )
	for( int j=0; j<((i+1)<<3); j++ )
	{
		if( nCounter >= *pnNum )	break;
		nNewX = nX + MAP_ptSenser[bOdd][i][j].x;
		nNewY = nY + MAP_ptSenser[bOdd][i][j].y;
		if( EYE_IfOutOfRange( nNewX, nNewY ) )
			continue;
		codeUEx = MAP_GetUnitDataEx( nNewX, nNewY );
		if( codeUEx != MAP_DATA_NONE )
		{
			if( bFriend == 1 )
			{	// 只選擇我方
				struct UNIT_STRUCT *p = MAP_GetUnit( codeUEx );
				Assert( p );
				if( pUnit->Draw.nPlayer != p->Draw.nPlayer )
				{	// 是敵方,略過
					continue;
				}
				if( EYE_IfUnitIsDead( p ) )	continue;
			}
			else if( bFriend == 2 )
			{	// 只選擇敵人
				struct UNIT_STRUCT *p = MAP_GetUnit( codeUEx );
				Assert( p );
				if( EYE_PlayerIsAllied( pUnit->Draw.nPlayer, p->Draw.nPlayer )	)
				{// 是同盟者,略過
					continue;
				}
				if( pUnit->Status.nTaskID == MFU )
				{// 該部隊正在埋伏
					continue;
				}

				//add by tian yue

				if( EYE_IfUnitIsDead( p ) )	continue;
			}
			*pwCurrent = codeUEx;
			nCounter++;
			pwCurrent++;
		}
	}
	*pnNum = nCounter;
}

// 取得本部隊的其它單元的ID
// bFriend	:	輸入,0——取得所有單元,1——取得我方單元,2——取得敵方單元
// wThis	:	輸入,本單元ID
// pwArray	:	輸出,其它單元的ID數組
// nNum		:	輸入,需要的其它單元的數量;輸出,實際返回的單元數量
void EYE_GetUnitInGroup( int bFriend, WORD wThis, WORD *pwArray, int *pnNum )
{
	struct UNIT_STRUCT *pUnit;
	int nPlayer;
	BOOL bOdd;
	int nX, nY;
	int nCounter=0;
	WORD codeUEx;
	WORD *pwCurrent;

	pUnit = MAP_GetUnit( wThis );
	Assert( pUnit );
	nPlayer = pUnit->Draw.nPlayer;
	if( EYE_IfUnitIsSoldier( pUnit ) )
	{
		if( pUnit->Soldier.nGenID == MAP_DATA_NONE )
		{
			*pnNum = 0;
			return;
		}
		wThis = pUnit->Soldier.nGenID;	// 把自己變成將領
		pUnit = MAP_GetUnit( wThis );
		Assert( pUnit );
		Assert( pUnit->nType == MAP_UNIT_TYPE_GEN
			|| pUnit->nType == MAP_UNIT_TYPE_WGEN
			|| pUnit->nType == MAP_UNIT_TYPE_SGEN );
	}

	bOdd = pUnit->Draw.nY%2;
	nX = pUnit->Draw.nX, nY = pUnit->Draw.nY;
	pwCurrent = pwArray;
	for( int i=0; i<GENERAL_TROOP_MAX; i++ )
	{
		if( nCounter >= *pnNum )	break;
		codeUEx = pUnit->Gen.wTroop[i];
		if( codeUEx != MAP_DATA_NONE )
		{
			if( bFriend == 1 )
			{	// 只選擇我方
				struct UNIT_STRUCT *p = MAP_GetUnit( codeUEx );
				Assert( p );
				if( pUnit->Draw.nPlayer != p->Draw.nPlayer )
				{	// 是敵方,略過
					continue;
				}
				if( EYE_IfUnitIsDead( p ) )	continue;
			}
			else if( bFriend == 2 )
			{	// 只選擇敵人
				struct UNIT_STRUCT *p = MAP_GetUnit( codeUEx );
				Assert( p );
				if( EYE_PlayerIsAllied( pUnit->Draw.nPlayer, p->Draw.nPlayer )	)
				{// 是同盟者,略過
					continue;
				}
				if( EYE_IfUnitIsDead( p ) )	continue;
			}
			*pwCurrent = codeUEx;
			nCounter++;
			pwCurrent++;
		}
	}
	*pnNum = nCounter;
}

// 檢測目的單元是否在視野內
// wThis	:	本單元ID
// wThat	:	目的單元ID
// nRange	:	視野范圍,缺?。?1)時為第一個單元的視野
// return	:	-1,不在視野以內,0-7是方向
int EYE_IfUnitIsInSight( WORD wThis, WORD wThat, int nRange/*= -1*/ )
{
	struct UNIT_STRUCT *pUnit, *pUnit2;
	int nSight;
	int nX, nY, bOdd, nXNext, nYNext;
	
	pUnit = MAP_GetUnit( wThis );
	Assert( pUnit );
	pUnit2 = MAP_GetUnit( wThat );
	Assert( pUnit2 );

	if( pUnit2->Status.bIRQ == TRUE 
		&& !EYE_IfUnitIsBuild( pUnit2 ) )	// 士兵在建筑之中,看不見
		return -1;

	if( nRange > 10 )
	{
		if( pUnit->Draw.nX > pUnit2->Draw.nX-nRange 
			&& pUnit->Draw.nY > pUnit2->Draw.nY-nRange 
			&& pUnit->Draw.nX < pUnit2->Draw.nX+nRange 
			&& pUnit->Draw.nY < pUnit2->Draw.nY+nRange )
		{
			return 1;
		}
		else
			return -1;
	}
	else if( nRange == - 1 )
		nSight = EYE_GetViewRange( &pUnit->Draw );
	else
		nSight = nRange;

	bOdd = pUnit->Draw.nY%2;
	nX = pUnit->Draw.nX, nY = pUnit->Draw.nY;
	
	for( int i=0; i<nSight; i++ )
	for( int j=0; j<((i+1)<<3); j++ )
	{
		nXNext = nX + MAP_ptSenser[bOdd][i][j].x,
		nYNext = nY + MAP_ptSenser[bOdd][i][j].y;
		if( EYE_IfOutOfRange( nXNext, nYNext ) )
			continue;
		WORD codeUEx = MAP_GetUnitDataEx( nXNext, nYNext );
		if( codeUEx == wThat )
			return (j>>i);
	}	
	return -1;
}

// 檢測目的單元是否在攻擊范圍內
// wThis	:	本單元ID
// wThat	:	目的單元ID
// nRange	:	硬性規定的判定范圍,缺省時為部隊的攻擊范圍
// return	:	-1,不在射程以內,0-7是方向
int EYE_IfUnitIsInRange( WORD wThis, WORD wThat, int nRange/* = -1*/ )
{
	struct UNIT_STRUCT *pUnit, *pUnit2;
	int nX, nY, bOdd, nXNext, nYNext, bOdd2;
	
	pUnit = MAP_GetUnit( wThis );
	Assert( pUnit );
	pUnit2 = MAP_GetUnit( wThat );
	Assert( pUnit2 );
	
	if( pUnit2->nHasShadow == FALSE 
		&& !EYE_IfUnitIsBuild( pUnit2 ) )	// 士兵在建筑之中,看不見
		return -2;

	// 設置判定范圍,為-1時為部隊的攻擊范圍
	if( nRange == -1 )
	{
		nRange = DATA_Lib.Unit[pUnit->Draw.nFile].nFightRange;
		if( CTRL_GetSTG( &pUnit->Draw, GUNMU ) == TRUE 
			&& (pUnit->Draw.nFile == 32 || pUnit->Draw.nFile == 45) )
		{	// 使用滾木計謀,攻擊范圍是視野
			nRange = DATA_Lib.Unit[pUnit->Draw.nFile].nViewRange;
		}
	}

	bOdd = pUnit->Draw.nY&1;
	nX = pUnit->Draw.nX, nY = pUnit->Draw.nY;

	// 對于遠程攻擊部隊,只判斷實在點的位置,以加快判斷速度
	if( nRange > 1 )
	{
		for( int i=0; i<nRange; i++ )
		for( int j=0; j<((i+1)<<3); j++ )
		{
			nXNext = nX + MAP_ptSenser[bOdd][i][j].x,
			nYNext = nY + MAP_ptSenser[bOdd][i][j].y;
			if( EYE_IfOutOfRange( nXNext, nYNext ) )
				continue;
			WORD codeUEx = MAP_GetUnitDataEx( nXNext, nYNext );
			if( codeUEx == wThat )
			{	// 得到方向
				j = j/(i+1);
				return j;
			}
		}
	}
	else
	{	// 對于近程攻擊部隊,要判斷該部隊所占據的所有點
		for( int x=0; x< MAP_nLocationNum[pUnit->Draw.nLocationSize]; x++ )
		{
			nX = pUnit->Draw.nX+MAP_ptLocation[bOdd][x].x, 
			nY = pUnit->Draw.nY+MAP_ptLocation[bOdd][x].y;
			if( EYE_IfOutOfRange( nX, nY ) )
				continue;
			bOdd2 = nY&1;
			for( int j=0; j<8; j++ )
			{
				nXNext = nX + MAP_ptSenser[bOdd2][0][j].x,
				nYNext = nY + MAP_ptSenser[bOdd2][0][j].y;
				if( EYE_IfOutOfRange( nXNext, nYNext ) )
					continue;
				WORD codeUEx = MAP_GetUnitDataEx( nXNext, nYNext );
				if( codeUEx == wThat )
					return j;
			}
		}
	}
	return -1;
}

// 檢測目的位置是否在某單元位置一格范圍內
// pUnit		:	被檢測的單元
// nEndX, nEndY	:	被檢測的目的地形位置
// return		:	-1,不在射程以內,0-7是方向
int EYE_IfShipYardIsInRange( struct UNIT_STRUCT *pUnit, int nEndX, int nEndY )
{
	BOOL bOdd = pUnit->Draw.nY&1;
	BOOL bOdd2 = nEndY&1;
	WORD codeG;
	struct MAP_GROUND_CODE_STRUCT stctG;
	int nX, nY, nX2, nY2;
	for( int i=0; i<8; i++ )
	{
		nX = pUnit->Draw.nX+MAP_ptSenser[bOdd][0][i].x, 
		nY = pUnit->Draw.nY+MAP_ptSenser[bOdd][0][i].y;
		for( int j=0; j<9; j++ )
		{
			nX2 = nEndX + MAP_ptLocation[bOdd2][j].x,
			nY2 = nEndY + MAP_ptLocation[bOdd2][j].y;
			if( nX == nX2 && nY == nY2 )
				return i;
		}

		codeG = MAP_GetGroundData( 0, nX, nY );
		Assert( codeG!= MAP_DATA_NONE );
		MAP_GroundDeCode( codeG, &stctG );
		if( stctG.nFile == 3 )// 岸邊
			return i;
	}
	return -1;
}
/////////////


/////////////
// 檢測該單元是否是有效
inline BOOL EYE_IfUnitIsUnit( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->nType != MAP_UNIT_TYPE_NONE )		// 無類型
	{
		return TRUE;
	}
	return FALSE;
}

// 檢測該單元是否是建筑
inline BOOL EYE_IfUnitIsBuild( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->nType == MAP_UNIT_TYPE_BUILDING		// 建筑
		|| pUnit->nType == MAP_UNIT_TYPE_RESOURCE	// 資源
		|| pUnit->nType == MAP_UNIT_TYPE_FLAG 		// 大旗
		|| pUnit->nType == MAP_UNIT_TYPE_SHIPYARD	// 船塢
		)
	{
		return TRUE;
	}
	return FALSE;
}

// 檢測該單元是否是將領
inline BOOL EYE_IfUnitIsGen( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->nType == MAP_UNIT_TYPE_GEN 
		|| pUnit->nType == MAP_UNIT_TYPE_WGEN 
		|| pUnit->nType == MAP_UNIT_TYPE_SGEN )		// 將領
	{
		return TRUE;
	}
	return FALSE;
}

// 檢測該單元是否是文將
inline BOOL EYE_IfUnitIsWorkerGen( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	//if( pUnit->Draw.nFile == 29 )		// 文將
	if( pUnit->nType == MAP_UNIT_TYPE_WGEN )		// 將領
	{
		return TRUE;
	}
	return FALSE;
}

// 檢測該單元是否是工人
inline BOOL EYE_IfUnitIsWorker( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->nType == MAP_UNIT_TYPE_WORKER )	// 工人
	{
		return TRUE;
	}
	return FALSE;
}

// 檢測該單元是否是平民
inline BOOL EYE_IfUnitIsMan( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->nType == MAP_UNIT_TYPE_MAN )		// 平民
	{
		return TRUE;
	}
	return FALSE;
}

// 檢測該單元是否是資源
inline BOOL EYE_IfUnitIsRes( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->nType == MAP_UNIT_TYPE_RESOURCE )// 資源
	{
		return TRUE;
	}
	return FALSE;
}

// 檢測該單元是否是特殊圖素
inline BOOL EYE_IfUnitIsSpec( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->nType == MAP_UNIT_TYPE_SPECIAL )	// 特殊圖素
	{
		return TRUE;
	}
	return FALSE;
}

// 檢測該單元是否有Soldier域,可以組建成部隊
inline BOOL EYE_IfUnitIsSoldier( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->nType == MAP_UNIT_TYPE_SOLDIER		// 士兵
		|| pUnit->nType == MAP_UNIT_TYPE_SHIP 		// 戰船
		|| pUnit->nType == MAP_UNIT_TYPE_LADDER 	// 云梯
		|| pUnit->nType == MAP_UNIT_TYPE_WORKER		// 工人
		|| pUnit->nType == MAP_UNIT_TYPE_MAN		// 平民
		)
	{
		return TRUE;
	}
	return FALSE;
}

// 檢測該單元是否可以移動
inline BOOL EYE_IfUnitIsMovable( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->nType == MAP_UNIT_TYPE_SOLDIER		// 士兵
		|| pUnit->nType == MAP_UNIT_TYPE_SHIP 		// 戰船
		|| pUnit->nType == MAP_UNIT_TYPE_LADDER 	// 云梯
		|| pUnit->nType == MAP_UNIT_TYPE_GEN 		// 將領
		|| pUnit->nType == MAP_UNIT_TYPE_SGEN 		// 水軍將領
		|| pUnit->nType == MAP_UNIT_TYPE_WGEN 		// 文將
		|| pUnit->nType == MAP_UNIT_TYPE_MAN 		// 平民
		|| pUnit->nType == MAP_UNIT_TYPE_WORKER		// 工人
		)
	{
		return TRUE;
	}
	return FALSE;
}

// 查看該單元是否是弓箭手
inline BOOL EYE_IfUnitIsArcher( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->Draw.nFile == 33
		|| pUnit->Draw.nFile == 45
		|| pUnit->Draw.nFile == 39
		|| pUnit->Draw.nFile == 42
		|| pUnit->Draw.nFile == 44 )
	{
		return TRUE;
	}
	return FALSE;
}

// 查看該單元是否是箭樓
inline BOOL EYE_IfUnitIsTower( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->Draw.nFile == 18
		|| pUnit->Draw.nFile == 19 )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国产一区二区精华液| 欧美综合视频在线观看| 亚洲精品欧美二区三区中文字幕| 久久欧美中文字幕| 91精品国产91久久久久久一区二区| 91久久香蕉国产日韩欧美9色| 成人aaaa免费全部观看| 成人免费视频免费观看| 精品一区二区三区蜜桃| 麻豆精品视频在线观看| 成人av电影免费在线播放| 国产综合久久久久久久久久久久| 天天爽夜夜爽夜夜爽精品视频| 亚洲最大成人综合| 天使萌一区二区三区免费观看| 亚洲在线免费播放| 一区二区久久久久| 午夜精品成人在线视频| 精品一二三四区| 成人综合婷婷国产精品久久| av一本久道久久综合久久鬼色| 99久久精品费精品国产一区二区| 欧洲视频一区二区| 欧美一卡二卡在线观看| 久久精品亚洲麻豆av一区二区 | 成人av动漫网站| 91亚洲精品久久久蜜桃网站| 欧美日韩一级视频| 久久综合九色综合久久久精品综合| 久久网站最新地址| 一区二区激情视频| 激情五月婷婷综合网| 91丨九色porny丨蝌蚪| 91精品国产91综合久久蜜臀| 26uuu色噜噜精品一区二区| 亚洲欧洲综合另类| 久久精品国产亚洲高清剧情介绍 | 色婷婷亚洲精品| 国产欧美一二三区| 国产精品美女久久久久久久久久久 | 久久99久久精品欧美| 国产精品88av| 欧美日韩国产影片| 国产欧美日韩精品一区| 天堂资源在线中文精品| 国产高清视频一区| 欧美另类高清zo欧美| 中文字幕免费在线观看视频一区| 亚洲成在线观看| 国产成人在线看| 日韩欧美电影一二三| 亚洲综合色噜噜狠狠| 久久av资源站| 717成人午夜免费福利电影| 国产精品欧美久久久久一区二区| 日本aⅴ免费视频一区二区三区| 色哟哟国产精品| 中文一区二区完整视频在线观看| 日本欧美大码aⅴ在线播放| 波多野结衣中文一区| 久久婷婷色综合| 精品一区二区在线播放| 这里只有精品免费| 亚洲一区二区黄色| 色噜噜偷拍精品综合在线| 久久久久久麻豆| 国产一区二区日韩精品| 欧美精品在欧美一区二区少妇| 亚洲免费av网站| 91视频一区二区| 国产精品免费人成网站| 成人美女在线视频| 国产精品白丝在线| 99精品偷自拍| 国产精品国产三级国产aⅴ入口| 国产原创一区二区三区| 精品国产乱码久久久久久夜甘婷婷| 亚洲电影在线免费观看| 欧美日韩一区小说| 天天综合日日夜夜精品| 精品国产1区二区| 蜜桃视频一区二区| 日韩一级大片在线| 久久不见久久见免费视频7| 欧美一级一区二区| 久久精品国产一区二区| 欧美精品一区二区三区很污很色的 | 国产精品三级在线观看| 成人av网站大全| 亚洲欧美aⅴ...| 欧美性大战久久久久久久蜜臀| 亚洲一区欧美一区| 欧美日韩国产天堂| 蜜臀av一区二区| 2欧美一区二区三区在线观看视频| 国产毛片精品国产一区二区三区| 国产清纯在线一区二区www| 丁香桃色午夜亚洲一区二区三区| 国产精品久久毛片av大全日韩| 91蜜桃免费观看视频| 亚洲制服丝袜av| 欧美一区二区播放| 成人免费毛片嘿嘿连载视频| 一区二区三区在线高清| 日韩欧美一级特黄在线播放| 国产福利精品导航| 亚洲国产精品久久一线不卡| 日韩视频在线观看一区二区| 国产成人精品一区二区三区四区 | 成人av在线网| 亚洲午夜免费福利视频| 26uuu久久综合| 日本国产一区二区| 精品亚洲成av人在线观看| 国产精品免费人成网站| 91精品国产综合久久精品图片| 国产成人av电影在线| 亚洲高清在线视频| 国产午夜精品久久久久久免费视 | 日韩高清中文字幕一区| 久久精品一二三| 欧美写真视频网站| 激情欧美一区二区三区在线观看| 亚洲免费av高清| 久久久无码精品亚洲日韩按摩| 欧美日韩免费高清一区色橹橹 | 色欧美乱欧美15图片| 国产一区视频网站| 亚洲成年人影院| 亚洲精品你懂的| 中文字幕亚洲在| 久久嫩草精品久久久精品| 欧美人妖巨大在线| 91香蕉视频在线| 国产盗摄视频一区二区三区| 琪琪久久久久日韩精品| 一区二区理论电影在线观看| 中文字幕亚洲综合久久菠萝蜜| 精品国产污网站| 91精品国产欧美一区二区18| 一本色道久久综合亚洲91| 国产激情91久久精品导航| 美腿丝袜亚洲一区| 琪琪一区二区三区| 日韩福利电影在线| 日本在线不卡一区| 亚洲成人av一区二区| 亚洲免费高清视频在线| 亚洲欧洲制服丝袜| 国产精品萝li| 亚洲色图一区二区| 中文字幕在线观看不卡视频| 中文字幕精品综合| 中文av一区特黄| 亚洲国产精华液网站w| 国产偷国产偷亚洲高清人白洁| 日韩一区二区三区电影在线观看 | 日本特黄久久久高潮| 夜夜夜精品看看| 一区二区三区在线播| 亚洲伦理在线精品| 亚洲一区二区偷拍精品| 亚洲影院理伦片| 亚洲成年人影院| 麻豆91在线观看| 国产精品亚洲人在线观看| 国产大片一区二区| 91麻豆自制传媒国产之光| 色综合一个色综合亚洲| 欧美日韩在线不卡| 日韩一区二区三| 国产日韩成人精品| 亚洲图片你懂的| 日韩精品成人一区二区三区| 久久福利资源站| 菠萝蜜视频在线观看一区| 色婷婷综合久色| 日韩一区二区在线看| 国产拍欧美日韩视频二区| 一区二区在线电影| 日本vs亚洲vs韩国一区三区二区| 成人美女视频在线观看| 欧美亚洲国产怡红院影院| 8x8x8国产精品| 日本一区二区三级电影在线观看 | 在线精品亚洲一区二区不卡| 欧美精品在线观看一区二区| 久久婷婷色综合| 亚洲在线中文字幕| 毛片av一区二区| 91网站在线观看视频| 欧美一区二区三区免费| 久久美女高清视频| 一区二区三区.www| 国产一区二区91| 欧美精选午夜久久久乱码6080| 国产午夜亚洲精品午夜鲁丝片| 亚洲激情网站免费观看| 看电影不卡的网站| 欧美色图天堂网|