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

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

?? cbeyes.cpp

?? 赤壁之戰(游戲原碼)
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
	{
		return TRUE;
	}
	return FALSE;
}

// 查看該單元是否是船
inline BOOL EYE_IfUnitIsShip( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->nType == MAP_UNIT_TYPE_SHIP 
		|| pUnit->nType == MAP_UNIT_TYPE_SGEN )
		return TRUE;
	return FALSE;
}

// 查看該單元是否是戰船
inline BOOL EYE_IfUnitIsBattleShip( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( (pUnit->nType == MAP_UNIT_TYPE_SHIP
		|| pUnit->nType == MAP_UNIT_TYPE_SGEN )
		&& pUnit->Draw.nFile != 47 )	// 不是運輸船
		return TRUE;
	return FALSE;
}

// 查看該單元是否是運輸船
inline BOOL EYE_IfUnitIsTransport( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->Draw.nFile == 47 )	// 運輸船
		return TRUE;
	else
		return FALSE;
}

// 查看該單元是否是投石車
inline BOOL EYE_IfUnitIsCatapult( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->Draw.nFile == 34 )	// 車兵
		return TRUE;
	return FALSE;
}

// 查看該單元是否是騎兵
inline BOOL EYE_IfUnitIsCavalry( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->Draw.nFile == 36		// 騎兵100
		|| pUnit->Draw.nFile == 37	// 騎兵200
		|| pUnit->Draw.nFile == 40	// 騎兵500
		|| pUnit->Draw.nFile == 35 )// 騎將
		return TRUE;
	return FALSE;
}

// 查看該單元是否是城門
inline BOOL EYE_IfUnitIsDoor( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->Draw.nFile == 16 
		|| pUnit->Draw.nFile == 17 )
		return TRUE;
	return FALSE;
}
/////////////

/////////////
// 查看兩個君主是否同盟
// 根據網絡需要修改,Aug 20, 1997
// nPlayer1, nPlayer2	:	兩個游戲者
// return	:	TRUE if is
inline BOOL EYE_PlayerIsAllied( int nPlayer1, int nPlayer2 )
{
	if( nPlayer1 == nPlayer2 )	return TRUE;
	if( GAME.Players[nPlayer1].nAllies[nPlayer2] == TRUE )
	{
		Assert( GAME.Players[nPlayer2].nAllies[nPlayer1] == TRUE );
		return TRUE;
	}
/*
	for( int i=0; i< GAME_PLAYER_MAX; i++ )
	{
		if( GAME.Players[nPlayer1].nAllies[i] == nPlayer2 )
		{
			return TRUE;
		}
	}
*/
	return FALSE;
}

// 查看該坐標是否超過的地圖的界限
inline BOOL EYE_IfOutOfRange( int nX, int nY )
{
	// 從0變為3,July 18, 1997
	if( nX <= 1 || nX >= MAP_Lib.szNum.cx-1 || nY <= 3 || nY >= MAP_Lib.szNum.cy-3 )
		return TRUE;
	return FALSE;
}

// 查看該單元是否已經死了
inline BOOL EYE_IfUnitIsDead( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->nType == MAP_UNIT_TYPE_NONE
		|| pUnit->Status.nTaskID == SHANCHU )
		return TRUE;
	return FALSE;
}

// 查看該單元是否是自己的
inline BOOL EYE_IfSheIsMine( struct UNIT_STRUCT *pUnit )
{
	Assert( pUnit );
	if( pUnit->Draw.nPlayer == GAME.nMe )
		return TRUE;
	return FALSE;
}

// 查看是否該單元處于焦點狀態
extern int DRAW_BLINK_nSave;	// defined in CBDraw.cpp
inline BOOL EYE_IfFocusOnUnit( struct UNIT_STRUCT *pUnit )
{
	if( pUnit->Draw.bUpdate >= 5 
		&& DRAW_BLINK_nSave == 0 )
	{
		return FALSE;
	}
	return pUnit->Draw.bUpdate;
}

