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

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

?? weathereffect.cpp

?? 傳奇客戶端源代碼
?? CPP
字號:
#include "StdAfx.h"


CMist::CMist()
{
 	D3DVECTOR vNorm(0, 0, -1);
    m_avBillboard[0] = D3DVERTEX(D3DVECTOR(-400.0f, 300.0f, 0), vNorm, 0, 0);
    m_avBillboard[1] = D3DVERTEX(D3DVECTOR(-400.0f,-300.0f, 0), vNorm, 0, 1);
    m_avBillboard[2] = D3DVERTEX(D3DVECTOR( 400.0f, 300.0f, 0), vNorm, 1, 0);
    m_avBillboard[3] = D3DVERTEX(D3DVECTOR( 400.0f,-300.0f, 0), vNorm, 1, 1);

	m_vTrans.x = 0;
	m_vTrans.y = 0;
	m_vTrans.z = 0;
}

CMist::~CMist()
{
}

BOOL CMist::Create()
{
	D3DTextr_CreateTextureFromFile("mist.bmp");
	D3DTextr_Restore("mist.bmp", g_xMainWnd.Get3DDevice());
	return FALSE;
}

VOID CMist::Init()
{
}

VOID CMist::Destory()
{
}

HRESULT CMist::DrawMist()
{
	if ( g_xMainWnd.Get3DDevice() )
	{
		D3DMATRIX matWorldOriginal;
		D3DMATRIX matTrans;
		D3DMATRIX matScale;
		D3DMATRIX matWorld;

		if( SUCCEEDED(g_xMainWnd.Get3DDevice()->BeginScene()) )
		{
			g_xMainWnd.Get3DDevice()->GetTransform(D3DTRANSFORMSTATE_WORLD, &matWorldOriginal);

			static int nCnt = 0;

			nCnt++;

			if ( nCnt < 800 )
			{
 				m_vTrans.x -= 1.9f; 
				m_vTrans.y -= 0.2f; 
				m_vTrans.z = (FLOAT)0;
			}
			else if ( nCnt >= 800 &&  nCnt < 1600 )
			{
 				m_vTrans.x += 1.9f; 
				m_vTrans.y += 0.2f; 
				m_vTrans.z = (FLOAT)0;
			}
			else
			{
				nCnt = 0;
			}

			D3DUtil_SetTranslateMatrix(matTrans, m_vTrans);
			D3DUtil_SetScaleMatrix(matScale, 5.0f, 2.0f, 0.0f);
			D3DMath_MatrixMultiply(matWorld, matScale, matTrans);
			g_xMainWnd.Get3DDevice()->SetTransform(D3DTRANSFORMSTATE_WORLD, &matWorld);

			D3DMATERIAL7 mtrl;
			D3DUtil_InitMaterial(mtrl, 
								 (FLOAT)100/255.0f,
								 (FLOAT)200/255.0f, 
								 (FLOAT)200/255.0f);
			mtrl.diffuse.a = 1/255.0f;
			g_xMainWnd.Get3DDevice()->SetMaterial(&mtrl);

			SetBlendRenderState(g_xMainWnd.Get3DDevice(), 2, mtrl);

			g_xMainWnd.Get3DDevice()->SetTexture(0, D3DTextr_GetSurface("mist.bmp"));
			g_xMainWnd.Get3DDevice()->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX, m_avBillboard, 4, NULL);

			g_xMainWnd.Get3DDevice()->SetTransform(D3DTRANSFORMSTATE_WORLD, &matWorldOriginal);

			ResetBlendenderState(g_xMainWnd.Get3DDevice());
			g_xMainWnd.Get3DDevice()->EndScene();
			return S_OK;
		}
	}
	return E_FAIL;
}

VOID CMist::ProgressMist()
{
	DrawMist();
}






