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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? mapunit.pas

?? 傳奇客戶(hù)端源碼DClient很不錯(cuò)哦直的研究的游戲源碼
?? PAS
字號(hào):
unit MapUnit;

interface

uses
   Windows, Classes, SysUtils, Grobal2, HUtil32, DXDraws, CliUtil,
   MShare, Share;



type
// -------------------------------------------------------------------------------
// Map
// -------------------------------------------------------------------------------

  TMapPrjInfo = record
     Ident: string[16];
     ColCount: integer;
     RowCount: integer;
  end;

  TMapHeader = packed record
    wWidth      :Word;
    wHeight     :Word;
    sTitle      :String[16];
    UpdateDate  :TDateTime;
    Reserved    :array[0..22] of Char;
  end;
  TMapInfo = packed record
    wBkImg       :Word;
    wMidImg      :Word;
    wFrImg       :Word;
    btDoorIndex  :Byte;  //$80 (鞏婁), 鞏狼 僥喊 牢鄲膠
    btDoorOffset :Byte;  //摧腮 鞏狼 弊覆狼 惑措 困摹, $80 (凱覆/摧塞(扁夯))
    btAniFrame   :Byte;      //$80(Draw Alpha) +  橇貳烙 薦
    btAniTick    :Byte;
    btArea       :Byte;        //瘤開(kāi) 瀝焊
    btLight      :Byte;       //0..1..4 堡盔 瓤苞
  end;
  pTMapInfo = ^TMapInfo;

  TMapInfoArr = array[0..MaxListSize] of TMapInfo;
  pTMapInfoArr = ^TMapInfoArr;

  TMap = class
  private
    function  LoadMapInfo(sMapFile:String; var nWidth, nHeight: Integer): Boolean;
    procedure UpdateMapSeg (cx, cy: integer); //, maxsegx, maxsegy: integer);
    procedure LoadMapArr(nCurrX, nCurrY: integer);
    procedure SaveMapArr(nCurrX,nCurrY:Integer);
  public
    m_sMapBase      :string;
    m_MArr          :array[0..MAXX * 3, 0..MAXY * 3] of TMapInfo;
    m_boChange      :Boolean;
    m_ClientRect    :TRect;
    m_OldClientRect :TRect;
    m_nBlockLeft    :Integer;
    m_nBlockTop     :Integer; //鷗老 諒釬肺 哭率, 怖措扁 諒釬
    m_nOldLeft      :Integer;
    m_nOldTop       :Integer;
    m_sOldMap       :String;
    m_nCurUnitX     :Integer;
    m_nCurUnitY     :Integer;
    m_sCurrentMap   :String;
    m_boSegmented   :Boolean;
    m_nSegXCount    :Integer;
    m_nSegYCount    :Integer;
    constructor Create;
    destructor Destroy;override;//Jacky
    procedure UpdateMapSquare (cx, cy: integer);
    procedure UpdateMapPos (mx, my: integer);
    procedure ReadyReload;
    procedure LoadMap(sMapName:String;nMx,nMy:Integer);
    procedure MarkCanWalk (mx, my: integer; bowalk: Boolean);
    function  CanMove (mx, my: integer): Boolean;
    function  CanFly  (mx, my: integer): Boolean;
    function  GetDoor (mx, my: integer): Integer;
    function  IsDoorOpen (mx, my: integer): Boolean;
    function  OpenDoor (mx, my: integer): Boolean;
    function  CloseDoor (mx, my: integer): Boolean;
  end;

  procedure DrawMiniMap;

implementation

uses
   ClMain;


constructor TMap.Create;
begin
   inherited Create;
   //GetMem (MInfoArr, sizeof(TMapInfo) * LOGICALMAPUNIT * 3 * LOGICALMAPUNIT * 3);
   m_ClientRect  := Rect (0,0,0,0);
   m_boChange    :=False;
   m_sMapBase    := '.\Map\';
   m_sCurrentMap := '';
   m_boSegmented := FALSE;
   m_nSegXCount  := 0;
   m_nSegYCount  := 0;
   m_nCurUnitX   := -1;
   m_nCurUnitY   := -1;
   m_nBlockLeft  := -1;
   m_nBlockTop   := -1;
   m_sOldMap     := '';
end;

destructor TMap.Destroy;
begin
   inherited Destroy;
end;

