bool SegmentedSkeletonCombiner::ParseConfiguration(clientInfo_t* ci, const char* token, const char** data_p)
{
	if (Q_stricmp(token, "legBones"))
	{
		return false;
	}
	token = COM_Parse2(data_p);
	if (!token || token[0] != '{')
	{
		Log::Notice("^1ERROR^*: Expected '{' but found '%s' in character.cfg\n", token);
		return false;
	}

	while (1)
	{
		token = COM_Parse2(data_p);
		if (!token || token[0] == '}') {
			return true;
		}

		int bone = BoneLookup(ci, token);
		if (bone >= 0) {
			legBoneIndices.push_back(bone);
		}
	}
}
bool BsuitSkeletonRotations::ParseConfiguration(clientInfo_t* ci, const char* token, const char** data_p)
{
	if (!Q_stricmp(token, "torsoControlBone")) {
		torsoControlBone = BoneLookup(ci, COM_Parse2(data_p));
		return true;
	}
	if (!Q_stricmp(token, "leftShoulder")) {
		leftShoulderBone = BoneLookup(ci, COM_Parse2(data_p));
		return true;
	}
	if (!Q_stricmp(token, "rightShoulder")) {
		rightShoulderBone = BoneLookup(ci, COM_Parse2(data_p));
		return true;
	}
	return false;
}
Esempio n. 3
0
bool AnimDelta::ParseConfiguration(clientInfo_t* ci, const char* token2, const char** data_p)
{
	if ( Q_stricmp( token2, "handBones" ) ) return false;
	char* token = COM_Parse2( data_p );
	if ( !token || token[0] != '{' )
	{
		Log::Notice( "^1ERROR^7: Expected '{' but found '%s' in %s's character.cfg", token, ci->modelName );
		return false;
	}
	while ( 1 )
	{
		token = COM_Parse( data_p );
		if ( !token || token[0] == '}' ) break;
		int index = trap_R_BoneIndex( ci->bodyModel, token );
		if ( index < 0 )
		{
			Log::Warn("AnimDelta: Error finding bone '%s' in %s", token, ci->modelName );
		}
		boneIndicies_.push_back( index );
	}
	return true;
}