/*
CRain::CRain()
{
 	D3DVECTOR vNorm(0, 0, -1);
	m_avBillboard[0] = D3DVERTEX( D3DVECTOR(-0.5f,-5.0f, 0.0f ), vNorm, 0.0f, 1.0f );
    m_avBillboard[1] = D3DVERTEX( D3DVECTOR( 0.5f,-5.0f, 0.0f ), vNorm, 0.0f, 0.0f );
    m_avBillboard[2] = D3DVERTEX( D3DVECTOR(-0.5f, 5.0f, 0.0f ), vNorm, 1.0f, 1.0f );
    m_avBillboard[3] = D3DVERTEX( D3DVECTOR( 0.5f, 5.0f, 0.0f ), vNorm, 1.0f, 0.0f );
}

CRain::~CRain()
{
}

BOOL CRain::Create()
{
//	D3DTextr_CreateTextureFromFile("snow.bmp");
//	D3DTextr_Restore("snow.bmp", g_xMainWnd.Get3DDevice());
	m_xParticles.m_rParticleWind = 0.03f;
	m_xParticles.m_rParticleGravity = 0.25f;
	return FALSE;
}

VOID CRain::Init()
{
}

VOID CRain::Destory()
{
}

HRESULT CRain::DrawRain()
{
	if ( g_xMainWnd.Get3DDevice() )
	{
		D3DMATRIX matWorldOriginal;
		D3DMATRIX matTrans;
		D3DMATRIX matScale;
		D3DMATRIX matWorld;

		D3DVECTOR vTrans;

		m_xParticles.SetRain();

		if( SUCCEEDED(g_xMainWnd.Get3DDevice()->BeginScene()) )
		{
			g_xMainWnd.Get3DDevice()->GetTransform(D3DTRANSFORMSTATE_WORLD, &matWorldOriginal);

			m_xParticles.ProcessParticles();

			D3DMATERIAL7 mtrl;
			D3DUtil_InitMaterial(mtrl, 
								 (FLOAT)150/255.0f,
								 (FLOAT)150/255.0f, 
								 (FLOAT)150/255.0f);
			mtrl.diffuse.a = 10/255.0f;
			g_xMainWnd.Get3DDevice()->SetMaterial(&mtrl);

			SetBlendRenderState(g_xMainWnd.Get3DDevice(), 0, mtrl);

			for ( INT nCnt = 0; nCnt < MAX_PARTICLES; nCnt++ )
			{
				if ( m_xParticles.m_stParticles[nCnt].nState == PARTICLE_STATE_ALIVE )
				{
  					vTrans.x = (FLOAT)m_xParticles.m_stParticles[nCnt].rX-400; 
					vTrans.y = (FLOAT)-m_xParticles.m_stParticles[nCnt].rY+300; 
					vTrans.z = 0;
					FLOAT rSize = (FLOAT)(10+(nCnt%20));
					D3DUtil_SetScaleMatrix(matScale, 1, 1, 0.0f);
					D3DUtil_SetTranslateMatrix(matTrans, vTrans);
					D3DMath_MatrixMultiply(matWorld, matScale, matTrans);
					g_xMainWnd.Get3DDevice()->SetTransform(D3DTRANSFORMSTATE_WORLD, &matWorld);
//					g_xMainWnd.Get3DDevice()->SetTexture(0, D3DTextr_GetSurface("snow.bmp"));
					g_xMainWnd.Get3DDevice()->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX, m_avBillboard, 4, NULL);
					g_xMainWnd.Get3DDevice()->SetTransform(D3DTRANSFORMSTATE_WORLD, &matWorldOriginal);
				}
			}
			ResetBlendenderState(g_xMainWnd.Get3DDevice());
			g_xMainWnd.Get3DDevice()->EndScene();
			return S_OK;
		}
	}
	return E_FAIL;
}


VOID CRain::ProgressRain()
{
	DrawRain();
}












CSnow::CSnow()
{
 	D3DVECTOR vNorm(0, 0, -1);
	m_avBillboard[0] = D3DVERTEX( D3DVECTOR(-2.0f,-2.0f, 0.0f ), vNorm, 0.0f, 1.0f );
    m_avBillboard[1] = D3DVERTEX( D3DVECTOR(-2.0f, 2.0f, 0.0f ), vNorm, 0.0f, 0.0f );
    m_avBillboard[2] = D3DVERTEX( D3DVECTOR( 2.0f,-2.0f, 0.0f ), vNorm, 1.0f, 1.0f );
    m_avBillboard[3] = D3DVERTEX( D3DVECTOR( 2.0f, 2.0f, 0.0f ), vNorm, 1.0f, 0.0f );
}

CSnow::~CSnow()
{
}

BOOL CSnow::Create()
{
	D3DTextr_CreateTextureFromFile("snow.bmp");
	D3DTextr_Restore("snow.bmp", g_xMainWnd.Get3DDevice());
	return FALSE;
}

VOID CSnow::Init()
{
}

VOID CSnow::Destory()
{
}

HRESULT CSnow::DrawSnow()
{
	if ( g_xMainWnd.Get3DDevice() )
	{
		D3DMATRIX matWorldOriginal;
		D3DMATRIX matTrans;
		D3DMATRIX matScale;
		D3DMATRIX matWorld;

		D3DVECTOR vTrans;

		m_xParticles.SetSnow();

		if( SUCCEEDED(g_xMainWnd.Get3DDevice()->BeginScene()) )
		{
			g_xMainWnd.Get3DDevice()->GetTransform(D3DTRANSFORMSTATE_WORLD, &matWorldOriginal);

			m_xParticles.ProcessParticles();

			D3DMATERIAL7 mtrl;
			D3DUtil_InitMaterial(mtrl, 
								 (FLOAT)255/255.0f,
								 (FLOAT)255/255.0f, 
								 (FLOAT)255/255.0f);
			mtrl.diffuse.a = 1/255.0f;
			g_xMainWnd.Get3DDevice()->SetMaterial(&mtrl);
			SetBlendRenderState(g_xMainWnd.Get3DDevice(), _BLEND_NORMAL, mtrl);

			for ( INT nCnt = 0; nCnt < MAX_PARTICLES; nCnt++ )
			{
				if ( m_xParticles.m_stParticles[nCnt].nState == PARTICLE_STATE_ALIVE )
				{

  					vTrans.x = (FLOAT)m_xParticles.m_stParticles[nCnt].rX-400; 
					vTrans.y = (FLOAT)-m_xParticles.m_stParticles[nCnt].rY+300; 
					vTrans.z = 0;
					FLOAT rSize = (FLOAT)(10+(nCnt%20));
					D3DUtil_SetScaleMatrix(matScale, rSize/22.0f, rSize/22.0f, 0.0f);
					D3DUtil_SetTranslateMatrix(matTrans, vTrans);
					D3DMath_MatrixMultiply(matWorld, matScale, matTrans);
					g_xMainWnd.Get3DDevice()->SetTransform(D3DTRANSFORMSTATE_WORLD, &matWorld);
					g_xMainWnd.Get3DDevice()->SetTexture(0, D3DTextr_GetSurface("snow.bmp"));
					g_xMainWnd.Get3DDevice()->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX, m_avBillboard, 4, NULL);
					g_xMainWnd.Get3DDevice()->SetTransform(D3DTRANSFORMSTATE_WORLD, &matWorldOriginal);
				}
			}
			ResetBlendenderState(g_xMainWnd.Get3DDevice());
			g_xMainWnd.Get3DDevice()->EndScene();
			return S_OK;
		}
	}
	return E_FAIL;
}


VOID CSnow::ProgressSnow()
{
	DrawSnow();
}
*/