function  TMap.LoadMapInfo (sMapFile:String; var nWidth, nHeight: Integer): Boolean;
var
  sFileName    :String;
  nHandle      :Integer;
  Header       :TMapHeader;
begin
  Result := FALSE;
  sFileName := m_sMapBase + sMapFile;
  if FileExists (sFileName) then begin
    nHandle := FileOpen (sFileName, fmOpenRead or fmShareDenyNone);
    if nHandle > 0 then begin
      FileRead (nHandle, Header, sizeof(TMapHeader));
      nWidth := Header.wWidth;
      nHeight := Header.wHeight;
    end;
    FileClose(nHandle);
  end;
end;

//segmented map 牢 版快
procedure TMap.UpdateMapSeg (cx, cy: integer); //, maxsegx, maxsegy: integer);
begin

end;

//加載地圖段數(shù)據(jù)
//以當(dāng)前座標(biāo)為準(zhǔn)
procedure TMap.LoadMapArr(nCurrX,nCurrY: integer);
var
  I         :Integer;
  K         :Integer;
  nAline    :Integer;
  nLx       :Integer;
  nRx       :Integer;
  nTy       :Integer;
  nBy       :Integer;
  sFileName :String;
  nHandle   :Integer;
  Header    :TMapHeader; 
begin
  FillChar(m_MArr, SizeOf(m_MArr), #0);
  sFileName:=m_sMapBase + m_sCurrentMap + '.map';
  if FileExists(sFileName) then begin
    nHandle:=FileOpen(sFileName, fmOpenRead or fmShareDenyNone);
    if nHandle > 0 then begin
      FileRead (nHandle, Header, SizeOf(TMapHeader));
      nLx := (nCurrX - 1) * LOGICALMAPUNIT;
      nRx := (nCurrX + 2) * LOGICALMAPUNIT;    //rx
      nTy := (nCurrY - 1) * LOGICALMAPUNIT;
      nBy := (nCurrY + 2) * LOGICALMAPUNIT;

      if nLx < 0 then nLx := 0;
      if nTy < 0 then nTy := 0;
      if nBy >= Header.wHeight then nBy := Header.wHeight;
      nAline := SizeOf(TMapInfo) * Header.wHeight;
      for I:=nLx to nRx - 1 do begin
        if (I >= 0) and (I < Header.wWidth) then begin
          FileSeek(nHandle, SizeOf(TMapHeader) + (nAline * I) + (SizeOf(TMapInfo) * nTy), 0);
          FileRead(nHandle, m_MArr[I - nLx, 0], SizeOf(TMapInfo) * (nBy - nTy));
        end;
      end;
      FileClose(nHandle);
    end;
  end;
end;

procedure TMap.SaveMapArr(nCurrX,nCurrY:Integer);
var
  I         :Integer;
  K         :Integer;
  nAline    :Integer;
  nLx       :Integer;
  nRx       :Integer;
  nTy       :Integer;
  nBy       :Integer;
  sFileName :String;
  nHandle   :Integer;
  Header    :TMapHeader; 
begin
  FillChar(m_MArr, SizeOf(m_MArr), #0);
  sFileName:=m_sMapBase + m_sCurrentMap + '.map';
  if FileExists(sFileName) then begin
    nHandle:=FileOpen(sFileName, fmOpenRead or fmShareDenyNone);
    if nHandle > 0 then begin
      FileRead (nHandle, Header, SizeOf(TMapHeader));
      nLx := (nCurrX - 1) * LOGICALMAPUNIT;
      nRx := (nCurrX + 2) * LOGICALMAPUNIT;    //rx
      nTy := (nCurrY - 1) * LOGICALMAPUNIT;
      nBy := (nCurrY + 2) * LOGICALMAPUNIT;

      if nLx < 0 then nLx := 0;
      if nTy < 0 then nTy := 0;
      if nBy >= Header.wHeight then nBy := Header.wHeight;
      nAline := SizeOf(TMapInfo) * Header.wHeight;
      for I:=nLx to nRx - 1 do begin
        if (I >= 0) and (I < Header.wWidth) then begin
          FileSeek(nHandle, SizeOf(TMapHeader) + (nAline * I) + (SizeOf(TMapInfo) * nTy), 0);
          FileRead(nHandle, m_MArr[I - nLx, 0], SizeOf(TMapInfo) * (nBy - nTy));
        end;
      end;
      FileClose(nHandle);
    end;
  end;
end;
procedure TMap.ReadyReload;
begin
   m_nCurUnitX := -1;
   m_nCurUnitY := -1;
end;

//cx, cy: 吝居, Counted by unit..
procedure TMap.UpdateMapSquare (cx, cy: integer);
begin
  if (cx <> m_nCurUnitX) or (cy <> m_nCurUnitY) then begin
    if m_boSegmented then
      updatemapseg (cx, cy)
    else
      LoadMapArr(cx, cy);
    m_nCurUnitX := cx;
    m_nCurUnitY := cy;
  end;
end;

//林某腐撈 撈悼矯 后鍋撈 齲免..
procedure TMap.UpdateMapPos (mx, my: integer);
var
   cx, cy: integer;
   procedure Unmark (xx, yy: integer);
   var
      ax, ay: integer;
   begin
      if (cx = xx div LOGICALMAPUNIT) and (cy = yy div LOGICALMAPUNIT) then begin
         ax := xx - m_nBlockLeft;
         ay := yy - m_nBlockTop;
         m_MArr[ax,ay].wFrImg := m_MArr[ax,ay].wFrImg and $7FFF;
         m_MArr[ax,ay].wBkImg := m_MArr[ax,ay].wBkImg and $7FFF;
      end;
   end;
begin
   cx := mx div LOGICALMAPUNIT;
   cy := my div LOGICALMAPUNIT;
   m_nBlockLeft := _MAX (0, (cx - 1) * LOGICALMAPUNIT);
   m_nBlockTop  := _MAX (0, (cy - 1) * LOGICALMAPUNIT);

   UpdateMapSquare (cx, cy);

   if (m_nOldLeft <> m_nBlockLeft) or (m_nOldTop <> m_nBlockTop) or (m_sOldMap <> m_sCurrentMap) then begin
      //3鍋甘 己寒磊府 滾弊 焊瀝 (2001-7-3)
      if m_sCurrentMap = '3' then begin
         Unmark (624, 278);
         Unmark (627, 278);
         Unmark (634, 271);

         Unmark (564, 287);
         Unmark (564, 286);
         Unmark (661, 277);
         Unmark (578, 296);
      end;
   end;
   m_nOldLeft := m_nBlockLeft;
   m_nOldTop := m_nBlockTop;
end;

//甘函版矯 貿(mào)瀾 茄鍋 齲免..
procedure TMap.LoadMap(sMapName:String;nMx,nMy:Integer);
begin
   m_nCurUnitX   := -1;
   m_nCurUnitY   := -1;
   m_sCurrentMap := sMapName;
   m_boSegmented := FALSE; //Segmented 登絹 樂(lè)綽瘤 八葷茄促.
   UpdateMapPos(nMx, nMy);
   m_sOldMap := m_sCurrentMap;
end;

procedure TMap.MarkCanWalk (mx, my: integer; bowalk: Boolean);
var
   cx, cy: integer;
begin
   cx := mx - m_nBlockLeft;
   cy := my - m_nBlockTop;
   if (cx < 0) or (cy < 0) then exit;
   if bowalk then //吧闌 薦 樂(lè)瀾
      Map.m_MArr[cx, cy].wFrImg := Map.m_MArr[cx, cy].wFrImg and $7FFF
   else //阜軀瀾
      Map.m_MArr[cx, cy].wFrImg := Map.m_MArr[cx, cy].wFrImg or $8000;  //給框流撈霸 茄促.
end;

function  TMap.CanMove (mx, my: integer): Boolean;
var
   cx, cy: integer;
begin
   Result:=False;  //jacky
   cx := mx - m_nBlockLeft;
   cy := my - m_nBlockTop;
   if (cx < 0) or (cy < 0) then exit;
   Result := ((Map.m_MArr[cx, cy].wBkImg and $8000) + (Map.m_MArr[cx, cy].wFrImg and $8000)) = 0;
   if Result then begin //鞏八葷
      if Map.m_MArr[cx, cy].btDoorIndex and $80 > 0 then begin  //鞏婁撈 樂(lè)瀾
         if (Map.m_MArr[cx, cy].btDoorOffset and  $80) = 0 then
            Result := FALSE; //鞏撈 救 凱啡瀾.
      end;
   end;
end;

function  TMap.CanFly(mx, my: integer): Boolean;
var
   cx, cy: integer;
begin
   Result:=False;  //jacky
   cx := mx - m_nBlockLeft;
   cy := my - m_nBlockTop;
   if (cx < 0) or (cy < 0) then exit;
   Result := (Map.m_MArr[cx, cy].wFrImg and $8000) = 0;
   if Result then begin //鞏八葷
      if Map.m_MArr[cx, cy].btDoorIndex and $80 > 0 then begin  //鞏婁撈 樂(lè)瀾
         if (Map.m_MArr[cx, cy].btDoorOffset and  $80) = 0 then
            Result := FALSE; //鞏撈 救 凱啡瀾.
      end;
   end;
end;

function  TMap.GetDoor (mx, my: integer): Integer;
var
   cx, cy: integer;
begin
   Result := 0;
   cx := mx - m_nBlockLeft;
   cy := my - m_nBlockTop;
   if Map.m_MArr[cx, cy].btDoorIndex and $80 > 0 then begin
      Result := Map.m_MArr[cx, cy].btDoorIndex and $7F;
   end;
end;

function  TMap.IsDoorOpen (mx, my: integer): Boolean;
var
   cx, cy: integer;
begin
   Result := FALSE;
   cx := mx - m_nBlockLeft;
   cy := my - m_nBlockTop;
   if Map.m_MArr[cx, cy].btDoorIndex and $80 > 0 then begin
      Result := (Map.m_MArr[cx, cy].btDoorOffset and $80 <> 0);
   end;
end;

function  TMap.OpenDoor (mx, my: integer): Boolean;
var
   i, j, cx, cy, idx: integer;
begin
   Result := FALSE;
   cx := mx - m_nBlockLeft;
   cy := my - m_nBlockTop;
   if (cx < 0) or (cy < 0) then exit;
   if Map.m_MArr[cx, cy].btDoorIndex and $80 > 0 then begin
      idx := Map.m_MArr[cx, cy].btDoorIndex and $7F;
      for i:=cx - 10 to cx + 10 do
         for j:=cy - 10 to cy + 10 do begin
            if (i > 0) and (j > 0) then
               if (Map.m_MArr[i, j].btDoorIndex and $7F) = idx then
                  Map.m_MArr[i, j].btDoorOffset := Map.m_MArr[i, j].btDoorOffset or $80;
         end;
   end;
end;

function  TMap.CloseDoor (mx, my: integer): Boolean;
var
   i, j, cx, cy, idx: integer;
begin
   Result := FALSE;
   cx := mx - m_nBlockLeft;
   cy := my - m_nBlockTop;
   if (cx < 0) or (cy < 0) then exit;
   if Map.m_MArr[cx, cy].btDoorIndex and $80 > 0 then begin
      idx := Map.m_MArr[cx, cy].btDoorIndex and $7F;
      for i:=cx-8 to cx+10 do
         for j:=cy-8 to cy+10 do begin
            if (Map.m_MArr[i, j].btDoorIndex and $7F) = idx then
               Map.m_MArr[i, j].btDoorOffset := Map.m_MArr[i, j].btDoorOffset and $7F;
         end;
   end;
end;


const
   SCALE = 4;

procedure DrawMiniMap;
var
   sx, sy, ex, ey, i, j, imgnum, wunit, ani, ny, oheight, MX, MY: integer;
   d: TDirectDrawSurface;
begin
   g_MiniMapSurface.Fill(0);
   MX := UNITX div SCALE;
   MY := UNITY div SCALE;
   sx := _MAX(0,      (g_MySelf.m_nCurrX - Map.m_nBlockLeft) div 2 * 2 - 22);
   ex := _MIN(MAXX*3, (g_MySelf.m_nCurrX - Map.m_nBlockLeft) div 2 * 2 + 22);
   sy := _MAX(0,      (g_MySelf.m_nCurrY - Map.m_nBlockTop) div 2 * 2 - 22);
   ey := _MIN(MAXY*3, (g_MySelf.m_nCurrY - Map.m_nBlockTop) div 2 * 2 + 22);

   for i:=0 to ex-sx do begin
      for j:=0 to ey-sy do begin
         if (i >= 0) and (j < MAXY*3) and ((i+sx) mod 2 = 0) and ((j+sy) mod 2 = 0) then begin
            imgnum := (Map.m_MArr[sx+i, sy+j].wBkImg and $7FFF);
            if imgnum > 0 then begin
               imgnum := imgnum - 1;
               d := g_WTilesImages.Images[imgnum];
               if d <> nil then
                  g_MiniMapSurface.StretchDraw (
                                 Rect (i*MX, j*MY, i*MX + d.Width div SCALE, j*MY + d.Height div SCALE),
                                 d.ClientRect,
                                 d,
                                 FALSE);

            end;
         end;
      end;
   end;
   for i:=0 to ex-sx-1 do begin
      for j:=0 to ey-sy-1 do begin
         imgnum := Map.m_MArr[sx+i, sy+j].wMidImg;
         if imgnum > 0 then begin
            imgnum := imgnum - 1;
            d := g_WSmTilesImages.Images[imgnum];
            if d <> nil then
               g_MiniMapSurface.StretchDraw (
                              Rect (i*MX, j*MY, i*MX + d.Width div SCALE, j*MY + d.Height div SCALE),
                              d.ClientRect,
                              d,
                              TRUE);
         end;
      end;
   end;
   for j:=0 to ey-sy-1+25 do begin
      for i:=0 to ex-sx do begin
         if (i >= 0) and (i < MAXX*3) and (j < MAXY*3) then begin
            imgnum := (Map.m_MArr[sx+i, sy+j].wFrImg and $7FFF);
            if imgnum > 0 then begin
               wunit := Map.m_MArr[sx+i, sy+j].btArea;
               ani := Map.m_MArr[sx+i, sy+j].btAniFrame;
               if (ani and $80) > 0 then begin
                  continue;
               end;
               imgnum := imgnum - 1;
               d := GetObjs(wunit, imgnum);
               if d <> nil then begin
                  ny := j*MY - d.Height div SCALE + MY;
                  if ny < 360 then
                     g_MiniMapSurface.StretchDraw (
                                 Rect (i*MX, ny, i*MX + d.Width div SCALE, ny + d.Height div SCALE),
                                 d.ClientRect,
                                 d,
                                 TRUE);
               end;
            end;
         end;
      end;
   end;
   //DrawEffect (0, 0, MiniMapSurface.Width, MiniMapSurface.Height, MiniMapSurface, ceGrayScale);
end;


end.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲天堂免费看| 秋霞av亚洲一区二区三| 欧美韩日一区二区三区| 精品国产一区二区三区久久久蜜月 | 天天做天天摸天天爽国产一区 | 亚洲一区中文日韩| 亚洲精品少妇30p| 一级特黄大欧美久久久| 伊人婷婷欧美激情| 亚洲国产精品自拍| 婷婷开心激情综合| 久久精品二区亚洲w码| 久久精品久久精品| 国产激情精品久久久第一区二区| 国产一区不卡精品| 国产a区久久久| 91免费在线播放| 精品污污网站免费看| 欧美另类变人与禽xxxxx| 五月天国产精品| 免费观看30秒视频久久| 国内精品久久久久影院一蜜桃| 国产麻豆视频一区二区| caoporm超碰国产精品| 色悠悠亚洲一区二区| 欧美三区在线观看| 日韩精品在线网站| 中文一区在线播放| 亚洲愉拍自拍另类高清精品| 免费看精品久久片| 国产高清精品网站| 日本丶国产丶欧美色综合| 欧美蜜桃一区二区三区| 久久综合色天天久久综合图片| 国产精品久久久久永久免费观看| 一区二区三区精品| 久草热8精品视频在线观看| 成人av网站在线| 精品视频免费看| 久久精品一区二区| 亚洲小说欧美激情另类| 国产一区不卡在线| 欧美自拍偷拍午夜视频| 2024国产精品| 一卡二卡三卡日韩欧美| 国产美女精品人人做人人爽| 色狠狠桃花综合| 精品国产伦一区二区三区免费 | 卡一卡二国产精品| www.欧美日韩国产在线| 欧美一区二区在线播放| 国产精品成人一区二区三区夜夜夜| 爽好多水快深点欧美视频| 成人深夜福利app| 7777精品久久久大香线蕉| 国产91精品露脸国语对白| 欧美综合色免费| 国产欧美日韩综合| 亚洲h在线观看| 99视频精品在线| 精品日韩在线观看| 亚洲第一综合色| 成a人片国产精品| 精品国产一区二区三区不卡 | 91在线观看污| 26uuu色噜噜精品一区| 亚洲福利国产精品| 成人一区二区三区视频| 欧美电影免费观看高清完整版| 一级女性全黄久久生活片免费| 国产成人久久精品77777最新版本| 777奇米四色成人影色区| 亚洲精品国久久99热| 粉嫩aⅴ一区二区三区四区五区| 日韩一区二区免费高清| 亚洲第一福利一区| 91丨九色丨蝌蚪富婆spa| 国产亚洲精品中文字幕| 卡一卡二国产精品| 欧美精品日韩一区| 亚洲一二三专区| 色哟哟亚洲精品| 国产精品九色蝌蚪自拍| 高清久久久久久| 久久久噜噜噜久久人人看| 免费看黄色91| 欧美一区二区三级| 天天影视涩香欲综合网| 欧美三级一区二区| 一区二区三区在线视频免费| 91色综合久久久久婷婷| 国产精品成人在线观看| 成人美女在线视频| 国产精品欧美精品| 成人午夜免费电影| 国产精品日韩成人| 成人国产电影网| 国产精品毛片无遮挡高清| 国产超碰在线一区| 亚洲国产高清在线| 从欧美一区二区三区| 中文字幕精品—区二区四季| 国产69精品久久777的优势| 国产欧美日韩不卡免费| 高清免费成人av| 最新国产成人在线观看| 91浏览器在线视频| 洋洋成人永久网站入口| 欧洲另类一二三四区| 亚洲成人先锋电影| 91精品婷婷国产综合久久| 日本不卡视频在线观看| 日韩精品最新网址| 国产一区二区三区四区五区美女| 久久日韩粉嫩一区二区三区 | 91.com视频| 九九在线精品视频| 国产欧美一区二区三区沐欲 | 欧美成人a∨高清免费观看| 韩国成人精品a∨在线观看| 国产片一区二区| 91老师片黄在线观看| 亚洲小说欧美激情另类| 日韩午夜电影在线观看| 国产最新精品免费| 中文字幕制服丝袜一区二区三区| 日本大香伊一区二区三区| 天天操天天综合网| 久久婷婷综合激情| 色综合天天性综合| 日本视频一区二区三区| 久久夜色精品一区| 91啪九色porn原创视频在线观看| 亚洲午夜电影网| 亚洲精品在线免费播放| 成人福利视频网站| 天堂一区二区在线| 国产香蕉久久精品综合网| 一本大道久久a久久综合| 日韩主播视频在线| 国产日韩欧美电影| 欧美午夜寂寞影院| 国产一区二区精品久久99| 亚洲精品国产一区二区三区四区在线| 337p亚洲精品色噜噜狠狠| 国产99久久久国产精品潘金网站| 亚洲激情在线播放| 精品久久久影院| 在线观看亚洲a| 国精产品一区一区三区mba桃花| 亚洲人成小说网站色在线| 日韩色视频在线观看| av午夜精品一区二区三区| 男人的j进女人的j一区| 亚洲丝袜另类动漫二区| 欧美草草影院在线视频| 在线免费观看日韩欧美| 国产一区二区三区综合| 爽好多水快深点欧美视频| 中文一区在线播放| 欧美成人r级一区二区三区| 日本韩国视频一区二区| 国产传媒日韩欧美成人| 日韩高清不卡在线| 亚洲三级电影网站| 久久精品一区蜜桃臀影院| 欧美一区二区三区在线看| 91视视频在线观看入口直接观看www| 久久99国产精品麻豆| 亚洲国产精品久久久男人的天堂 | 另类人妖一区二区av| 亚洲精品乱码久久久久久久久| 久久精品视频网| 日韩一二三区不卡| 欧美色图天堂网| 99久久免费精品| 国产风韵犹存在线视精品| 人人狠狠综合久久亚洲| 亚洲高清不卡在线| 一区二区三区四区蜜桃 | 粉嫩一区二区三区性色av| 奇米精品一区二区三区在线观看 | 亚洲精品国产品国语在线app| 久久久久一区二区三区四区| 3atv一区二区三区| 欧美三区在线观看| 91国偷自产一区二区使用方法| 成年人国产精品| 懂色av中文一区二区三区| 国产一区二区三区免费| 蜜桃视频第一区免费观看| 五月天久久比比资源色| 亚洲影院在线观看| 亚洲免费高清视频在线| 国产精品国产a| 中文字幕日韩一区二区| 国产精品三级电影| 国产欧美一二三区| 国产精品欧美经典| 国产精品美女视频|