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

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

?? properties.cpp

?? 骨骼動畫....把魔獸模型解出的代碼..
?? CPP
字號:
//+-----------------------------------------------------------------------------
//| Included files
//+-----------------------------------------------------------------------------
#include "Properties.h"


//+-----------------------------------------------------------------------------
//| Global objects
//+-----------------------------------------------------------------------------
PROPERTIES Properties;


//+-----------------------------------------------------------------------------
//| Constructor
//+-----------------------------------------------------------------------------
PROPERTIES::PROPERTIES()
{
	ShadersIsAvailable = FALSE;
}


//+-----------------------------------------------------------------------------
//| Destructor
//+-----------------------------------------------------------------------------
PROPERTIES::~PROPERTIES()
{
	//Empty
}


//+-----------------------------------------------------------------------------
//| Saves the properties to a file
//+-----------------------------------------------------------------------------
BOOL PROPERTIES::SavePropertiesInfo(CONST std::string& FileName)
{
	std::ofstream File;
	std::string PropertiesFileName;

	PropertiesFileName = Common.GetProgramDirectory() + "\\" + FileName;

	File.open(PropertiesFileName.c_str(), std::ios::out);
	if(File.fail())
	{
		Error.SetMessage("Unable to save \"" + PropertiesFileName + "\"!");
		return FALSE;
	}

	File << "Background " << ColorToString(PropertiesInfo.Background) << "\n";
	File << "Ambient " << ColorToString(PropertiesInfo.Ambient) << "\n";
	File << "Diffuse " << ColorToString(PropertiesInfo.Diffuse) << "\n";
	File << "Specular " << ColorToString(PropertiesInfo.Specular) << "\n";
	File << "Power " << PropertiesInfo.Power << "\n";

	File << "FillMode " << FillModeToString(PropertiesInfo.FillMode) << "\n";

	File << "NearDistance " << PropertiesInfo.NearDistance << "\n";
	File << "FarDistance " << PropertiesInfo.FarDistance << "\n";

	File << "UseLighting " << BoolToString(PropertiesInfo.UseLighting) << "\n";
	File << "UseShaders " << BoolToString(PropertiesInfo.UseShaders) << "\n";
	File << "RelativeZoom " << BoolToString(PropertiesInfo.RelativeZoom) << "\n";
	File << "RelativeMove " << BoolToString(PropertiesInfo.RelativeMove) << "\n";
	File << "ClockwiseCulling " << BoolToString(PropertiesInfo.ClockwiseCulling) << "\n";
	File << "UseGroundTexture " << BoolToString(PropertiesInfo.UseGroundTexture) << "\n";

	File << "GroundTextureScale " << PropertiesInfo.GroundTextureScale << "\n";

	File << "ShowDebug " << BoolToString(PropertiesInfo.ShowDebug) << "\n";
	File << "ShowAxises " << BoolToString(PropertiesInfo.ShowAxises) << "\n";
	File << "ShowLights " << BoolToString(PropertiesInfo.ShowLights) << "\n";
	File << "ShowBones " << BoolToString(PropertiesInfo.ShowBones) << "\n";
	File << "ShowCameras " << BoolToString(PropertiesInfo.ShowCameras) << "\n";
	File << "ShowAttachments " << BoolToString(PropertiesInfo.ShowAttachments) << "\n";
	File << "ShowCollisionShapes " << BoolToString(PropertiesInfo.ShowCollisionShapes) << "\n";

	File << "BlpQuality " << PropertiesInfo.BlpQuality << "\n";

	File << "GroundTexture " << PropertiesInfo.GroundTexture << "\n";
	File << "ReplaceableTexture11 " << PropertiesInfo.ReplaceableTexture11 << "\n";
	File << "ReplaceableTexture31 " << PropertiesInfo.ReplaceableTexture31 << "\n";
	File << "ReplaceableTexture32 " << PropertiesInfo.ReplaceableTexture32 << "\n";
	File << "ReplaceableTexture33 " << PropertiesInfo.ReplaceableTexture33 << "\n";
	File << "ReplaceableTexture34 " << PropertiesInfo.ReplaceableTexture34 << "\n";
	File << "ReplaceableTexture35 " << PropertiesInfo.ReplaceableTexture35 << "\n";

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Loads the properties from a file
//+-----------------------------------------------------------------------------
BOOL PROPERTIES::LoadPropertiesInfo(CONST std::string& FileName)
{
	std::ifstream File;
	std::string Token;
	std::string PropertiesFileName;

	PropertiesInfo = PROPERTIES_INFO();
	PropertiesFileName = Common.GetProgramDirectory() + "\\" + FileName;

	File.open(PropertiesFileName.c_str(), std::ios::in);
	if(File.fail()) return TRUE;

	while(!File.eof())
	{
		Token = "";
		File >> Token;
		if(Token == "") break;

		if(Token == "Background")
		{
			LoadColor(File, PropertiesInfo.Background);
		}
		else if(Token == "Ambient")
		{
			LoadColor(File, PropertiesInfo.Ambient);
		}
		else if(Token == "Diffuse")
		{
			LoadColor(File, PropertiesInfo.Diffuse);
		}
		else if(Token == "Specular")
		{
			LoadColor(File, PropertiesInfo.Specular);
		}
		else if(Token == "Power")
		{
			File >> PropertiesInfo.Power;
		}
		else if(Token == "FillMode")
		{
			LoadFillMode(File, PropertiesInfo.FillMode);
		}
		else if(Token == "NearDistance")
		{
			File >> PropertiesInfo.NearDistance;
		}
		else if(Token == "FarDistance")
		{
			File >> PropertiesInfo.FarDistance;
		}
		else if(Token == "UseLighting")
		{
			LoadBool(File, PropertiesInfo.UseLighting);
		}
		else if(Token == "UseShaders")
		{
			LoadBool(File, PropertiesInfo.UseShaders);
		}
		else if(Token == "RelativeZoom")
		{
			LoadBool(File, PropertiesInfo.RelativeZoom);
		}
		else if(Token == "RelativeMove")
		{
			LoadBool(File, PropertiesInfo.RelativeMove);
		}
		else if(Token == "ClockwiseCulling")
		{
			LoadBool(File, PropertiesInfo.ClockwiseCulling);
		}
		else if(Token == "UseGroundTexture")
		{
			LoadBool(File, PropertiesInfo.UseGroundTexture);
		}
		else if(Token == "GroundTextureScale")
		{
			File >> PropertiesInfo.GroundTextureScale;
		}
		else if(Token == "ShowDebug")
		{
			LoadBool(File, PropertiesInfo.ShowDebug);
		}
		else if(Token == "ShowAxises")
		{
			LoadBool(File, PropertiesInfo.ShowAxises);
		}
		else if(Token == "ShowLights")
		{
			LoadBool(File, PropertiesInfo.ShowLights);
		}
		else if(Token == "ShowBones")
		{
			LoadBool(File, PropertiesInfo.ShowBones);
		}
		else if(Token == "ShowCameras")
		{
			LoadBool(File, PropertiesInfo.ShowCameras);
		}
		else if(Token == "ShowAttachments")
		{
			LoadBool(File, PropertiesInfo.ShowAttachments);
		}
		else if(Token == "ShowCollisionShapes")
		{
			LoadBool(File, PropertiesInfo.ShowCollisionShapes);
		}
		else if(Token == "BlpQuality")
		{
			File >> PropertiesInfo.BlpQuality;
		}
		else if(Token == "GroundTexture")
		{
			std::getline(File, PropertiesInfo.GroundTexture);
			Common.RemoveWhiteSpace(PropertiesInfo.GroundTexture);
		}
		else if(Token == "ReplaceableTexture11")
		{
			std::getline(File, PropertiesInfo.ReplaceableTexture11);
			Common.RemoveWhiteSpace(PropertiesInfo.ReplaceableTexture11);
		}
		else if(Token == "ReplaceableTexture31")
		{
			std::getline(File, PropertiesInfo.ReplaceableTexture31);
			Common.RemoveWhiteSpace(PropertiesInfo.ReplaceableTexture31);
		}
		else if(Token == "ReplaceableTexture32")
		{
			std::getline(File, PropertiesInfo.ReplaceableTexture32);
			Common.RemoveWhiteSpace(PropertiesInfo.ReplaceableTexture32);
		}
		else if(Token == "ReplaceableTexture33")
		{
			std::getline(File, PropertiesInfo.ReplaceableTexture33);
			Common.RemoveWhiteSpace(PropertiesInfo.ReplaceableTexture33);
		}
		else if(Token == "ReplaceableTexture34")
		{
			std::getline(File, PropertiesInfo.ReplaceableTexture34);
			Common.RemoveWhiteSpace(PropertiesInfo.ReplaceableTexture34);
		}
		else if(Token == "ReplaceableTexture35")
		{
			std::getline(File, PropertiesInfo.ReplaceableTexture35);
			Common.RemoveWhiteSpace(PropertiesInfo.ReplaceableTexture35);
		}
		else
		{
			Error.SetMessage("Unknown token \"" + Token + "\" in \"" + PropertiesFileName + "\"!");
			return FALSE;
		}
	}

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Sets a new properties info
//+-----------------------------------------------------------------------------
VOID PROPERTIES::SetPropertiesInfo(CONST PROPERTIES_INFO& NewPropertiesInfo)
{
	PropertiesInfo = NewPropertiesInfo;
}


//+-----------------------------------------------------------------------------
//| Returns the current properties info
//+-----------------------------------------------------------------------------
PROPERTIES_INFO PROPERTIES::GetPropertiesInfo() CONST
{
	return PropertiesInfo;
}


//+-----------------------------------------------------------------------------
//| Returns the current properties info as a reference
//+-----------------------------------------------------------------------------
CONST PROPERTIES_INFO& PROPERTIES::operator ()()
{
	return PropertiesInfo;
}


//+-----------------------------------------------------------------------------
//| Checks if shaders are available
//+-----------------------------------------------------------------------------
BOOL PROPERTIES::ShadersAvailable()
{
	return ShadersIsAvailable;
}


//+-----------------------------------------------------------------------------
//| Makes the shaders available or not
//+-----------------------------------------------------------------------------
VOID PROPERTIES::MakeShadersAvailable(BOOL Available)
{
	ShadersIsAvailable = Available;

	if(!ShadersIsAvailable) PropertiesInfo.UseShaders = FALSE;
}


//+-----------------------------------------------------------------------------
//| Converts a boolean to a string
//+-----------------------------------------------------------------------------
std::string PROPERTIES::BoolToString(BOOL Bool) CONST
{
	return Bool ? "True" : "False";
}


//+-----------------------------------------------------------------------------
//| Converts a color to a string
//+-----------------------------------------------------------------------------
std::string PROPERTIES::ColorToString(CONST D3DCOLOR& Color) CONST
{
	std::stringstream Stream;

	Stream << static_cast<INT>(GetBValue(Color));
	Stream << " ";
	Stream << static_cast<INT>(GetGValue(Color));
	Stream << " ";
	Stream << static_cast<INT>(GetRValue(Color));

	return Stream.str();
}


//+-----------------------------------------------------------------------------
//| Converts a fill mode to a string
//+-----------------------------------------------------------------------------
std::string PROPERTIES::FillModeToString(DWORD FillMode) CONST
{
	switch(FillMode)
	{
		case D3DFILL_POINT:
		{
			return "Point";
		}

		case D3DFILL_WIREFRAME:
		{
			return "Wireframe";
		}

		default:
		{
			return "Solid";
		}
	}
}


//+-----------------------------------------------------------------------------
//| Loads a boolean
//+-----------------------------------------------------------------------------
VOID PROPERTIES::LoadBool(std::ifstream& File, BOOL& Bool) CONST
{
	std::string String;

	File >> String;

	Bool = (Common.LowerCase(String) == "true");
}


//+-----------------------------------------------------------------------------
//| Loads a color
//+-----------------------------------------------------------------------------
VOID PROPERTIES::LoadColor(std::ifstream& File, D3DCOLOR& Color) CONST
{
	INT R = 0;
	INT G = 0;
	INT B = 0;

	File >> R >> G >> B;

	Color = D3DCOLOR_ARGB(0, R, G, B);
}


//+-----------------------------------------------------------------------------
//| Loads a fill mode
//+-----------------------------------------------------------------------------
VOID PROPERTIES::LoadFillMode(std::ifstream& File, DWORD& FillMode) CONST
{
	std::string String;

	File >> String;

	if(String == "Point")
	{
		FillMode = D3DFILL_POINT;
	}
	else if(String == "Wireframe")
	{
		FillMode = D3DFILL_WIREFRAME;
	}
	else
	{
		FillMode = D3DFILL_SOLID;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情国产一区二区| 欧美一级理论片| 久久99精品久久久久久| 一区二区三区精品视频在线| 国产精品福利一区二区三区| 国产亚洲欧洲997久久综合| 日韩欧美亚洲国产精品字幕久久久| 欧美综合久久久| 欧美午夜寂寞影院| 91精品国产综合久久久蜜臀图片| 在线电影国产精品| 日韩美女视频一区二区在线观看| 欧美一区二区高清| 精品蜜桃在线看| 国产亚洲精久久久久久| 欧美国产精品一区| 亚洲男同性视频| 五月天网站亚洲| 蜜臀久久久99精品久久久久久| 久久国产剧场电影| 成人综合在线观看| 色先锋久久av资源部| 91久久久免费一区二区| 欧美日韩国产一二三| 欧美mv日韩mv国产| 国产精品不卡一区二区三区| 一区二区三区国产豹纹内裤在线| 午夜视频在线观看一区| 美女网站在线免费欧美精品| 国产精品资源站在线| 91亚洲国产成人精品一区二三| 欧美日韩高清一区二区三区| 精品免费视频.| 美女性感视频久久| 91精品国产一区二区| 精品国产一区二区三区四区四| 日韩av中文字幕一区二区| 国模一区二区三区白浆| 欧美综合亚洲图片综合区| 精品乱码亚洲一区二区不卡| 欧美激情一区在线观看| 亚洲一二三级电影| 免费成人美女在线观看.| 美女视频一区二区三区| 国产中文字幕精品| 99久久久久免费精品国产 | 韩国中文字幕2020精品| 麻豆精品国产传媒mv男同| 六月丁香婷婷色狠狠久久| 国产成人精品1024| 欧美在线三级电影| 久久亚洲欧美国产精品乐播 | 亚洲一区二区三区四区五区黄 | 亚洲一区二区三区爽爽爽爽爽| 日韩理论片网站| 亚洲一区二区三区中文字幕在线| 日韩成人免费在线| 国产sm精品调教视频网站| av中文字幕一区| 精品国产免费人成电影在线观看四季| 91蝌蚪porny成人天涯| 久久精品国产久精国产爱| 亚洲人成网站精品片在线观看| 一区二区三区在线观看欧美| 一区二区三区在线免费观看| 五月天欧美精品| 91在线视频观看| 精品国产123| 五月天亚洲精品| 91看片淫黄大片一级在线观看| 欧美一级搡bbbb搡bbbb| 国产精品对白交换视频| 久久91精品国产91久久小草| 日本韩国一区二区三区视频| 精品久久99ma| 天天av天天翘天天综合网| 毛片av一区二区三区| 欧美挠脚心视频网站| 国产精品私房写真福利视频| 日韩国产精品久久| 91在线观看污| 中文字幕欧美日韩一区| 免播放器亚洲一区| 欧美日韩精品一区二区三区| 亚洲四区在线观看| 东方aⅴ免费观看久久av| 日韩欧美国产系列| 日韩国产精品91| 欧美高清dvd| 午夜精品久久久久影视| 99视频一区二区三区| 国产亚洲婷婷免费| 国产麻豆精品在线| 亚洲欧美激情小说另类| 国产精品资源网| 国产午夜久久久久| 国产成人综合网站| 国产精品午夜春色av| 国产剧情一区在线| 欧美电影在线免费观看| 美女任你摸久久| 欧美哺乳videos| 精品一区二区三区在线播放视频| 日韩三级伦理片妻子的秘密按摩| 香蕉久久夜色精品国产使用方法| 色综合久久久久久久久久久| 国产精品成人一区二区艾草 | 精品国产电影一区二区| 天堂在线一区二区| 欧美电影免费观看高清完整版在线| 日韩av中文字幕一区二区三区| 日韩一本二本av| 久久激情综合网| 久久精品一区四区| 国产高清无密码一区二区三区| 国产性色一区二区| 成人国产精品视频| 亚洲免费资源在线播放| 色天天综合色天天久久| 亚洲午夜久久久久久久久电影院| 欧美日韩成人一区二区| 亚洲最快最全在线视频| 7777精品伊人久久久大香线蕉最新版| 美腿丝袜亚洲综合| 国产欧美一区二区三区沐欲| 久久99这里只有精品| 久久精品这里都是精品| 色综合中文字幕| 日韩精品国产精品| 日韩午夜激情视频| 97se狠狠狠综合亚洲狠狠| 亚洲国产精品视频| 久久女同精品一区二区| 成人高清在线视频| 午夜在线成人av| 久久久久久久久99精品| 色婷婷精品久久二区二区蜜臀av | 亚洲午夜精品在线| 精品国产乱码久久| 欧美日本在线观看| 国产麻豆精品视频| 亚洲成人午夜电影| 欧美—级在线免费片| 99久久99久久精品免费看蜜桃| 黄网站免费久久| 亚洲图片欧美综合| 国产精品五月天| 精品久久久久久久人人人人传媒 | 亚洲国产成人av| 国产欧美日韩中文久久| 欧美日产国产精品| 91色porny| 国产成人在线观看免费网站| 亚洲成人免费视| 亚洲精品成人a在线观看| 欧美videos大乳护士334| 99r国产精品| 99国产精品国产精品毛片| 精品一区免费av| 五月婷婷综合激情| 亚洲精品日韩专区silk| 久久婷婷成人综合色| 欧美精三区欧美精三区| 99久精品国产| 99re66热这里只有精品3直播| 国产老妇另类xxxxx| 一区二区三区国产豹纹内裤在线| 国产精品理伦片| 久久九九久久九九| 国产调教视频一区| www久久久久| 久久夜色精品国产噜噜av| 欧美日韩一区二区三区高清| 色婷婷综合久久久久中文一区二区| 播五月开心婷婷综合| 成人网页在线观看| 狠狠狠色丁香婷婷综合激情| 国产一区二区三区在线观看精品| 美洲天堂一区二卡三卡四卡视频| 天天色天天爱天天射综合| 国产精品二三区| 亚洲综合一二区| 亚洲成人先锋电影| 人人精品人人爱| 国产一区中文字幕| 国产精品一区一区三区| 韩国中文字幕2020精品| 国产成人午夜电影网| 精品亚洲国产成人av制服丝袜| 国产成人精品aa毛片| www.亚洲免费av| 欧美性生活一区| 7777精品伊人久久久大香线蕉完整版| 欧美一区二区三区系列电影| 欧美一级久久久| 中文字幕欧美三区| 亚洲一区二区三区美女| 亚洲免费色视频| 天天av天天翘天天综合网色鬼国产| 美腿丝袜在线亚洲一区|