SHORT	m_shWaveMap[2][_MAX_X*_MAX_Y];

CAirWave::CAirWave()
{
}

CAirWave::~CAirWave()
{
}

VOID CAirWave::InitAirWave()
{
	SHORT shTmp;
	for ( SHORT shCnt = -256; shCnt <= 255; shCnt++ )
	{	
		shTmp = shCnt / 4;
		m_bDispLut[shCnt+256] = (BYTE)(tan(asin((sin(atan((double)shCnt))/4.0f)))*shTmp);
	}
	ZeroMemory(m_shWaveMap, sizeof(WORD)*_MAX_X*_MAX_Y*2);

	m_bCurr = _CURR;
	m_bNew  = _NEW;

}

VOID CAirWave::UpdateAirWave()
{
	SHORT shWaveHeight;
	for ( INT y = 2; y <= _MAX_Y-2; y++ )
		for ( INT x = 2; x <= _MAX_X-2; x++ )
		{
			shWaveHeight = (
			m_shWaveMap[m_bCurr][x-1 + _MAX_X *  y] +
			m_shWaveMap[m_bCurr][x-2 + _MAX_X *  y] +
			m_shWaveMap[m_bCurr][x+1 + _MAX_X *  y] +
			m_shWaveMap[m_bCurr][x+2 + _MAX_X *  y] +
			m_shWaveMap[m_bCurr][x   + _MAX_X * (y-1)] +
			m_shWaveMap[m_bCurr][x   + _MAX_X * (y-2)] +
			m_shWaveMap[m_bCurr][x   + _MAX_X * (y+1)] +
			m_shWaveMap[m_bCurr][x   + _MAX_X * (y+2)] +
			m_shWaveMap[m_bCurr][x-1 + _MAX_X * (y-1)] +
			m_shWaveMap[m_bCurr][x+1 + _MAX_X * (y-1)] +
			m_shWaveMap[m_bCurr][x-1 + _MAX_X * (y+1)] +
			m_shWaveMap[m_bCurr][x+1 + _MAX_X * (y+1)]
			) / 6 - m_shWaveMap[m_bNew][x + _MAX_X * y];

//			shWaveHeight = shWaveHeight - (shWaveHeight/_DAMP);
			
			_asm
			{
				push bx
				mov bx, shWaveHeight
				sar bx, _DAMP
				sub shWaveHeight, bx
				pop bx
			}

			m_shWaveMap[m_bNew][x + _MAX_X * y] = shWaveHeight;
		}
}


