Beispiel #1
0
bool CIwMapGame::GetLocation(s3eLocation& location)
{
	uint64 timer = s3eTimerGetMs();

	if (g_lastGpsLookup == 0 || (timer - g_lastGpsLookup) > 500)
	{
		if (S3E_RESULT_SUCCESS != s3eLocationGet(&location))
		{
			return false;
		}
		s3eFilePrintf(g_pFile, "%lld\t%lld\t%4.9f\t%4.9f\t%4.9f\t%4.9f\t%4.9f\r\n", timer, location.m_TimeStampUTC, location.m_Longitude, location.m_Latitude, location.m_Altitude, location.m_HorizontalAccuracy, location.m_VerticalAccuracy);
		s3eFileFlush(g_pFile);

		if (g_bTrackingDistance)
		{
			g_distanceTravelled += LiveMaps::CalculateDistance(g_lastLocation, location);
		}

		g_lastLocation = location;
		g_lastGpsLookup = timer;
		return true;
	}
	else
	{
		if (g_lastGpsLookup)
		{
			location = g_lastLocation;
			return true;
		}
		return false;
	}
}
Beispiel #2
0
int CIwGameXmlNode::SaveAttributes(CIwGameFile* file)
{
	for (CIwGameXmlAttributeList::iterator i = Attributes.begin(); i != Attributes.end(); ++i)
	{
		int err = s3eFilePrintf(file->getFileHandle(), " %s=\"%s\"", (*i)->Name.c_str(), (*i)->Value.c_str());
		if (err < 0)
			return err;
	}

	return 0;
}
Beispiel #3
0
int CIwGameXmlNode::Save(const char* filename)
{
	// Dont save root node
	if (Name == ".")
	{
		CIwGameXmlNode* node = GetFirstNode();
		if (node == NULL)
			return -1;
		return node->Save(filename);
	}

	CIwGameFile file;
	if (file.Open(filename, "wb", true))
	{
		s3eFilePrintf(file.getFileHandle(), "<?xml version=\"1.0\"?>\n");
		int err = SaveTree(&file);
		if (err < 0)
			return err;
	}
	else
		return -1;

	return 0;
}
Beispiel #4
0
int CIwGameXmlNode::SaveTree(CIwGameFile* file, int level)
{
	int err = 0;

	for (int t = 0; t < level; t++)
	{
		err = s3eFilePrintf(file->getFileHandle(), "\t");
		if (err < 0)
			return err;
	}
	err = s3eFilePrintf(file->getFileHandle(), "<%s", Name.c_str());
	if (err < 0)
		return err;
	err = SaveAttributes(file);
	if (err < 0)
		return err;
	if (HasValue)
	{
		if (Value.GetLength() == 0)
		{
			err = s3eFilePrintf(file->getFileHandle(), " />\n");
			if (err < 0)
				return err;
		}
		else
		{
			err = s3eFilePrintf(file->getFileHandle(), ">");
			if (err < 0)
				return err;
			err = s3eFilePrintf(file->getFileHandle(), "%s", Value.c_str());
			if (err < 0)
				return err;
		}
		err = s3eFilePrintf(file->getFileHandle(), "</%s>\n", Name.c_str());
		if (err < 0)
			return err;
	}
	else
	{
		if (Children.size() == 0)
		{
			err = s3eFilePrintf(file->getFileHandle(), " />\n");
			if (err < 0)
				return err;
		}
		else
		{
			err = s3eFilePrintf(file->getFileHandle(), ">\n");
			if (err < 0)
				return err;
			for (CIwGameXmlNodeList::iterator i = Children.begin(); i != Children.end(); ++i)
			{
				err = (*i)->SaveTree(file, level + 1);
				if (err < 0)
					return err;
			}
			for (int t = 0; t < level; t++)
			{
				err = s3eFilePrintf(file->getFileHandle(), "\t");
				if (err < 0)
					return err;
			}
			err = s3eFilePrintf(file->getFileHandle(), "</%s>\n", Name.c_str());
			if (err < 0)
				return err;
		}
	}

	return 0;
}