⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.cpp

📁 骨骼动画....把魔兽模型解出的代码..
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	Directory = Buffer;

	i = static_cast<INT>(Directory.rfind("\\"));
	if(i != std::string::npos)
	{
		Directory = Directory.substr(0, i);
	}

	return Directory;
}


//+-----------------------------------------------------------------------------
//| Returns the current directory
//+-----------------------------------------------------------------------------
std::string COMMON::GetCurrentDirectory() CONST
{
	CHAR Buffer[BUFFER_SIZE];

	if(::GetCurrentDirectory(BUFFER_SIZE - 1, Buffer) == 0) return "";

	return Buffer;
}


//+-----------------------------------------------------------------------------
//| Sets a new current directory
//+-----------------------------------------------------------------------------
VOID COMMON::SetCurrentDirectory(CONST std::string& NewDirectory) CONST
{
	::SetCurrentDirectory(NewDirectory.c_str());
}


//+-----------------------------------------------------------------------------
//| Checks if a character is a whitespace
//+-----------------------------------------------------------------------------
BOOL COMMON::IsWhiteSpace(CHAR Char) CONST
{
	if(Char == ' ')  return TRUE;
	if(Char == '\t') return TRUE;
	if(Char == '\n') return TRUE;
	if(Char == '\r') return TRUE;

	return FALSE;
}


//+-----------------------------------------------------------------------------
//| Checks if a character is a linebreak
//+-----------------------------------------------------------------------------
BOOL COMMON::IsLineBreak(CHAR Char) CONST
{
	if(Char == '\n') return TRUE;
	if(Char == '\r') return TRUE;

	return FALSE;
}


//+-----------------------------------------------------------------------------
//| Checks if a character is a digit
//+-----------------------------------------------------------------------------
BOOL COMMON::IsDigit(CHAR Char) CONST
{
	return (Char >= '0') && (Char <= '9');
}


//+-----------------------------------------------------------------------------
//| Checks if a character is a letter
//+-----------------------------------------------------------------------------
BOOL COMMON::IsLetter(CHAR Char) CONST
{
	if((Char >= 'a') && (Char <= 'z')) return TRUE;
	if((Char >= 'A') && (Char <= 'Z')) return TRUE;

	return FALSE;
}


//+-----------------------------------------------------------------------------
//| Checks if a character is an uppercase letter
//+-----------------------------------------------------------------------------
BOOL COMMON::IsLowerCaseLetter(CHAR Char) CONST
{
	return (Char >= 'a') && (Char <= 'z');
}


//+-----------------------------------------------------------------------------
//| Checks if a character is a lowercase letter
//+-----------------------------------------------------------------------------
BOOL COMMON::IsUpperCaseLetter(CHAR Char) CONST
{
	return (Char >= 'A') && (Char <= 'Z');
}


//+-----------------------------------------------------------------------------
//| Removes all preceeding and postceeding whitespace characters
//+-----------------------------------------------------------------------------
VOID COMMON::RemoveWhiteSpace(std::string& String) CONST
{
	while(String.size() > 0)
	{
		if(!IsWhiteSpace(String[0])) break;
		String.erase(0, 1);
	}

	while(String.size() > 0)
	{
		if(!IsWhiteSpace(String[String.size() - 1])) break;
		String.erase(String.size() - 1, 1);
	}
}


//+-----------------------------------------------------------------------------
//| Converts a string to a bool
//+-----------------------------------------------------------------------------
BOOL COMMON::StringToBool(CONST std::string& String) CONST
{
	return (LowerCase(String) == "true");
}


//+-----------------------------------------------------------------------------
//| Converts a string to an int
//+-----------------------------------------------------------------------------
INT COMMON::StringToInt(CONST std::string& String) CONST
{
	INT Int = 0;
	std::stringstream Stream(String);

	Stream >> Int;

	return Int;
}


//+-----------------------------------------------------------------------------
//| Converts a string to a float
//+-----------------------------------------------------------------------------
FLOAT COMMON::StringToFloat(CONST std::string& String) CONST
{
	FLOAT Float = 0.0f;
	std::stringstream Stream(String);

	Stream >> Float;

	return Float;
}