VOID CAirWave::DropAirWaveMap(INT nX, INT nY, INT nW, INT nMulFactor)
{
	INT nSqrX, nSqrY, nSqrW;

	nSqrW = nW*nW;

	if ( (nX > nW) && (nX < _MAX_X-nW) && (nY > nW) && (nY < _MAX_Y-nW) )
	{
		for ( INT nV = nY-nW; nV <= nY+nW; nV++ )
		{
			nSqrY = (nV-nY)*(nV-nY);
			for ( INT nU = nX-nW; nU <= nX+nW; nU++ )
			{
				nSqrX = (nU-nX)*(nU-nX);

				if ( (nSqrX+nSqrY) <= nSqrW )
				{
					INT nTmpValue = nW-(INT)(sqrt((double)(nSqrX+nSqrY)));
					m_shWaveMap[m_bCurr][nU + _MAX_X * nV] = (nMulFactor*nTmpValue);
				}
			}
		}
	}
}


VOID CAirWave::RenderAirWave()
{
	DDSURFACEDESC2	ddsd;
	WORD  wColor;
	SHORT shXDiff, shYDiff, shXDisp, shYDisp;


	if ( g_xMainWnd.GetBackBuffer() != NULL )
	{
		ddsd.dwSize	= sizeof(DDSURFACEDESC2);
		ddsd.lpSurface = NULL;
			
		g_xMainWnd.GetBackBuffer()->Lock(NULL, &ddsd, DDLOCK_WAIT, NULL);
		
		if ( !ddsd.lpSurface )		return;
		
		WORD* pwdDst;
		pwdDst = (WORD*)ddsd.lpSurface;

		for ( INT y=0 ; y < _MAX_Y; y++ )
		{
			for ( INT x=0 ; x < _MAX_X; x++ )
			{
				shXDiff = m_shWaveMap[m_bNew][(x+1) + _MAX_X * y] - m_shWaveMap[m_bNew][x + _MAX_X * y];
				shYDiff = m_shWaveMap[m_bNew][x + _MAX_X * (y+1)] - m_shWaveMap[m_bNew][x + _MAX_X * y];
				shXDisp = m_bDispLut[shXDiff+256];
				shYDisp = m_bDispLut[shYDiff+256];

				if ( shXDiff < 0 )
				{
					if ( shYDiff < 0 )
					  wColor = pwdDst[((y-shYDisp) * (ddsd.lPitch >> 1)) + (x-shXDisp)];
					else
					  wColor = pwdDst[((y+shYDisp) * (ddsd.lPitch >> 1)) + (x-shXDisp)];
				}
				else
				{
					if ( shYDiff < 0 )
					  wColor = pwdDst[((y-shYDisp) * (ddsd.lPitch >> 1)) + (x+shXDisp)];
					else
					  wColor = pwdDst[((y+shYDisp) * (ddsd.lPitch >> 1)) + (x+shXDisp)];
				}
				pwdDst[(y * (ddsd.lPitch >> 1)) + x] = wColor;
			}
		}

		BYTE bTmp = m_bCurr;
		m_bCurr = m_bNew;
		m_bNew = bTmp;

		g_xMainWnd.GetBackBuffer()->Unlock(NULL);

		return;
	}
}



