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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? brush.cpp

?? 3D游戲場(chǎng)景編輯器
?? CPP
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
	assert(b != NULL);
	assert (newname != NULL);

	//empty names ok?  should I check?  Should I assert?
	if (b->Name != NULL)
	{
		geRam_Free (b->Name);
	}

	b->Name	=Util_Strdup(newname);
	if (b->BList != NULL)
	{
		geRam_Free 	(b->BList->First->Name);
		geRam_Free 	(b->BList->Last->Name);

		//	these additions are necessary so that GetCursorInfo will display
		//	the correct brush name on the status bar.
		b->BList->First->Name = Util_Strdup(newname);	//	post 0.5 release
		b->BList->Last->Name = Util_Strdup(newname);	//	post 0.5 release
	}

}

geBoolean	Brush_IsSolid(const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsSolid", MB_OK);	//	post 0.55

	assert(b != NULL);
	
	return	(b->Flags & BRUSH_SOLID)?	GE_TRUE : GE_FALSE;
}

geBoolean	Brush_IsWindow(const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsWindow", MB_OK);	//	post 0.55

	assert(b != NULL);
	
	return	(b->Flags & BRUSH_WINDOW)?	GE_TRUE : GE_FALSE;
}

geBoolean	Brush_IsWavy(const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsWavy", MB_OK);	//	post 0.55

	assert(b != NULL);
	
	return	(b->Flags & BRUSH_WAVY)?	GE_TRUE : GE_FALSE;
}

geBoolean	Brush_IsDetail(const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsDetail", MB_OK);	//	post 0.55

	assert(b != NULL);
	
	return	(b->Flags & BRUSH_DETAIL)?	GE_TRUE : GE_FALSE;
}

geBoolean	Brush_IsSubtract(const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsSubtract", MB_OK);	//	post 0.55

	assert(b != NULL);
	
	return	(b->Flags & BRUSH_SUBTRACT)?	GE_TRUE : GE_FALSE;
}

geBoolean	Brush_IsClip(const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsClip", MB_OK);	//	post 0.55

	assert(b != NULL);
	
	return	(b->Flags & BRUSH_CLIP)?	GE_TRUE : GE_FALSE;
}

geBoolean	Brush_IsHollow(const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsHollow", MB_OK);	//	post 0.55

	assert(b != NULL);

	return	(b->Flags & BRUSH_HOLLOW)?	GE_TRUE : GE_FALSE;
}

geBoolean	Brush_IsHollowCut(const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsHollowCut", MB_OK);	//	post 0.55

	assert(b != NULL);

	return	(b->Flags & BRUSH_HOLLOWCUT)?	GE_TRUE : GE_FALSE;
}

geBoolean	Brush_IsEmpty(const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsEmpty", MB_OK);	//	post 0.55

	assert(b != NULL);
	
	return	(b->Flags & BRUSH_EMPTY)?	GE_TRUE : GE_FALSE;
}

//this one is ! value of flag
geBoolean	Brush_IsVisible(const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsVisible", MB_OK);	//	post 0.55

	assert(b != NULL);
	
	return	(b->Flags & BRUSH_HIDDEN)?	GE_FALSE : GE_TRUE;
}

geBoolean	Brush_IsLocked(const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsLocked", MB_OK);	//	post 0.55

	assert(b != NULL);
	
	return	(b->Flags & BRUSH_LOCKED)?	GE_TRUE : GE_FALSE;
}

geBoolean	Brush_IsHint(const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsHint", MB_OK);	//	post 0.55

	assert(b != NULL);
	
	return	(b->Flags & BRUSH_HINT)?	GE_TRUE : GE_FALSE;
}

geBoolean	Brush_IsArea(const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsArea", MB_OK);	//	post 0.55

	assert(b != NULL);
	
	return	(b->Flags & BRUSH_AREA)?	GE_TRUE : GE_FALSE;
}