// 查看該單元是否到達目的地了
inline int	EYE_IfArrived( struct UNIT_STRUCT *pUnit )
{
	struct CTRL_FRAME_STRUCT *pDraw = &pUnit->Draw;
	int bOdd = pDraw->nY&1;
	int nNum = MAP_nLocationNum[pDraw->nLocationSize];
	int nNewX, nNewY;
	WORD codeUEx;

	for( int i=0; i< nNum; i++ )
	{
		nNewX = pDraw->nX+MAP_ptLocation[bOdd][i].x;
		nNewY = pDraw->nY+MAP_ptLocation[bOdd][i].y;
		codeUEx = MAP_GetUnitDataEx( nNewX, nNewY ) ;
		// test if there is some one (not me) in front of me
		if( codeUEx != MAP_DATA_NONE && 
			codeUEx != pUnit->nID )
		{
			if( pUnit->Status.nTaskIDEx == 2	// 目的地是單元
				&& pUnit->Status.nParam1 == codeUEx )	
			{
				return TRUE;
			}
		}
	}
	return FALSE;	// someone blocked him
}

// 查看該地形點是否有地形型資源
// 麥田或樹林
// nZ, nX, nY	:	position on ground map
// return		:	resource type
inline int EYE_GetGResType( int nZ, int nX, int nY )
{
	WORD codeG = MAP_GetGroundData( nZ, nX, nY );
	struct MAP_GROUND_CODE_STRUCT stctG;
	MAP_GroundDeCode( codeG, &stctG );
	if( stctG.nAttr == 0 ) return SHULIN;	// 樹林
	if( stctG.nAttr == 1 ) return MAITIAN;	// 麥田
	return QXZIYUAN;	// 無效
}

// 檢測該單元是否是資源
// 對于建筑“糧倉”也被認為是資源
// return	:	返回該資源的類型,一定是建筑型類型,為QXZIYUAN時無效
inline int EYE_GetUResType( struct UNIT_STRUCT *pUnit, int nPlayer )
{
	if( pUnit->Draw.nFile == 22 )	return TIEKUANG;	// 鐵礦
	if( pUnit->Draw.nFile == 24
		|| pUnit->Draw.nFile == 25 )	return MINJU;	// 民居
	// 敵人的糧倉
	if( nPlayer ==-1 )	return QXZIYUAN;	// debug only
	if( (pUnit->Draw.nFile == 10
		|| pUnit->Draw.nFile == 11)
		&& pUnit->Draw.nPlayer != nPlayer )	return LIANGCANG;	
	return QXZIYUAN;
}

// 查看一個格子周圍是否有資源,只尋找地形型資源
// nFind	:	要找的資源
// return	:	找到資源的方向,0-7,為-1時無效
inline int EYE_IfResIsInRange( struct UNIT_STRUCT *pUnit, int nFind )
{
	// 對于近程攻擊部隊,要判斷該部隊所占據的所有點
	int bOdd;
	int nXNext, nYNext;
	int nGet;

	Assert( pUnit->Draw.nLocationSize == 0 );

	bOdd = pUnit->Draw.nY&1;
	for( int i=0 ;i<8; i++ )
	{
		nXNext = pUnit->Draw.nX + MAP_ptSenser[bOdd][0][i].x,
		nYNext = pUnit->Draw.nY + MAP_ptSenser[bOdd][0][i].y;
		if( EYE_IfOutOfRange( nXNext, nYNext ) )
			continue;
		nGet = EYE_GetGResType( pUnit->Draw.nLayer, nXNext, nYNext );
		if( nGet == nFind )
		{	// 需要的資源
			return i;
		}
	}
	return -1;
}

// 查看視野范圍內是否有資源,只尋找地形型資源
// nZ,nX, nY	:	啟始位置
// nSight		:	視野
// nFind		:	要找的資源
// return		:	找到資源的坐標位置,等于nX和nY時為未找到
inline POINT EYE_IfResIsInSight( int nZ, int nX, int nY, int nSight, int nFind )
{
	// 對于近程攻擊部隊,要判斷該部隊所占據的所有點
	POINT pt;
	int bOdd;
	int nXNext, nYNext;
//	int nSight;
	int nGet;

//	nSight = DATA_Lib.Unit[pUnit->Draw.nFile].nViewRange;
	pt.x = nX, pt.y = nY;
	bOdd = nY&1;

	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;
		nGet = EYE_GetGResType( nZ, nXNext, nYNext );
		if( nGet == nFind )
		{
			pt.x = nXNext,pt.y = nYNext;
			return pt;
		}
	}
	return pt;
}

