void Server_Game::nextTurn()
{
	QMutexLocker locker(&gameMutex);
	
	const QList<int> keys = players.keys();
	int listPos = -1;
	if (activePlayer != -1)
		listPos = keys.indexOf(activePlayer);
	do {
		++listPos;
		if (listPos == keys.size())
			listPos = 0;
	} while (players.value(keys[listPos])->getSpectator() || players.value(keys[listPos])->getConceded());
	
	setActivePlayer(keys[listPos]);
}
Exemple #2
0
void TiledMap::loadEntityLayer(const Tmx::ObjectGroup *objectGroup)
{
	for(int i = 0; i < objectGroup->GetNumObjects(); ++i)
	{
		const Tmx::Object* object = objectGroup->GetObject(i);
		if(object->GetType() == "Enemy")
		{
			new Enemy(object->GetName(), osg::Vec3(object->GetX() / tileWidth, - object->GetY() / tileHeight, 0));
		}
		else if(object->GetType() == "Player")
		{
			addNewPlayer(object->GetName(), osg::Vec3(object->GetX() / tileWidth, - object->GetY() / tileHeight, 0));
			setActivePlayer(object->GetName());
		}
		else
		{
			std::ostringstream stream;
			stream << "Unable to determine function of object type \"" << object->GetType() << "\" in entity layer.";
			logWarning(stream.str());
		}
	}
}