geBoolean	Brush_IsTranslucent(const Brush *b)
{

	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsTranslucent", MB_OK);	//	post 0.55

	assert (b != NULL);

	return (b->Flags & BRUSH_TRANSLUCENT) ? GE_TRUE : GE_FALSE;
}

geBoolean	Brush_IsMulti(const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsMulti", MB_OK);	//	post 0.55

	assert (b != NULL);

	return (b->Type == BRUSH_MULTI) ? GE_TRUE : GE_FALSE;
}

geBoolean Brush_IsFlocking (const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsFlocking", MB_OK);	//	post 0.55

	assert (b != NULL);

	return (b->Flags & BRUSH_FLOCKING) ? GE_TRUE : GE_FALSE;
}

geBoolean Brush_IsSheet (const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_IsSheet", MB_OK);	//	post 0.55

	assert (b != NULL);

	return (b->Flags & BRUSH_SHEET) ? GE_TRUE : GE_FALSE;
}

static void Brush_SetExclusiveState (Brush *b, int Mask, geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetExclusiveState", MB_OK);	//	post 0.55

	if (bState)
	{
		b->Flags &= ~(BRUSH_SOLID | BRUSH_CLIP | BRUSH_WINDOW | BRUSH_HINT | BRUSH_SUBTRACT | BRUSH_EMPTY);
		b->Flags |= Mask;
	}
	else
	{
		b->Flags &= ~Mask;
	}
}

void	Brush_SetSolid(Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetSolid", MB_OK);	//	post 0.55

	assert(b != NULL);

	if(b->Type==BRUSH_MULTI)
	{
		BrushList_SetFlag(b->BList, bState, Brush_SetSolid);
	}

	Brush_SetExclusiveState (b, BRUSH_SOLID, bState);
}

void	Brush_SetWindow(Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetWindow", MB_OK);	//	post 0.55

	assert(b != NULL);
		
	if(b->Type==BRUSH_MULTI)
	{
		BrushList_SetFlag(b->BList, bState, Brush_SetWindow);
	}

	Brush_SetExclusiveState (b, BRUSH_WINDOW, bState);
}

void	Brush_SetWavy(Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetWavy", MB_OK);	//	post 0.55

	assert(b != NULL);
		
	if(b->Type==BRUSH_MULTI)
	{
		BrushList_SetFlag(b->BList, bState, Brush_SetWavy);
	}

	b->Flags	=(bState)? b->Flags|BRUSH_WAVY : b->Flags&~BRUSH_WAVY;
}

void	Brush_SetDetail(Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetDetail", MB_OK);	//	post 0.55

	assert(b != NULL);
		
	if(b->Type==BRUSH_MULTI)
	{
		BrushList_SetFlag(b->BList, bState, Brush_SetDetail);
	}

	b->Flags	=(bState)? b->Flags|BRUSH_DETAIL : b->Flags&~BRUSH_DETAIL;
}

void	Brush_SetSubtract(Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetSubtract", MB_OK);	//	post 0.55

	assert(b != NULL);

	if(b->Type==BRUSH_MULTI)
	{
		BrushList_SetFlag(b->BList, bState, Brush_SetSubtract);
	}

	if(b->Flags & BRUSH_HOLLOWCUT)
	{
		return;	//can't reset these
	}
	
	Brush_SetExclusiveState (b, BRUSH_SUBTRACT, bState);
}

void	Brush_SetClip(Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetClip", MB_OK);	//	post 0.55

	assert(b != NULL);

	if(b->Type==BRUSH_MULTI)
	{
		BrushList_SetFlag(b->BList, bState, Brush_SetClip);
	}
		
	Brush_SetExclusiveState (b, BRUSH_CLIP, bState);
}