// 尋找最近的家
// nPlayer	:	君主
// nType	:	0, 對于帶有糧食的工人,是主帥帳,糧倉
//				1, 對于帶有木材的工人,是主帥帳,木工房
// return	:	building ID, MAP_DATA_NONE為沒有
inline WORD EYE_FindNearestHome( int nPlayer, int nType )
{
	int n2, n3;
	if( nType == 0 )
	{
		n2 = 10, n3 = 11;
	}
	else
	{
		n2 = 4, n3 = 5;
	}

	struct UNIT_STRUCT *pUnit;
	for( int i=0; i< GAME.Players[nPlayer].wUnitCounter; i++ )
	{
		pUnit = &GAME.Players[nPlayer].Unit[i];
		if( !EYE_IfUnitIsDead( pUnit ) 
			&& (pUnit->Draw.nFile == 0 
				|| pUnit->Draw.nFile == 1
				|| pUnit->Draw.nFile == n2
				|| pUnit->Draw.nFile == n3) )
		{
			return pUnit->nID;
		}
	}
	return MAP_DATA_NONE;
}

// 得到該建筑是否可以接受資源
// pU		:	被檢測的建筑
// return	:	可以接受的資源的類型,QXZIYUAN為無效
inline int EYE_GetUResHome( struct UNIT_STRUCT *pU )
{
	if( pU->Draw.nFile == 0 || pU->Draw.nFile == 1 )
		return SUOYOUZY;
	if( pU->Draw.nFile == 2	|| pU->Draw.nFile == 3 )
		return TIEKUANG;
	if( pU->Draw.nFile == 4 || pU->Draw.nFile == 5 )
		return SHULIN;
	if( pU->Draw.nFile == 10 || pU->Draw.nFile == 11 )
		return MAITIAN;
	return QXZIYUAN;
}

// 得到單元的士兵數量級別,官、曲、部、校
// return	:	-1 如果該兵種沒有士兵
inline int EYE_GetUnitPerson( struct UNIT_STRUCT *pU )
{
	int nPerson = -1;
	switch( pU->Draw.nFile )
	{
	case	32:	// 步兵100
	case	36:	// 騎兵100
	case	45:	// 弓兵100
	case	46:	// 小戰船
		nPerson = 0;
		break;
	case	37:	// 騎兵200
	case	38:	// 步兵200
	case	39:	// 弓兵200
	case	48:	// 大戰船
		nPerson = 1;
		break;
	case	40:	// 騎兵500
	case	41:	// 弓兵500
	case	42:	// 步兵500
		nPerson = 2;
		break;
	case	43:	// 步兵1000
	case	44:	// 弓兵1000
		nPerson = 3;
		break;
	}
	return nPerson;
}
/////////////

/////////////
// 得到某個單元的全滿生命值
// nPlayer	:	游戲君主,為-1時不加附加值
// nFile	:	文件號
inline int EYE_GetFullLife( int nPlayer, int nFile )
{
	int nLife;
	nLife = (int)DATA_Lib.Unit[nFile].dwLife;
	if( nPlayer < 0 )	return nLife;					// 得到原始血格
	if( nFile == 18 || nFile == 19 )	return nLife;	// 箭樓永遠不加血
	if( nFile < 27 )
		nLife += GAME.Players[nPlayer].dwLifeUp;		// 建筑升級加血
	if( nFile == 52 )	return nLife>>1;				// 旗艦的血減半
	return nLife;
}

