コード例 #1
0
void SerializeStruct(FSsPart& Value, SsXmlIArchiver* ar)
{
	SSAR_DECLARE("name", Value.PartName);
	SSAR_DECLARE("arrayIndex", Value.ArrayIndex);
	SSAR_DECLARE("parentIndex", Value.ParentIndex);

	SSAR_DECLARE_ENUM("type", Value.Type);
	SSAR_DECLARE_ENUM("boundsType", Value.BoundsType);
	SSAR_DECLARE_ENUM("inheritType", Value.InheritType);
	SSAR_DECLARE_ENUM("alphaBlendType", Value.AlphaBlendType);
	SSAR_DECLARE("show", Value.Show);
	SSAR_DECLARE("locked", Value.Locked);
	SSAR_DECLARE("refAnimePack", Value.RefAnimePack);
	SSAR_DECLARE("refAnime", Value.RefAnime);

	//継承率後に改良を実施
	if (ar->getType() == EnumSsArchiver::in)
	{
		XMLElement* e = ar->getxml()->FirstChildElement("ineheritRates");
		if (e)
		{
			XMLElement* ec = e->FirstChildElement();
			while(ec)
			{
				const char* tag = ec->Value();
				TEnumAsByte<SsAttributeKind::Type> enumattr;

				__StringToEnum_( tag , enumattr );
				Value.InheritRates[(int)enumattr] = (float)atof(ec->GetText());
				ec = ec->NextSiblingElement();
			}
		}
	}
}
コード例 #2
0
//頂点カラーアニメデータの取得
void	GetSsColorValue( const SsKeyframe* key , SsColorAnime& v )
{
	SsColorBlendTarget::_enum target;
	__StringToEnum_( key->value["target"].get<SsString>() , target );
		SsBlendType::_enum blendtype;
	__StringToEnum_( key->value["blendType"].get<SsString>() , blendtype);

	v.blendType = blendtype;
	v.target = target;

	if ( target == SsColorBlendTarget::vertex )
	{
		SsHash lt = key->value["LT"].get<SsHash>();
		SsHash rt = key->value["RT"].get<SsHash>();
		SsHash lb = key->value["LB"].get<SsHash>();
		SsHash rb = key->value["RB"].get<SsHash>();

		ConvertStringToSsColor( lt["rgba"].get<SsString>() , v.colors[0].rgba);
		v.colors[0].rate = lt["rate"].get<float>();

		ConvertStringToSsColor( rt["rgba"].get<SsString>() , v.colors[2].rgba);
		v.colors[1].rate = rt["rate"].get<float>();

		ConvertStringToSsColor( lb["rgba"].get<SsString>() , v.colors[2].rgba);
		v.colors[2].rate = lb["rate"].get<float>();

		ConvertStringToSsColor( rb["rgba"].get<SsString>() , v.colors[3].rgba);
		v.colors[3].rate = rb["rate"].get<float>();

	}else{
		SsHash color = key->value["color"].get<SsHash>();
		ConvertStringToSsColor( color["rgba"].get<SsString>() , v.color.rgba);
		v.color.rate = color["rate"].get<float>();
	}

}