void	Brush_SetHollow(Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetHollow", MB_OK);	//	post 0.55

	assert(b != NULL);
		
	if(b->Type==BRUSH_MULTI)
	{
		BrushList_SetFlag(b->BList, bState, Brush_SetHollow);
	}
	if(b->Flags & BRUSH_HOLLOWCUT)
	{
		return;	//can't reset these
	}

	b->Flags	=(bState)? b->Flags|BRUSH_HOLLOW : b->Flags&~BRUSH_HOLLOW;
}

void	Brush_SetHollowCut(Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetHollowCut", MB_OK);	//	post 0.55

	assert(b != NULL);
	assert(b->Type != BRUSH_MULTI);

	//should set both here... HOLLOWCUT is just a dialog helper		
	b->Flags	=(bState)? b->Flags|BRUSH_HOLLOWCUT : b->Flags&~BRUSH_HOLLOWCUT;
	b->Flags	=(bState)? b->Flags|BRUSH_SUBTRACT : b->Flags&~BRUSH_SUBTRACT;
}

void	Brush_SetFlocking (Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetFlocking", MB_OK);	//	post 0.55

	assert (b != NULL);

	b->Flags = (bState) ? b->Flags | BRUSH_FLOCKING : b->Flags & ~BRUSH_FLOCKING;
}

void	Brush_SetSheet (Brush *b, const geBoolean bState)
{
	int		i;
	Face	*f;

	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetSheet", MB_OK);	//	post 0.55

	assert (b != NULL);
	if(b->Type != BRUSH_MULTI)
	{
		b->Flags = (bState) ? b->Flags | BRUSH_SHEET : b->Flags & ~BRUSH_SHEET;

		f	=FaceList_GetFace(b->Faces, 0);
		Face_SetSheet(f, bState);

		for(i=1;i < FaceList_GetNumFaces(b->Faces);i++)
		{
			f	=FaceList_GetFace(b->Faces, i);
			Face_SetVisible(f, !bState);
		}
	}
}

void		Brush_SetUserFlags (Brush *b, unsigned long UserFlags)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetUserFlags", MB_OK);	//	post 0.55

	assert (b != NULL);

	// mask off the lower bits so they don't get modified
	b->Flags = (b->Flags & SYSTEM_FLAGS_MASK) | (UserFlags & USER_FLAGS_MASK);
}

unsigned long Brush_GetUserFlags (const Brush *b)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_GetUserFlags", MB_OK);	//	post 0.55

	assert (b != NULL);

	return (b->Flags & USER_FLAGS_MASK);
}

void	Brush_SetEmpty(Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetEmpty", MB_OK);	//	post 0.55

	assert(b != NULL);
		
	if(b->Type==BRUSH_MULTI)
	{
		BrushList_SetFlag(b->BList, bState, Brush_SetEmpty);
	}

	Brush_SetExclusiveState (b, BRUSH_EMPTY, bState);
}

void	Brush_SetHint(Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetHint", MB_OK);	//	post 0.55

	assert(b != NULL);
		
	if(b->Type==BRUSH_MULTI)
	{
		BrushList_SetFlag(b->BList, bState, Brush_SetHint);
	}

	Brush_SetExclusiveState (b, BRUSH_HINT, bState);
}

//opposite flag value here... should this affect children?
void	Brush_SetVisible(Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetVisible", MB_OK);	//	post 0.55

	assert(b != NULL);
		
	b->Flags	=(bState)? b->Flags&~BRUSH_HIDDEN : b->Flags|BRUSH_HIDDEN;
}

//should this affect child brushes?
void	Brush_SetLocked(Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetLocked", MB_OK);	//	post 0.55

	assert(b != NULL);
		
	b->Flags	=(bState)? b->Flags|BRUSH_LOCKED : b->Flags&~BRUSH_LOCKED;
}

void	Brush_SetArea(Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetArea", MB_OK);	//	post 0.55

	assert(b != NULL);
		
	if(b->Type==BRUSH_MULTI)
	{
		BrushList_SetFlag(b->BList, bState, Brush_SetArea);
	}

	b->Flags	=(bState)? b->Flags|BRUSH_AREA : b->Flags&~BRUSH_AREA;
}