/*
procedure TfrmDxEffect.InitWaveMap;
var x,y: SmallInt;
begin
  for y:=0 to MAXY do begin
    for x:=0 to MAXX do begin
      WaveMap[CT,x,y] := 0;
      WaveMap[NW,x,y] := 0;
    end;
  end;
end;



procedure TfrmDxEffect.UpdateWaveMap;
var
  x,y,n: Smallint;
begin
  (* ------------------------------------------------------------------------ *)
  (* Calculate the next frame of our waterwaves at time t                     *)
  (*                                                                          *)
  (* The height of the wave at (x, y) is determined by adding the heights of  *)
  (* the waves located above, below, to the left and to the right of (x, y).  *)
  (* The sum is then divided by two, giving us a waveheight roughly twice     *)
  (* as high as the rest.                                                     *)
  (*                                                                          *)
  (* Here comes the key to wave animation: from our total, we subtract the    *)
  (* height of the wave at (x, y) at time t-1.                                *)
  (*                                                                          *)
  (* If the previous wave was higher than average, the wave will drop.        *)
  (* And if the previous wave was lower than average, the wave will rise.     *)
  (*                                                                          *)
  (* Check out these sketches:                                                *)
  (*                                                                          *)
  (*   ****                        ****                                       *)
  (*   ----*** -----------------***----------- average height;                *)
  (*          ****          ****               the wave will rise             *)
  (*              **********                                                  *)
  (*                                                                          *)
  (*                                                                          *)
  (*              **********                                                  *)
  (*   -------****----------****-------------- average height;                *)
  (*       ***                  ***            the wave will drop             *)
  (*   ****                         ****                                      *)
  (*                                                                          *)
  (* While moving up and down, the wave loses energy. This is simulated by    *)
  (* using a damping factor. This factor depends on the height of the wave,   *)
  (* so that high waves lose energy fast, and low waves lose energy slowly:   *)
  (*                                                                          *)
  (*   wave_height = wave_height - (wave_height / damp_factor)                *)
  (* ------------------------------------------------------------------------ *)
  for y:=2 to MAXY-2 do begin
    for x:=2 to MAXX-2 do begin
      n:=( WaveMap[CT,x-1,y] +
           WaveMap[CT,x-2,y] +
           WaveMap[CT,x+1,y] +
           WaveMap[CT,x+2,y] +
           WaveMap[CT,x,y-1] +
           WaveMap[CT,x,y-2] +
           WaveMap[CT,x,y+1] +
           WaveMap[CT,x,y+2] +
           WaveMap[CT,x-1,y-1] +
           WaveMap[CT,x+1,y-1] +
           WaveMap[CT,x-1,y+1] +
           WaveMap[CT,x+1,y+1]
           ) div 6 - WaveMap[NW,x,y];
      asm
        push bx
        mov bx, n
        sar bx, DAMP
        sub n, bx
        pop bx
      end;
      WaveMap[NW,x,y] := n;  // Store result
    end;
  end;
end;


procedure TfrmDxEffect.RenderWaveToDIB(DIB: TDIB);
var
  x,y,newcolor,xDiff,yDiff,xDisp,yDisp: Smallint;
begin
  for y:=0 to MAXY do begin
    for x:=0 to MAXX do begin
      xDiff := WaveMap[NW,x+1,y] - WaveMap[NW,x,y];
      yDiff := WaveMap[NW,x,y+1] - WaveMap[NW,x,y];
      xDisp := dispLut[xDiff+256];
      yDisp := dispLut[yDiff+256];

      if xDiff<0 then begin
        // Current position is higher - Clockwise rotation
        if (yDiff<0) then
          newcolor := Background.DIB.Pixels[x-xDisp,y-yDisp]
        else
          newcolor := Background.DIB.Pixels[x-xDisp,y+yDisp]
      end else begin
        if (yDiff<0) then
          newcolor := Background.DIB.Pixels[x+xDisp,y-yDisp]
        else
          newcolor := Background.DIB.Pixels[x+xDisp,y+yDisp]
      end;
      DIB.Pixels[x,y] := newcolor;
    end;
  end;
end;*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲福利视频一区| 国产福利不卡视频| 国产精品综合二区| 色噜噜狠狠色综合欧洲selulu| 欧美精选在线播放| 中文字幕一区免费在线观看| 亚洲妇女屁股眼交7| 国产精品中文字幕一区二区三区| 欧美中文一区二区三区| 国产女同性恋一区二区| 视频一区欧美日韩| eeuss鲁片一区二区三区| 日韩精品资源二区在线| 亚洲一区二区综合| 日韩一区二区三区四区| 亚洲男人电影天堂| 成人免费高清在线| 精品免费国产二区三区| 日韩专区欧美专区| 欧美三级资源在线| 亚洲综合在线免费观看| zzijzzij亚洲日本少妇熟睡| 久久久高清一区二区三区| 日韩vs国产vs欧美| 91精品久久久久久久久99蜜臂| 亚洲综合免费观看高清在线观看| 99视频在线精品| 国产精品免费aⅴ片在线观看| 国产综合一区二区| 精品国一区二区三区| 日韩二区三区四区| 欧美一二区视频| 七七婷婷婷婷精品国产| 6080日韩午夜伦伦午夜伦| 亚洲一区影音先锋| 欧美无砖专区一中文字| 亚洲成人一二三| 欧美吞精做爰啪啪高潮| 一区二区高清免费观看影视大全| 色综合久久久网| 亚洲网友自拍偷拍| 国产日韩一级二级三级| 国产精品18久久久久久久久久久久| 日韩精品资源二区在线| 国产精品一级片| 日本一区二区三区电影| 99久久婷婷国产| 玉米视频成人免费看| 欧洲精品一区二区| 免费观看30秒视频久久| 久久九九全国免费| 99久久国产免费看| 一区二区三区精品| 精品视频色一区| 久久99国产精品成人| 久久久久久久电影| 91免费在线看| 欧美aⅴ一区二区三区视频| 精品国产免费一区二区三区香蕉 | 欧美三级视频在线观看| 午夜精品一区在线观看| 精品免费国产一区二区三区四区| 丁香婷婷综合色啪| 亚洲已满18点击进入久久| 欧美成人一区二区三区| 成人激情动漫在线观看| 亚洲成人av电影在线| 精品国产一区二区精华| 91在线国产福利| 天堂在线一区二区| 国产天堂亚洲国产碰碰| 欧美色网站导航| 国内不卡的二区三区中文字幕 | 亚洲精品在线观| av在线一区二区| 免费成人性网站| 亚洲男同性视频| 精品国产网站在线观看| 欧美视频完全免费看| 国产精品资源在线| 日韩高清在线观看| 亚洲欧美视频在线观看视频| 精品国产91久久久久久久妲己| 色综合天天综合网国产成人综合天| 日本免费新一区视频| 亚洲区小说区图片区qvod| 久久欧美一区二区| 91精品国产综合久久蜜臀| 91丨porny丨在线| 国产很黄免费观看久久| 免费av成人在线| 一区二区三区四区国产精品| 国产欧美视频在线观看| 日韩三级免费观看| 在线观看欧美精品| 成人激情小说网站| 加勒比av一区二区| 日韩精品五月天| 亚洲最色的网站| 亚洲欧美综合另类在线卡通| 国产午夜精品久久久久久久| 欧美一级免费观看| 欧美男人的天堂一二区| 日本韩国视频一区二区| 91香蕉视频mp4| 成人午夜精品在线| 豆国产96在线|亚洲| 韩日av一区二区| 久久综合综合久久综合| 日韩精品国产欧美| 香蕉影视欧美成人| 天堂成人免费av电影一区| 亚洲国产精品尤物yw在线观看| 亚洲色图19p| 一区二区三区中文字幕在线观看| 亚洲丝袜另类动漫二区| ...av二区三区久久精品| 国产精品成人免费在线| 亚洲色欲色欲www在线观看| 国产精品成人网| 亚洲蜜臀av乱码久久精品| 亚洲手机成人高清视频| 国产精品免费久久久久| 最新不卡av在线| 亚洲精品视频观看| 亚洲自拍偷拍网站| 亚洲成人免费视| 人人爽香蕉精品| 国内精品在线播放| 国产成人免费高清| caoporen国产精品视频| 色噜噜狠狠一区二区三区果冻| 欧美视频日韩视频在线观看| 91精品国产综合久久精品| 欧美成人高清电影在线| 久久精品一区蜜桃臀影院| 国产精品麻豆网站| 亚洲精品视频在线| 免费人成网站在线观看欧美高清| 经典三级一区二区| 91视视频在线观看入口直接观看www | 成人一区二区在线观看| 日本高清不卡视频| 精品日产卡一卡二卡麻豆| 国产婷婷色一区二区三区| 一区二区三区蜜桃| 狠狠色丁香久久婷婷综合丁香| av影院午夜一区| 欧美一区二区三区性视频| 欧美国产一区视频在线观看| 亚洲综合色区另类av| 精品在线免费观看| 91免费观看视频| 日韩欧美www| 国产精品乱码一区二区三区软件| 亚洲动漫第一页| 国产制服丝袜一区| 在线视频综合导航| 久久女同精品一区二区| 亚洲午夜久久久久久久久电影网 | 欧美日韩一区小说| 国产偷国产偷精品高清尤物| 亚洲大型综合色站| 丁香婷婷深情五月亚洲| 欧美一区午夜精品| 综合网在线视频| 国内外精品视频| 欧美日韩一区二区三区高清| 久久久国际精品| 日产国产欧美视频一区精品| 成人激情免费视频| 精品国产sm最大网站免费看| 亚洲444eee在线观看| 97精品电影院| 久久久三级国产网站| 日本 国产 欧美色综合| 欧洲亚洲国产日韩| 亚洲欧美一区二区视频| 国产一区二区在线影院| 91精品国产综合久久蜜臀| 亚洲一区二区精品3399| jlzzjlzz亚洲女人18| 国产日韩综合av| 国内成人免费视频| 日韩免费观看2025年上映的电影| 亚洲午夜精品久久久久久久久| 成人国产精品免费观看动漫| 精品国产一区二区三区不卡| 人人精品人人爱| 91精品欧美一区二区三区综合在| 亚洲综合免费观看高清完整版在线| 99久久99久久免费精品蜜臀| 国产精品伦一区| 大白屁股一区二区视频| 欧美—级在线免费片| 国产成人啪午夜精品网站男同| 日韩欧美一级在线播放| 激情综合色丁香一区二区| 欧美tickling网站挠脚心| 麻豆精品视频在线观看视频|