// 查看該地形點是否有水
inline int EYE_GetWater(int nZ, int nX,int nY)
{
	WORD codeG = MAP_GetGroundData( nZ, nX, nY );
	struct MAP_GROUND_CODE_STRUCT stctG;
	MAP_GroundDeCode( codeG, &stctG );

	if( stctG.nFile == 3 )
	{
		if (stctG.nCol != 12)
		{
			return TRUE;
		}
	}
	return FALSE;
}

// 得到某個單元的將領,無或非法時為空
inline struct UNIT_STRUCT *EYE_GetGeneral( struct UNIT_STRUCT * pUnit )
{
	struct UNIT_STRUCT *pU = NULL;
	// 對于士兵要設置他的將領
	if( EYE_IfUnitIsSoldier( pUnit ) 
		&& pUnit->Soldier.nGenID != MAP_DATA_NONE )
	{
		pU = MAP_GetUnit( pUnit->Soldier.nGenID );
	}
	else if( EYE_IfUnitIsGen( pUnit ) )
		pU = pUnit;
	return pU;
}

// 得到近程攻擊力
inline int EYE_GetNearAttack( struct UNIT_STRUCT *pUnit )
{
	int nAttack;
	if( EYE_IfUnitIsGen( pUnit ) )
	{
		nAttack = EYE_GetWuLi( pUnit->Gen.nID )*DATA_Lib.Unit[pUnit->Draw.nFile].nNearAttack/100;
	}
	else
	{
		int nPerson = EYE_GetUnitPerson( pUnit );
		nAttack = DATA_Lib.Unit[pUnit->Draw.nFile].nNearAttack
			+GAME.Players[pUnit->Draw.nPlayer].nAddNearAttack[nPerson];// 近程士兵的附加攻擊力
	}

	// 將領能力修正
	struct UNIT_STRUCT *pUG = EYE_GetGeneral( pUnit );
	if( pUG && pUG != pUnit )
	{
//		nAttack = int(nAttack*(
//			1+(DATA_Lib.Gen[pUG->Gen.nID].nWuLi*
//			DATA_Lib.Unit[pUG->Draw.nFile].nNearAttack/100.0
//			-70)/70.0+(EYE_GetMorale(pUG)-70)/300.0
//			));
		nAttack = int(nAttack*(
			1+(DATA_Lib.Gen[pUG->Gen.nID].nWuLi
			-70)/70.0+(EYE_GetMorale(pUG)-70)/200.0
			));
	}
	return nAttack;
}

// 得到遠程攻擊力
inline int EYE_GetFarAttack( struct UNIT_STRUCT *pUnit )
{
	int nAttack;
	if( EYE_IfUnitIsGen( pUnit ) )
	{
		nAttack = EYE_GetWuLi( pUnit->Gen.nID )*DATA_Lib.Unit[pUnit->Draw.nFile].nFarAttack/100;
	}
	else if( EYE_IfUnitIsCatapult( pUnit ) )
	{
		nAttack = DATA_Lib.Unit[pUnit->Draw.nFile].nFarAttack
			+GAME.Players[pUnit->Draw.nPlayer].nAddSFarAttack;	// 投石車的附加攻擊力
	}
	else if( EYE_IfUnitIsBattleShip( pUnit ) )
	{
		int nPerson = EYE_GetUnitPerson( pUnit );
		Assert( nPerson < 2 );
		nAttack = DATA_Lib.Unit[pUnit->Draw.nFile].nFarAttack
			+GAME.Players[pUnit->Draw.nPlayer].nAddWaterAttack[nPerson];	// 戰船的附加攻擊力
	}
	else
	{
		int nPerson = EYE_GetUnitPerson( pUnit );
		nAttack = DATA_Lib.Unit[pUnit->Draw.nFile].nFarAttack
			+GAME.Players[pUnit->Draw.nPlayer].nAddFarAttack[nPerson];// 近程士兵的附加攻擊力
	}
	// 將領能力修正
	struct UNIT_STRUCT *pUG = EYE_GetGeneral( pUnit );
	if( pUG && pUG != pUnit )
	{
//		nAttack = int(nAttack*(
//			1+(DATA_Lib.Gen[pUG->Gen.nID].nWuLi*
//			DATA_Lib.Unit[pUG->Draw.nFile].nNearAttack/100.0
//			-70)/70.0+(EYE_GetMorale(pUG)-70)/300.0
//			));
		nAttack = int(nAttack*(
			1+(DATA_Lib.Gen[pUG->Gen.nID].nWuLi
			-70)/70.0+(EYE_GetMorale(pUG)-70)/200.0
			));
	}
	return nAttack;
}