//+-----------------------------------------------------------------------------
//| Converts a string to a double
//+-----------------------------------------------------------------------------
DOUBLE COMMON::StringToDouble(CONST std::string& String) CONST
{
	DOUBLE Double = 0.0;
	std::stringstream Stream(String);

	Stream >> Double;

	return Double;
}


//+-----------------------------------------------------------------------------
//| Converts a bool to a string
//+-----------------------------------------------------------------------------
std::string COMMON::BoolToString(BOOL Bool) CONST
{
	return Bool ? "true" : "false";
}


//+-----------------------------------------------------------------------------
//| Converts an int to a string
//+-----------------------------------------------------------------------------
std::string COMMON::IntToString(INT Int) CONST
{
	std::stringstream Stream;

	Stream << Int;

	return Stream.str();
}


//+-----------------------------------------------------------------------------
//| Converts a float to a string
//+-----------------------------------------------------------------------------
std::string COMMON::FloatToString(FLOAT Float) CONST
{
	std::stringstream Stream;

	Stream << Float;

	return Stream.str();
}


//+-----------------------------------------------------------------------------
//| Converts a double to a string
//+-----------------------------------------------------------------------------
std::string COMMON::DoubleToString(DOUBLE Double) CONST
{
	std::stringstream Stream;

	Stream << Double;

	return Stream.str();
}


//+-----------------------------------------------------------------------------
//| Converts a color to a 3-dimensional vector
//+-----------------------------------------------------------------------------
D3DXVECTOR3 COMMON::ColorToVector3(D3DCOLOR Color)
{
	D3DXVECTOR3 Vector;
	D3DXCOLOR TempColor = Color;

	Vector.z = TempColor.r;
	Vector.y = TempColor.g;
	Vector.x = TempColor.b;

	return Vector;
}


//+-----------------------------------------------------------------------------
//| Converts a color to a 4-dimensional vector
//+-----------------------------------------------------------------------------
D3DXVECTOR4 COMMON::ColorToVector4(D3DCOLOR Color)
{
	D3DXVECTOR4 Vector;
	D3DXCOLOR TempColor = Color;

	Vector.z = TempColor.r;
	Vector.y = TempColor.g;
	Vector.x = TempColor.b;
	Vector.w = TempColor.a;

	return Vector;
}


//+-----------------------------------------------------------------------------
//| Converts a 3-dimensional vector toa  color
//+-----------------------------------------------------------------------------
D3DCOLOR COMMON::Vector3ToColor(CONST D3DXVECTOR3& Vector)
{
	return D3DCOLOR_COLORVALUE(Vector.z, Vector.y, Vector.x, 1.0f);
}


//+-----------------------------------------------------------------------------
//| Converts a 4-dimensional vector toa  color
//+-----------------------------------------------------------------------------
D3DCOLOR COMMON::Vector4ToColor(CONST D3DXVECTOR4& Vector)
{
	return D3DCOLOR_COLORVALUE(Vector.z, Vector.y, Vector.x, Vector.w);
}


//+-----------------------------------------------------------------------------
//| Returns a string version of the current date
//+-----------------------------------------------------------------------------
std::string COMMON::GetCurrentDate()
{
	INT Size;
	DWORD Locale;
	std::string Date;
	std::string Time;
	std::vector<CHAR> Buffer;

	Locale = MAKELCID(CURRENT_LANGUAGE, SORT_DEFAULT);

	Size = GetDateFormat(Locale, 0, NULL, STRING_DATE_FORMAT.c_str(), NULL, 0);
	Buffer.resize(Size + 1);

	GetDateFormat(Locale, 0, NULL, STRING_DATE_FORMAT.c_str(), &Buffer[0], Size);
	Buffer[Size] = '\0';
	Date = &Buffer[0];

	Size = GetTimeFormat(Locale, 0, NULL, STRING_TIME_FORMAT.c_str(), NULL, 0);
	Buffer.resize(Size + 1);

	GetTimeFormat(Locale, 0, NULL, STRING_TIME_FORMAT.c_str(), &Buffer[0], Size);
	Buffer[Size] = '\0';
	Time = &Buffer[0];

	return Date + " " + Time;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -