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

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

?? tokeninstream.cpp

?? 骨骼動(dòng)畫....把魔獸模型解出的代碼..
?? CPP
字號(hào):
//+-----------------------------------------------------------------------------
//| Included files
//+-----------------------------------------------------------------------------
#include "TokenInStream.h"


//+-----------------------------------------------------------------------------
//| Constructor
//+-----------------------------------------------------------------------------
TOKEN_IN_STREAM::TOKEN_IN_STREAM()
{
	FileName = "";
	Group = "";
}


//+-----------------------------------------------------------------------------
//| Destructor
//+-----------------------------------------------------------------------------
TOKEN_IN_STREAM::~TOKEN_IN_STREAM()
{
	Clear();
}


//+-----------------------------------------------------------------------------
//| Sets a new filename
//+-----------------------------------------------------------------------------
VOID TOKEN_IN_STREAM::SetFileName(CONST std::string& NewFileName)
{
	FileName = NewFileName;
}


//+-----------------------------------------------------------------------------
//| Returns the filename
//+-----------------------------------------------------------------------------
std::string TOKEN_IN_STREAM::GetFileName()
{
	return FileName;
}


//+-----------------------------------------------------------------------------
//| Sets a new group
//+-----------------------------------------------------------------------------
VOID TOKEN_IN_STREAM::SetGroup(CONST std::string& NewGroup)
{
	Group = NewGroup;
}


//+-----------------------------------------------------------------------------
//| Returns the group
//+-----------------------------------------------------------------------------
std::string TOKEN_IN_STREAM::GetGroup()
{
	return Group;
}


//+-----------------------------------------------------------------------------
//| Clears the token stream
//+-----------------------------------------------------------------------------
VOID TOKEN_IN_STREAM::Clear()
{
	Stream.str("");
	Stream.clear();
}


