亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲图片欧美一区| 欧美午夜精品电影| 久久精品日韩一区二区三区| 蜜臀久久99精品久久久久宅男| 欧美无乱码久久久免费午夜一区 | 日韩欧美中文字幕一区| 亚洲成人免费在线观看| 欧美一区二区精品| 激情偷乱视频一区二区三区| 久久精品网站免费观看| av在线这里只有精品| 亚洲乱码一区二区三区在线观看| 欧美系列亚洲系列| 国产激情偷乱视频一区二区三区 | 欧美另类z0zxhd电影| 美女性感视频久久| 国产精品人人做人人爽人人添| 色综合色综合色综合色综合色综合| 亚洲欧美电影一区二区| 7777精品久久久大香线蕉| 国产一区二区三区久久久| 亚洲色图另类专区| 日韩亚洲欧美一区| 成人激情校园春色| 日韩黄色片在线观看| 日本一区二区三区四区在线视频| 91同城在线观看| 久久不见久久见免费视频1| 中文字幕在线观看不卡| 欧美日本高清视频在线观看| 国产精品系列在线观看| 亚洲一区免费在线观看| 国产欧美日韩麻豆91| 欧美日韩不卡在线| 成人av在线一区二区三区| 日韩和欧美一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟| 8x8x8国产精品| 成人激情综合网站| 精一区二区三区| 午夜私人影院久久久久| 亚洲国产精品成人综合| 欧美一区二区三区系列电影| 色综合久久中文综合久久97| 国产精品资源网| 日韩av高清在线观看| 亚洲精品成人少妇| 欧美激情一二三区| 欧美tickling网站挠脚心| 欧日韩精品视频| 99热国产精品| 国产精品乡下勾搭老头1| 久久99在线观看| 视频一区免费在线观看| 一级做a爱片久久| 国产精品免费aⅴ片在线观看| 日韩一区二区三区免费看 | 欧美日本在线视频| 99久久久精品| 粉嫩aⅴ一区二区三区四区五区| 琪琪久久久久日韩精品| 亚洲综合激情另类小说区| 国产精品久久久久久妇女6080| 久久综合九色综合97婷婷| 日韩女优视频免费观看| 4438x成人网最大色成网站| 欧美亚男人的天堂| 欧美在线免费播放| 欧美综合一区二区三区| 色婷婷精品久久二区二区蜜臀av| 99久久久久久99| heyzo一本久久综合| av一区二区不卡| 91小视频免费看| 色狠狠色狠狠综合| 欧美一a一片一级一片| 色网站国产精品| 在线观看一区二区视频| 在线观看区一区二| 欧美精品在线观看一区二区| 欧美亚男人的天堂| 欧美高清性hdvideosex| 日韩欧美中文字幕精品| 欧美精品一区男女天堂| 国产视频一区二区三区在线观看| 欧美精品一区二区在线观看| 久久综合狠狠综合久久激情| 国产三级久久久| 成人免费在线播放视频| 亚洲男人天堂av| 亚洲成人激情自拍| 日韩激情中文字幕| 激情欧美一区二区| 成年人网站91| 欧美美女bb生活片| 日韩一级欧美一级| 国产欧美视频在线观看| 亚洲精品精品亚洲| 肉丝袜脚交视频一区二区| 久久精品99国产精品日本| 国产精品一二三区| 色综合天天综合网天天狠天天| 日本精品免费观看高清观看| 欧美久久久久中文字幕| 久久综合九色综合欧美98| 中文字幕在线不卡视频| 五月婷婷激情综合| 国产一区 二区 三区一级| 91免费观看视频| 日韩亚洲欧美一区二区三区| 国产精品久久久久7777按摩| 亚洲国产视频一区二区| 国产尤物一区二区| 欧美网站一区二区| 国产亚洲精品7777| 亚洲丶国产丶欧美一区二区三区| 国产在线精品免费| 欧美性淫爽ww久久久久无| 精品国产乱码久久久久久浪潮| 亚洲欧美偷拍卡通变态| 免费精品视频在线| 色欧美片视频在线观看| 精品国产91九色蝌蚪| 一区二区理论电影在线观看| 国产在线播放一区| 欧美性受极品xxxx喷水| 亚洲国产精品成人久久综合一区| 青草国产精品久久久久久| 成人激情文学综合网| 日韩欧美一二三| 亚洲二区在线视频| 成人午夜av电影| 精品国产精品网麻豆系列| 一区二区三区四区激情| 国产美女精品一区二区三区| 欧美精品在线一区二区| 一区在线中文字幕| 国产成人av电影| 欧美tickling挠脚心丨vk| 偷拍日韩校园综合在线| 色综合久久66| 自拍偷拍亚洲综合| 国产成人精品亚洲午夜麻豆| 欧美成人bangbros| 午夜av一区二区三区| 色综合中文字幕国产| 久久网站热最新地址| 日本不卡一二三| 欧美日韩一区二区三区免费看| 国产精品区一区二区三| 韩国三级中文字幕hd久久精品| 欧美美女网站色| 亚洲国产日韩av| 91国偷自产一区二区三区观看| 欧美经典一区二区三区| 国产激情视频一区二区三区欧美 | 国产毛片精品视频| 欧美一区二区二区| 日韩精品免费视频人成| 欧美日韩综合在线| 亚洲在线观看免费| 欧洲亚洲国产日韩| 亚洲一区二区三区四区五区中文| 色综合久久六月婷婷中文字幕| 综合中文字幕亚洲| 一本到一区二区三区| 亚洲视频在线一区观看| 91在线播放网址| 亚洲主播在线播放| 欧美视频在线一区二区三区| 亚洲一区二区av在线| 欧美另类变人与禽xxxxx| 日韩av成人高清| 日韩欧美一区电影| 国产精选一区二区三区 | 综合分类小说区另类春色亚洲小说欧美| 国产成人免费视频一区| 欧美高清在线精品一区| 99视频在线精品| 亚洲1区2区3区4区| 欧美一区二区三区视频在线| 六月丁香婷婷久久| 国产视频一区二区在线观看| www.99精品| 亚洲一区二区三区影院| 91精品国产色综合久久ai换脸 | 天天色图综合网| 日韩免费观看2025年上映的电影| 久久99久久99精品免视看婷婷| 久久亚洲综合av| 99精品国产91久久久久久| 亚洲综合色成人| 日韩一卡二卡三卡| 国产成人鲁色资源国产91色综| 专区另类欧美日韩| 91精品免费在线| 国产精品99久久久久久久女警| 中文字幕一区二区三区色视频 | 韩国一区二区视频| 专区另类欧美日韩|