// 得到近程防御力
inline int EYE_GetNearDefend( struct UNIT_STRUCT *pU )
{
	int nDefend;
	if( EYE_IfUnitIsGen( pU ) )
	{
		nDefend = DATA_Lib.Gen[pU->Gen.nID].nWuLi*DATA_Lib.Unit[pU->Draw.nFile].nNearDefend/100;
	}
	else if( EYE_IfUnitIsBattleShip( pU ) )
	{
		int nPerson = EYE_GetUnitPerson( pU );
		Assert( nPerson < 2 );
		nDefend = DATA_Lib.Unit[pU->Draw.nFile].nNearDefend
			+GAME.Players[pU->Draw.nPlayer].nAddWaterDefend[nPerson];	// 戰船的附加防御力
	}
	else
	{
		int nPerson = EYE_GetUnitPerson( pU );
		nDefend = DATA_Lib.Unit[pU->Draw.nFile].nNearDefend;
		if( nDefend != -1 )
		{
			nDefend += GAME.Players[pU->Draw.nPlayer].nAddNearDefend[nPerson];// 遠程士兵的附加防御力
		}
	}

	// 將領能力修正

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线视频免费91| 51精品视频一区二区三区| 91在线精品一区二区| 91精品久久久久久久99蜜桃 | 日本高清成人免费播放| 欧美一区二区三区四区在线观看| 欧美国产国产综合| 日本女人一区二区三区| 99精品视频在线观看| 2021国产精品久久精品| 亚洲成人av福利| 91啪九色porn原创视频在线观看| 日韩免费一区二区| 日韩高清电影一区| 欧美日韩一级二级| 一区二区三区欧美视频| 成人一区在线看| 精品av久久707| 麻豆精品久久精品色综合| 色菇凉天天综合网| 亚洲日本乱码在线观看| 成人免费视频一区| 国产日韩欧美精品综合| 精品一区二区国语对白| 日韩欧美国产综合一区 | 欧美一级xxx| 性欧美疯狂xxxxbbbb| 91麻豆精品秘密| 中文字幕亚洲区| 99精品热视频| 亚洲欧美综合网| 成人99免费视频| 一区精品在线播放| 99riav久久精品riav| 亚洲欧洲av另类| 91精品福利视频| 亚洲另类春色校园小说| 色婷婷综合久久久中文一区二区 | 亚瑟在线精品视频| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲一区二区精品久久av| 91理论电影在线观看| 亚洲精品乱码久久久久久黑人 | 精品国产网站在线观看| 国产在线国偷精品产拍免费yy| 精品国精品国产| 国产69精品一区二区亚洲孕妇| 国产农村妇女精品| av激情综合网| 一区二区三区不卡视频在线观看| 欧美性欧美巨大黑白大战| 五月综合激情网| 久久众筹精品私拍模特| 豆国产96在线|亚洲| 亚洲天堂2014| 欧美日本一区二区| 美女精品自拍一二三四| 国产欧美一区二区三区沐欲 | 福利一区福利二区| 最新国产成人在线观看| 欧美日韩三级一区| 黄色精品一二区| 成人免费小视频| 91精品国产色综合久久不卡电影 | 欧美日韩一区国产| 激情综合色丁香一区二区| 欧美国产精品一区二区| 色菇凉天天综合网| 极品销魂美女一区二区三区| 亚洲欧洲三级电影| 日韩午夜激情免费电影| 国产99久久久国产精品潘金| 中文字幕一区二区三区在线不卡| 欧美日韩国产色站一区二区三区| 国内精品久久久久影院色| 亚洲欧洲av色图| 欧美成人在线直播| 91美女在线观看| 久久er精品视频| 悠悠色在线精品| 久久久久久久精| 欧美日韩精品一区视频| 成人免费黄色在线| 久久精品久久99精品久久| 亚洲欧洲三级电影| 国产欧美一区视频| 精品国产欧美一区二区| 欧美性猛交一区二区三区精品| 国产成人av电影在线观看| 韩国成人精品a∨在线观看| 亚洲黄色免费网站| 欧美国产成人精品| 日韩欧美亚洲国产另类| 欧美日韩免费一区二区三区| va亚洲va日韩不卡在线观看| 韩国av一区二区三区在线观看| 日韩经典中文字幕一区| 亚洲精品视频在线观看网站| 欧美国产精品v| 国产亚洲成年网址在线观看| 欧美大尺度电影在线| 在线播放中文字幕一区| 在线免费观看日本一区| 91在线视频在线| 99在线精品一区二区三区| 国产成a人亚洲| 国产福利91精品| 国产激情视频一区二区在线观看| 久草这里只有精品视频| 免费在线视频一区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产精品二三区| 国产精品不卡在线| 国产精品美女久久久久久久久 | 日韩美女一区二区三区| 9191国产精品| 日韩一区二区在线看片| 91精品在线免费| 日韩一区二区三区高清免费看看| 欧美日韩免费视频| 欧美成人午夜电影| 久久久久久久久久久黄色| 欧美激情综合在线| 国产精品久久久久久久久图文区| 国产精品视频一区二区三区不卡| 中文字幕av一区二区三区高| 国产精品少妇自拍| 亚洲免费观看视频| 亚洲国产sm捆绑调教视频| 日韩精品一级二级| 精品综合久久久久久8888| 国产成人免费视| 99免费精品视频| 欧美性videosxxxxx| 91精品国产一区二区| 久久久亚洲高清| 亚洲欧美日韩国产手机在线| 亚洲国产视频网站| 久久91精品国产91久久小草| 国产精品自拍网站| 一本色道久久加勒比精品| 欧美日韩在线免费视频| 欧美电影免费提供在线观看| 国产精品久久免费看| 亚洲第一二三四区| 国产精品91xxx| 欧美性大战久久久久久久| 2023国产精品自拍| 亚洲精选在线视频| 麻豆freexxxx性91精品| 不卡一卡二卡三乱码免费网站| 欧美三级中文字幕在线观看| 精品乱码亚洲一区二区不卡| 中文字幕一区三区| 另类的小说在线视频另类成人小视频在线| 国产精品综合一区二区三区| 欧美三区在线观看| 国产精品久久久久久久久晋中| 亚洲国产精品影院| 丁香亚洲综合激情啪啪综合| 欧美色电影在线| 亚洲国产精品成人久久综合一区| 亚洲国产综合在线| 成人永久免费视频| 日韩欧美久久久| 亚洲第一av色| 91一区二区三区在线观看| 日韩精品一区二区三区蜜臀| 亚洲欧美另类久久久精品| 韩日av一区二区| 欧美日韩五月天| 一区二区在线观看免费 | 蜜桃在线一区二区三区| 色婷婷久久久综合中文字幕| 久久久午夜精品| 蜜桃精品在线观看| 欧美日韩国产综合一区二区三区| 亚洲国产岛国毛片在线| 久久国产日韩欧美精品| 欧美日韩国产经典色站一区二区三区| 亚洲国产精品99久久久久久久久| 美女诱惑一区二区| 欧美久久久久免费| 一区二区三区欧美| 99riav一区二区三区| 国产精品久久久久久久久快鸭| 国产伦精品一区二区三区免费 | 欧美日韩一区二区在线观看| 自拍偷拍欧美激情| www.欧美精品一二区| 国产色一区二区| 国产高清精品久久久久| 2欧美一区二区三区在线观看视频| 亚洲午夜在线观看视频在线| 99热精品一区二区| 亚洲免费在线观看| 色综合久久久久| 一区二区三区日韩| 欧亚洲嫩模精品一区三区| 亚洲综合激情小说|