void	Brush_SetTranslucent(Brush *b, const geBoolean bState)
{
	if (b == NULL)
		MessageBox(NULL, "Brush == NULL", "Brush_SetTranslucent", MB_OK);	//	post 0.55

	assert(b != NULL);
	
	if(b->Type==BRUSH_MULTI)
	{
		BrushList_SetFlag(b->BList, bState, Brush_SetTranslucent);
	}

	b->Flags	=(bState)? b->Flags|BRUSH_TRANSLUCENT : b->Flags&~BRUSH_TRANSLUCENT;
}

//brushes written to gbsplib should be convex
void Brush_WriteToMap(Brush const *b, FILE *ofile, geBoolean VisDetail)
{
	uint32 OutputFlags;

	assert(b != NULL);
	assert(b->Faces != NULL);
	assert(ofile);
	assert(!(b->Flags & BRUSH_HOLLOW));	//only send convex
	assert(!(b->Flags & BRUSH_SUBTRACT));	//only send convex

	// write flags

	// convert flags to output flags expected by GBSPLIB
	OutputFlags = 0;
	if (b->Flags & BRUSH_SOLID)			OutputFlags |= bfSolid;
	if (b->Flags & BRUSH_WINDOW)		OutputFlags |= bfWindow;
	if (b->Flags & BRUSH_WAVY)			OutputFlags |= bfWavy;
	if (b->Flags & BRUSH_DETAIL)		OutputFlags |= bfDetail;
	if (b->Flags & BRUSH_CLIP)			OutputFlags |= bfClip;
	if (b->Flags & BRUSH_HINT)			OutputFlags |= bfHint;
	if (b->Flags & BRUSH_AREA)			OutputFlags |= bfArea;
	if (b->Flags & BRUSH_FLOCKING)		OutputFlags |= bfFlocking;
//	if (b->Flags & BRUSH_TRANSLUCENT)	OutputFlags |= bfTranslucent;
	if (b->Flags & BRUSH_EMPTY)			OutputFlags |= bfEmpty;
	if (b->Flags & BRUSH_SHEET)			OutputFlags |= bfSheet;

	// and do the user flags
	OutputFlags |= (b->Flags & USER_FLAGS_MASK);

	if (VisDetail)
	{
		OutputFlags &= ~bfDetail;
	}

	TypeIO_WriteInt(ofile, OutputFlags);
	FaceList_WriteToMap(b->Faces, ofile);
}

geBoolean Brush_Write(const Brush *b, FILE *ofile)
{
	assert(ofile);
	assert(b);

	if (b->Type == BRUSH_CSG)
	{
		// CSG brushes aren't saved
		return GE_TRUE;
	}

	{
		// make sure we don't output a blank name
		char *Name;
		char QuotedValue[SCANNER_MAXDATA];

		Name = ((b->Name == NULL) || (*b->Name == '\0')) ? "NoName" : b->Name;
		// quote the brush name string...
		Util_QuoteString (Name, QuotedValue);
		if (fprintf (ofile, "Brush %s\n", QuotedValue) < 0) return GE_FALSE;
	}

	if (fprintf(ofile, "\tFlags %d\n",	b->Flags) < 0) return GE_FALSE;
	if (fprintf(ofile, "\tModelId %d\n",b->ModelId) < 0) return GE_FALSE;
	if (fprintf(ofile, "\tGroupId %d\n", b->GroupId) < 0) return GE_FALSE;
	{
		if (b->HullSize < 1.0f)
		{
			((Brush *)b)->HullSize = 1.0f;
		}
		if (fprintf(ofile, "\tHullSize %f\n", b->HullSize) < 0) return GE_FALSE;
	}
	if (fprintf(ofile, "\tType %d\n", b->Type) < 0) return GE_FALSE;

	switch (b->Type)
	{
		case	BRUSH_MULTI:
			return BrushList_Write (b->BList, ofile);

		case	BRUSH_LEAF:
			return FaceList_Write (b->Faces, ofile);

		default :
			assert (0);		// invalid brush type
			break;
	}
	return GE_TRUE;
}

Brush	*Brush_CreateFromFile
	(
	  Parse3dt *Parser, 
	  int VersionMajor, 
	  int VersionMinor, 
	  const char **Expected
	)
{
	FaceList	*fl;
	Brush		*b;
	int			tmpFlags, tmpModelId, tmpGroupId, tmpType, tmpTranslucency;
	geFloat		tmpHullSize;
	BrushList	*blist;
	char		szTemp[_MAX_PATH];

	assert (Parser != NULL);

	b	=NULL;

	if((VersionMajor > 1) || ((VersionMajor == 1) && (VersionMinor >= 24)))

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色妹子一区二区| 欧美不卡一区二区三区| 免费精品视频最新在线| 欧美国产一区二区在线观看 | 91福利精品第一导航| 国产美女精品在线| 亚洲成av人综合在线观看| 国产精品午夜久久| 精品久久人人做人人爽| 欧美色国产精品| 91亚洲精品久久久蜜桃| 国产精品99久久久久久宅男| 五月天国产精品| 亚洲自拍另类综合| 中文字幕视频一区二区三区久| 日韩午夜精品电影| 欧美卡1卡2卡| 色综合网站在线| 99精品一区二区| 成人黄色av网站在线| 国产一区二区福利视频| 日本午夜精品一区二区三区电影| 一区二区三区四区精品在线视频| 国产精品三级电影| 国产日韩欧美精品综合| 久久综合久久鬼色| 日韩欧美国产wwwww| 欧美日韩国产在线观看| 色婷婷综合久久久中文字幕| 99精品视频在线播放观看| 国产成人在线视频网站| 国产一级精品在线| 老司机免费视频一区二区| 天堂午夜影视日韩欧美一区二区| 夜夜夜精品看看| 亚洲精品美腿丝袜| 亚洲精品久久久蜜桃| 亚洲欧洲成人精品av97| 国产精品久久久久久久久久久免费看| 久久九九99视频| 久久久久国色av免费看影院| 久久久亚洲欧洲日产国码αv| 精品对白一区国产伦| 欧美电视剧免费观看| 日韩欧美国产一区二区在线播放 | 日韩免费电影一区| 日韩欧美成人激情| 欧美成人福利视频| 久久综合狠狠综合久久激情| 欧美一级久久久久久久大片| 精品三级在线看| 久久久三级国产网站| 国产亚洲欧美日韩俺去了| 国产亚洲一区二区在线观看| 国产精品欧美经典| 亚洲免费在线看| 亚洲成av人片在线观看| 日韩av午夜在线观看| 精品一区二区在线观看| 粉嫩aⅴ一区二区三区四区| eeuss鲁一区二区三区| 91国偷自产一区二区使用方法| 欧美无人高清视频在线观看| 91精品欧美一区二区三区综合在 | 日韩视频免费观看高清完整版在线观看 | 国产精品羞羞答答xxdd| av激情综合网| 欧美日韩视频在线第一区| 日韩美女视频在线| 国产精品麻豆视频| 亚洲国产日韩a在线播放性色| 日本一不卡视频| 高清成人免费视频| 欧美午夜在线观看| 精品人伦一区二区色婷婷| 中文字幕免费不卡| 亚洲一区在线观看网站| 麻豆91在线看| www.成人在线| 欧美一区日韩一区| 国产精品三级在线观看| 亚洲成人资源在线| 福利91精品一区二区三区| 在线观看亚洲a| 精品国产91乱码一区二区三区| 亚洲欧洲av另类| 麻豆国产欧美一区二区三区| 99re亚洲国产精品| 日韩一级黄色片| 亚洲欧美在线另类| 久久不见久久见免费视频1| 成人深夜视频在线观看| 欧美电影影音先锋| 亚洲丝袜美腿综合| 国产一本一道久久香蕉| 欧美日韩精品一区二区天天拍小说| 欧美精品一区二区在线观看| 亚洲精品国产无天堂网2021| 毛片一区二区三区| 欧美日韩中文国产| 一区免费观看视频| 国产主播一区二区三区| 欧美丰满少妇xxxbbb| 亚洲精品国产视频| 成人美女在线观看| 欧美精品一区二区三区蜜桃| 亚洲综合视频在线观看| av中文字幕在线不卡| 久久中文字幕电影| 欧美aaaaaa午夜精品| 欧美日韩国产综合草草| 亚洲黄色av一区| a4yy欧美一区二区三区| 国产免费久久精品| 国产麻豆午夜三级精品| 日韩一级完整毛片| 日本成人在线视频网站| 欧美日韩精品专区| 亚洲影视在线观看| 在线观看亚洲一区| 亚洲人成网站精品片在线观看| 国产高清成人在线| 精品国产乱码久久久久久免费| 日韩福利视频导航| 69堂国产成人免费视频| 午夜久久久久久| 欧美日韩三级视频| 日韩黄色免费电影| 欧美电影影音先锋| 日日摸夜夜添夜夜添精品视频 | 久久精品一级爱片| 韩国av一区二区| 久久久亚洲高清| 国产精品1区2区| 亚洲精品在线网站| 国产乱人伦偷精品视频免下载| 日韩欧美一区电影| 久久超级碰视频| 久久蜜桃香蕉精品一区二区三区| 狠狠色丁香久久婷婷综合_中| 久久综合九色综合欧美亚洲| 国产精品影视网| 亚洲国产成人私人影院tom| 成人h动漫精品| 一区二区三区视频在线看| 欧美中文字幕一二三区视频| 亚洲妇女屁股眼交7| 91精品在线一区二区| 精品一区二区三区免费毛片爱| 欧美大片在线观看| 国产精品一二三| 一区精品在线播放| 色94色欧美sute亚洲线路二| 亚洲一区日韩精品中文字幕| 91.com视频| 国产一区二区不卡| 中文字幕一区二区三区av| 99精品1区2区| 图片区小说区区亚洲影院| 日韩免费福利电影在线观看| 国产 日韩 欧美大片| 一区二区三区中文字幕精品精品| 欧美精品一二三四| 国产一区二区三区精品欧美日韩一区二区三区| 国产日韩av一区| 91玉足脚交白嫩脚丫在线播放| 亚洲国产日韩a在线播放性色| 欧美大片在线观看一区二区| 成人免费av网站| 五月天婷婷综合| 亚洲国产经典视频| 欧美色偷偷大香| 国产精品538一区二区在线| 成人免费小视频| 日韩一级片网站| 97se亚洲国产综合自在线不卡| 首页综合国产亚洲丝袜| 国产亚洲一区二区三区| 久久久久久久久伊人| 欧美伊人久久久久久久久影院| 精品亚洲aⅴ乱码一区二区三区| 国产精品久久久久永久免费观看| 欧美日韩成人综合| 高清不卡在线观看av| 偷拍日韩校园综合在线| 欧美激情一区不卡| 欧美一区二区三区四区五区 | 国产风韵犹存在线视精品| 一区二区三区.www| 久久免费偷拍视频| 欧美日韩成人在线| 99久精品国产| 国产在线一区二区综合免费视频| 一区二区三区日本| 国产蜜臀av在线一区二区三区| 欧美情侣在线播放| 色婷婷久久一区二区三区麻豆| 韩国三级电影一区二区| 三级在线观看一区二区| **欧美大码日韩|