void	ASamuraiRocketGameMode::RespawnPlayer(AController* pc)
{
	if (pc == NULL)
		return;
	if (pc->PlayerState->Score <= -10)
	{
		int nbPlayer = 0;

		for (TActorIterator<ASamuraiRocketCharacter> it(GetWorld()); it; ++it)
		{
			++nbPlayer;
		}
		UE_LOG(LogGM, Log, TEXT("Player logged %i"), nbPlayer);
		if (pc->PlayerState->Score <= -10 &&
			nbPlayer <= 2)
		{
			GameEnded();
		}

		return;
	}
	APawn* pawn = this->SpawnDefaultPawnFor(pc, this->ChoosePlayerStart(pc));

	if (pawn == NULL)
		return;
	pc->UnPossess();
	pc->Possess(pawn);
	pc->PlayerState->Score = pc->PlayerState->Score - 1;
	ASamuraiRocketCharacter* src = Cast<ASamuraiRocketCharacter>(pawn);

	if (src != NULL)
	{
		src->GetMesh()->SetSkeletalMesh(_mapController[pc]);
	}
}
void GooRoomClient::FlushGameInfo()
{    
    GooRoomClient::Instance().GetCloudMap().ClearCloudMap();

    Stage* stage = GooRoomClient::Instance().GetStage();
    PlayerMap& playerMap = stage->GetPlayerMap();
    std::for_each(playerMap.begin(), playerMap.end(), [this](PlayerMap::value_type pair)
    {
        Player* player = pair.second;
        if(player->GetActorID() != GooRoomClient::Instance().GetMyActorID())
        {
            GooRoomClient::Instance().RemoveJumpMessageDataQueue(player->GetActorID());
        }
        delete player;  
    });
    playerMap.clear();

    GameEnded();
    m_BoostGauge = 0.f;
    m_MyActorID = ActorID_None;
    m_ComboStack = 0;
}