//+-----------------------------------------------------------------------------
//| Loads a file
//+-----------------------------------------------------------------------------
BOOL TOKEN_IN_STREAM::Load(BUFFER& Buffer)
{
	Clear();

	Stream.str(reinterpret_cast<CHAR*>(Buffer.GetData()));

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Loads a string
//+-----------------------------------------------------------------------------
BOOL TOKEN_IN_STREAM::Load(CONST std::string& String)
{
	Clear();

	Stream.str(String);

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Checks if end-of-file has been reached
//+-----------------------------------------------------------------------------
BOOL TOKEN_IN_STREAM::Eof() CONST
{
	return Stream.eof();
}


//+-----------------------------------------------------------------------------
//| Reads a boolean
//+-----------------------------------------------------------------------------
BOOL TOKEN_IN_STREAM::ReadBool()
{
	std::string String;

	Stream >> String;

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


//+-----------------------------------------------------------------------------
//| Reads a character
//+-----------------------------------------------------------------------------
CHAR TOKEN_IN_STREAM::ReadChar()
{
	CHAR Char;
	std::string TempString;

	while(!Stream.eof())
	{
		Char = ' ';
		Stream >> Char;

		if(Char != '/') return Char;
		if(Stream.peek() != '/') return Char;

		std::getline(Stream, TempString);
	}

	return ' ';
}


//+-----------------------------------------------------------------------------
//| Reads an integer
//+-----------------------------------------------------------------------------
INT TOKEN_IN_STREAM::ReadInt()
{
	INT Int = 0;

	Stream >> Int;

	return Int;
}


//+-----------------------------------------------------------------------------
//| Reads a floating point number
//+-----------------------------------------------------------------------------
FLOAT TOKEN_IN_STREAM::ReadFloat()
{
	FLOAT Float = 0.0f;

	Stream >> Float;

	return Float;
}


//+-----------------------------------------------------------------------------
//| Reads a double precision floating point number
//+-----------------------------------------------------------------------------
DOUBLE TOKEN_IN_STREAM::ReadDouble()
{
	DOUBLE Double = 0.0;

	Stream >> Double;

	return Double;
}


//+-----------------------------------------------------------------------------
//| Reads a single word
//+-----------------------------------------------------------------------------
std::string TOKEN_IN_STREAM::ReadWord()
{
	std::string Word;

	while(!Stream.eof())
	{
		Word = "";
		Stream >> Word;

		if(!IsComment(Word)) return Word;

		std::getline(Stream, Word);
	}

	return "";
}


//+-----------------------------------------------------------------------------
//| Reads a whole line
//+-----------------------------------------------------------------------------
std::string TOKEN_IN_STREAM::ReadLine()
{
	std::string Line;

	while(!Stream.eof())
	{
		Line = "";
		std::getline(Stream, Line);
		Common.RemoveWhiteSpace(Line);

		if(!IsComment(Line)) return Line;
	}

	return "";
}


//+-----------------------------------------------------------------------------
//| Reads a string
//+-----------------------------------------------------------------------------
std::string TOKEN_IN_STREAM::ReadString()
{
	CHAR TempChar;
	std::string TempString = "";

	Stream >> TempChar;
	if(TempChar != '\"') return "";

	TempChar = Stream.get();
	while(!Stream.eof())
	{
		if(TempChar == '\"') return TempString;

		TempString += TempChar;
		TempChar = Stream.get();
	}

	return "";
}


//+-----------------------------------------------------------------------------
//| Reads a 2-dimensional vector
//+-----------------------------------------------------------------------------
BOOL TOKEN_IN_STREAM::ReadVector2(D3DXVECTOR2& Vector)
{
	if(!ExpectChar('{')) return FALSE;
	Stream >> Vector.x;
	if(!ExpectChar(',')) return FALSE;
	Stream >> Vector.y;
	if(!ExpectChar('}')) return FALSE;

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Reads a 3-dimensional vector
//+-----------------------------------------------------------------------------
BOOL TOKEN_IN_STREAM::ReadVector3(D3DXVECTOR3& Vector)
{
	if(!ExpectChar('{')) return FALSE;
	Stream >> Vector.x;
	if(!ExpectChar(',')) return FALSE;
	Stream >> Vector.y;
	if(!ExpectChar(',')) return FALSE;
	Stream >> Vector.z;
	if(!ExpectChar('}')) return FALSE;

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Reads a 4-dimensional vector
//+-----------------------------------------------------------------------------
BOOL TOKEN_IN_STREAM::ReadVector4(D3DXVECTOR4& Vector)
{
	if(!ExpectChar('{')) return FALSE;
	Stream >> Vector.x;
	if(!ExpectChar(',')) return FALSE;
	Stream >> Vector.y;
	if(!ExpectChar(',')) return FALSE;
	Stream >> Vector.z;
	if(!ExpectChar(',')) return FALSE;
	Stream >> Vector.w;
	if(!ExpectChar('}')) return FALSE;

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Reads a 2-dimensional vector
//+-----------------------------------------------------------------------------
BOOL TOKEN_IN_STREAM::ReadVector2(D3DXVECTOR4& Vector)
{
	if(!ExpectChar('{')) return FALSE;
	Stream >> Vector.x;
	if(!ExpectChar(',')) return FALSE;
	Stream >> Vector.y;
	if(!ExpectChar('}')) return FALSE;
	Vector.z = 0.0f;
	Vector.w = 0.0f;

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Reads a 3-dimensional vector
//+-----------------------------------------------------------------------------
BOOL TOKEN_IN_STREAM::ReadVector3(D3DXVECTOR4& Vector)
{
	if(!ExpectChar('{')) return FALSE;
	Stream >> Vector.x;
	if(!ExpectChar(',')) return FALSE;
	Stream >> Vector.y;
	if(!ExpectChar(',')) return FALSE;
	Stream >> Vector.z;
	if(!ExpectChar('}')) return FALSE;
	Vector.w = 0.0f;

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Expects a certain character
//+-----------------------------------------------------------------------------
BOOL TOKEN_IN_STREAM::ExpectChar(CHAR Char)
{
	CHAR TempChar;

	TempChar = ReadChar();
	if(TempChar == Char) return TRUE;

	Error.SetMessage(std::string("Expected \"") + Char + "\", got \"" + TempChar + "\" in group \"" + Group + "\" in \"" + FileName + "\"!");
	return FALSE;
}


//+-----------------------------------------------------------------------------
//| Expects a certain word
//+-----------------------------------------------------------------------------
BOOL TOKEN_IN_STREAM::ExpectWord(CONST std::string& Word)
{
	std::string TempWord;

	TempWord = ReadWord();
	if(TempWord == Word) return TRUE;

	Error.SetMessage("Expected \"" + Word + "\", got \"" + TempWord + "\" in group \"" + Group + "\" in \"" + FileName + "\"!");
	return FALSE;
}


//+-----------------------------------------------------------------------------
//| Checks if a string is a comment
//+-----------------------------------------------------------------------------
BOOL TOKEN_IN_STREAM::IsComment(std::string String)
{
	Common.RemoveWhiteSpace(String);

	if(String.size() < 2) return FALSE;
	if(String[0] != '/')  return FALSE;
	if(String[1] != '/')  return FALSE;

	return TRUE;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色噜噜狠狠色综合欧洲selulu| 在线日韩国产精品| 精品在线一区二区| 美女看a上一区| 日韩一区精品视频| 喷水一区二区三区| 久久超级碰视频| 国产麻豆9l精品三级站| 国产成人午夜片在线观看高清观看| 国产精品亚洲第一| 国产精品白丝jk白祙喷水网站| 国产精一区二区三区| 国产东北露脸精品视频| 成人一级片在线观看| 97国产精品videossex| 在线亚洲高清视频| 3atv在线一区二区三区| 日韩欧美中文字幕一区| 精品国产免费一区二区三区香蕉 | 一区二区成人在线视频 | 国产成人av一区| 不卡的av电影| 欧洲精品在线观看| 欧美日韩国产高清一区二区三区| 欧美一级在线视频| 欧美mv日韩mv国产网站app| 久久精品免视看| 亚洲男帅同性gay1069| 亚洲综合成人网| 麻豆中文一区二区| 成人精品视频一区| 欧美无砖砖区免费| 精品久久五月天| 综合久久国产九一剧情麻豆| 亚洲第一激情av| 精品一区二区三区不卡| 成人免费视频一区二区| 欧美三区免费完整视频在线观看| 欧美大片在线观看一区| 国产精品久久影院| 日韩成人伦理电影在线观看| 丁香天五香天堂综合| 欧美日韩在线播| 久久综合久久鬼色中文字| 国产精品国产精品国产专区不片| 午夜欧美在线一二页| 丁香天五香天堂综合| 欧美欧美午夜aⅴ在线观看| 欧美高清在线一区二区| 五月激情综合网| 成人激情免费网站| 欧美一区二区三区的| 亚洲色图在线播放| 毛片av一区二区| 欧美中文字幕久久| 久久久久久**毛片大全| 亚洲一级二级三级| 国产成人在线观看| 日韩一区和二区| 一区二区三区四区蜜桃| 国产一区激情在线| 欧美日韩日本视频| 亚洲色图清纯唯美| 国产激情视频一区二区在线观看| 欧美日韩亚洲高清一区二区| 国产精品成人网| 久久国产精品99精品国产| 精品视频一区二区不卡| 国产精品视频九色porn| 蜜桃视频第一区免费观看| 在线视频一区二区免费| 国产精品久久久久久久久快鸭| 精品在线播放免费| 欧美日韩在线观看一区二区| 亚洲天堂久久久久久久| 国产精品一区二区久激情瑜伽| 6080yy午夜一二三区久久| 日韩伦理免费电影| 丰满少妇久久久久久久| 成人免费看视频| 欧美一区二区性放荡片| 中文字幕亚洲在| 成人午夜私人影院| 国产欧美日韩激情| 在线免费av一区| 亚洲视频在线观看一区| 99久久国产综合色|国产精品| 亚洲少妇最新在线视频| 成人午夜碰碰视频| 国产欧美精品区一区二区三区| 国产一区美女在线| 久久天天做天天爱综合色| 国产一区二区主播在线| 欧美精品一区视频| 国产精品 欧美精品| 国产精品女同一区二区三区| 成人动漫一区二区在线| 日韩中文字幕一区二区三区| 欧美日韩精品一区二区三区四区| 久久99国产精品久久99果冻传媒 | 国产精品午夜在线观看| 极品少妇一区二区| 国产亚洲欧美在线| 欧美亚洲国产一卡| 91精品国模一区二区三区| 久久久久亚洲综合| 成人18精品视频| 国产精品色噜噜| av动漫一区二区| 亚洲男同1069视频| 色一情一乱一乱一91av| 亚洲午夜激情av| 欧美浪妇xxxx高跟鞋交| 日本成人在线电影网| 日韩精品专区在线| 国内精品久久久久影院色| 久久先锋资源网| 国产91精品一区二区麻豆网站| 中文字幕欧美国产| 91丨porny丨蝌蚪视频| 一区二区视频免费在线观看| 欧美午夜精品久久久| 日本中文字幕一区二区视频| 精品国产一区二区三区不卡| 国产一区啦啦啦在线观看| 欧美激情一区二区三区四区| aaa亚洲精品| 亚洲高清视频在线| 日韩女优av电影| 岛国精品一区二区| 亚洲美女淫视频| 日韩一级免费一区| 国产不卡高清在线观看视频| 亚洲素人一区二区| 欧美电影在线免费观看| 国产精品夜夜爽| 亚洲视频每日更新| 91精品国产乱码久久蜜臀| 国产馆精品极品| 一区二区三区在线影院| 日韩精品一区二区三区视频播放| 国产成人久久精品77777最新版本| 一区二区三区四区在线播放 | 欧美亚洲日本一区| 久久精品国产久精国产| 亚洲国产高清aⅴ视频| 在线看国产日韩| 国产综合一区二区| 亚洲男同1069视频| 精品国产伦一区二区三区观看体验 | 夜夜嗨av一区二区三区| 国产精品高潮呻吟| 亚洲综合在线第一页| 综合激情网...| 亚洲成人777| 福利电影一区二区三区| 国产香蕉久久精品综合网| 色呦呦国产精品| 国产另类ts人妖一区二区| 亚洲精品日韩一| 91一区二区在线| 精品国产三级a在线观看| 国产亚洲精品中文字幕| 亚洲欧美日韩人成在线播放| 国内成人免费视频| 久久国产成人午夜av影院| av网站免费线看精品| 欧美日韩在线亚洲一区蜜芽| 成人欧美一区二区三区视频网页| 欧美色视频在线观看| 国产一区二区三区电影在线观看| 中文在线一区二区| 91精品国产综合久久久久| caoporen国产精品视频| 精品一区二区三区在线播放视频| 夜夜精品浪潮av一区二区三区 | 成人欧美一区二区三区黑人麻豆 | 洋洋成人永久网站入口| 欧美激情一区二区三区蜜桃视频| 日韩一级高清毛片| 欧美在线播放高清精品| 99热国产精品| 国产福利91精品| 麻豆久久一区二区| 亚洲va韩国va欧美va精品| 亚洲欧美综合在线精品| 久久青草国产手机看片福利盒子| 91精品国产高清一区二区三区| 91国内精品野花午夜精品| 97久久人人超碰| 高清日韩电视剧大全免费| 另类的小说在线视频另类成人小视频在线 | 久久人人爽人人爽| 欧美tk丨vk视频| 欧美一区二区在线播放| 欧美高清激情brazzers| 欧美日韩在线不卡| 欧美三级三级三级| 欧美日韩一区二区在线视频| 色狠狠综合天天综合综合|