Пример #1
0
void GameServer::InitializePuppet(u8 playerType)
{
	ComposeIntroMessage(ms_networkIdCounter);

	s8 playerClass[32];
	strcpy(playerClass, m_playerTypes[(PlayerType)playerType].c_str());
	PlayerController* puppet = new PlayerController(&m_gc, m_resources, m_spawnPoint.x, m_spawnPoint.y, playerClass, (PlayerType)playerType);
	puppet->ConnectSlots(m_drawSignal, m_updateSignal);
	puppet->SetEnvList(m_level->GetCollidableObjects());
	puppet->SetEnemyList(m_level->GetHostiles());
	puppet->SetDestructiblesList(m_level->GetDestructibles());

	//Add puppet to the list of networkPlayets
	m_networkIds.push_back(ms_networkIdCounter);
	m_networkPlayers.insert(std::pair<u8, PlayerController*>(ms_networkIdCounter, puppet));

	//Add puppet to the list of players
	m_players->push_back(puppet);
	m_level->GetHostiles()->push_back(puppet);

	ComposeNewClientMessage(ms_networkIdCounter, playerType);
	ms_networkIdCounter++;
}