Esempio n. 1
0
void GroupManager::_processIsmGroupLootMasterResponse(Message* message)
{
	gLogger->logMsg("_processIsmGroupLootMasterResponse");
	PlayerObject* playerObject = gWorldManager->getPlayerByAccId(message->getUint32());  // the player whos group_id has changed
	if(playerObject == NULL)
	{
		gLogger->logMsg("GroupManager::_processIsmGroupLootMasterResponse PlayerAccId not found");
		return;
	}

	//send the SUI
	gLogger->logMsg("ok\n");

	PlayerList inRangeMembers	= playerObject->getInRangeGroupMembers(true);
	PlayerList::iterator it		= inRangeMembers.begin();

	BStringVector namesArray;

	while(it != inRangeMembers.end())
	{
		namesArray.push_back((*it)->getFirstName().getAnsi());
		++it;
	}

	gUIManager->createNewPlayerSelectListBox(playerObject,"handleSetLootMaster","@group:master_looter_sui_title","@group:set_loot_type_text",namesArray,inRangeMembers,playerObject);
}
Esempio n. 2
0
void MyAvatarLabel::paintEvent(QPaintEvent*)
{

	QPainter painter(this);
	if(transparent)
		painter.setOpacity(0.4);
	else
		painter.setOpacity(1.0);

	//hide avatar if player is on ignore list
	boost::shared_ptr<Game> currentGame = myW->myStartWindow->getSession()->getCurrentGame();
	PlayerListConstIterator it_c;
	int seatPlace;
	PlayerList seatsList = currentGame->getSeatsList();
	for (seatPlace=0,it_c=seatsList->begin(); it_c!=seatsList->end(); ++it_c, seatPlace++) {
		if(seatPlace == myId) {
			if(!playerIsOnIgnoreList(QString::fromUtf8((*it_c)->getMyName().c_str()))) {
				painter.drawPixmap(0,0,myPixmap);
				return;
			}
			else if(myW->getMyConfig()->readConfigInt("DontHideAvatarsOfIgnored")) {
				painter.drawPixmap(0,0,myPixmap);
				return;
			}
		}
	}
}
Esempio n. 3
0
int set_descriptors()
{
  FD_ZERO(&in_set);
  FD_ZERO(&out_set);

  int max_socket = ircSocket;
  
  // We want IO from irc
  FD_SET(ircSocket, &in_set);
  if (!ircOutBuf.empty()) {
    FD_SET(ircSocket, &out_set);
  }
  
  // And IO from players
  for (PlayerListIterator i = playerList.begin(); i != playerList.end(); ++i) {
    if ((*i)->socket != NO_SOCKET) {
      max_socket = max ((*i)->socket, max_socket);
      FD_SET((*i)->socket, &in_set);
      if (!(*i)->out_buf.empty()) {
        FD_SET((*i)->socket, &out_set);
      }
    }
  }  
  return max_socket;
}
Esempio n. 4
0
void MyAvatarLabel::refreshTooltips()
{
	boost::shared_ptr<Game> currentGame = myW->myStartWindow->getSession()->getCurrentGame();
	PlayerListConstIterator it_c;
	int seatPlace;
	PlayerList seatsList = currentGame->getSeatsList();
	for (seatPlace=0,it_c=seatsList->begin(); it_c!=seatsList->end(); ++it_c, seatPlace++) {
		if((*it_c)->getMyStayOnTableStatus() == TRUE || (*it_c)->getMyActiveStatus()) {
			bool computerPlayer = false;
			if((*it_c)->getMyType() == PLAYER_TYPE_COMPUTER) {
				computerPlayer = true;
			}
			if(!computerPlayer && getPlayerTip(QString::fromUtf8((*it_c)->getMyName().c_str()))!="" && seatPlace!=0) {
				myW->playerTipLabelArray[(*it_c)->getMyID()]->setText(QString("<a style='text-decoration: none; color: #"+myW->getMyGameTableStyle()->getPlayerInfoHintTextColor()+"; font-size: 14px; font-weight: bold; font-family:serif;' href=\'")+QString::fromUtf8((*it_c)->getMyName().c_str())+"\'>i</a>");
				myW->playerTipLabelArray[(*it_c)->getMyID()]->setToolTip( getPlayerTip(QString::fromUtf8((*it_c)->getMyName().c_str())) );
				myW->playerAvatarLabelArray[(*it_c)->getMyID()]->setToolTip( getPlayerTip(QString::fromUtf8((*it_c)->getMyName().c_str())) );
			} else {
				myW->playerTipLabelArray[(*it_c)->getMyID()]->setText("");
				myW->playerTipLabelArray[(*it_c)->getMyID()]->setToolTip("");
				myW->playerAvatarLabelArray[(*it_c)->getMyID()]->setToolTip("");
			}
		} else {
			myW->playerTipLabelArray[(*it_c)->getMyID()]->setText("");
			myW->playerTipLabelArray[(*it_c)->getMyID()]->setToolTip("");
			myW->playerAvatarLabelArray[(*it_c)->getMyID()]->setToolTip("");

		}


	}
	refreshStars();
}
Esempio n. 5
0
void QBSoundWin::stopAll()
{
//printf("stopAll\n");
	QBSoundLocker locker(&mMutex);
#ifdef __USE_OGG_VORBIS__
  {
    PlayerList::iterator it = streamTrack.begin();
    while(it != streamTrack.end()) {
      delete (*it).second;
      ++it;
    }
    streamTrack.clear();
  }
  {
    EffectList::iterator it = sharedList().begin();
    while(it != sharedList().end())
    {
      delete (*it).second;
      ++it;
    }
    sharedList().clear();
  }
#endif
	return QBSound::stopAll();
}
Esempio n. 6
0
void Turn::play()
{
	game->setState(TURN);
	game->getDeck()->pick();
	game->getCardsOnTable()[3] = game->getDeck()->pick();
	game->setCardsOnTableCount(4);

	PlayerList *playerList = game->getPlayerList();
	playerList->setNextPlayer(1);

	playersToPlay = playerList->getPlayersInGameCount();

	game->setCurrentBet(0);
	bool eos = false;
	everyonePlayed = false;
	currentPlayer = 0;

	std::cout << "Turn" << std::endl;
	while(!eos)
	{
		Player *player = playerList->getNext();
		player->play();

		playerPlayed();
		eos = canEndState();
	}
	endOfState();
}
Esempio n. 7
0
void MyAvatarLabel::reportBadAvatar()
{

	boost::shared_ptr<Game> currentGame = myW->getSession()->getCurrentGame();
	int j=0;
	PlayerListConstIterator it_c;
	PlayerList seatList = currentGame->getSeatsList();
	for (it_c=seatList->begin(); it_c!=seatList->end(); ++it_c) {

		if(myId == j) {

			QString avatar = QString::fromUtf8((*it_c)->getMyAvatar().c_str());
			if(!avatar.isEmpty()) {

				QString nick = QString::fromUtf8((*it_c)->getMyName().c_str());
				int ret = MyMessageBox::question(this, tr("PokerTH - Question"),
												 tr("Are you sure you want to report the avatar of \"%1\" as inappropriate?").arg(nick), QMessageBox::Yes | QMessageBox::No);

				if(ret == QMessageBox::Yes) {
					QFileInfo fi(avatar);
					myW->getSession()->reportBadAvatar((*it_c)->getMyUniqueID(), fi.baseName().toStdString());
				}
			}
			break;
		}
		j++;
	}
}
Esempio n. 8
0
//======================================================================================================================
//
// Broadcasts a message to players in group and in range of the given object, used by tutorial and other instances
//
void MessageLib::_sendToInstancedPlayersUnreliable(Message* message,uint16 priority, const PlayerObject* const playerObject) const
{
    if (!_checkPlayer(playerObject))
    {
        mMessageFactory->DestroyMessage(message);
        return;
    }

    PlayerList const			inRangeMembers	= playerObject->getInRangeGroupMembers(true);
    PlayerList::const_iterator	playerIt		= inRangeMembers.begin();

    while (playerIt != inRangeMembers.end())
    {
        if (_checkPlayer(*playerIt))
        {
            // Clone the message.
            mMessageFactory->StartMessage();
            mMessageFactory->addData(message->getData(),message->getSize());

            ((*playerIt)->getClient())->SendChannelAUnreliable(mMessageFactory->EndMessage(),(*playerIt)->getAccountId(),CR_Client,static_cast<uint8>(priority));
        }

        ++playerIt;
    }

    mMessageFactory->DestroyMessage(message);
}
Esempio n. 9
0
void Mud::removeInactivePlayers()
{
    PlayerList toRemove = PlayerList();
    for (auto iterator : mudPlayers)
    {
        // Proceed only if the player is not connected and is closing.
        if (!iterator->checkConnection() || iterator->closing)
        {
            // Add the player to the list of players that have to be removed.
            toRemove.insert(iterator);
        }
    }
    for (auto iterator = toRemove.begin(); iterator != toRemove.end(); ++iterator)
    {
        // Get the player at the given position.
        Player * player = *iterator;
        // Log the action of removing.
        Logger::log(LogLevel::Global, "Removing inactive player : " + player->getName());
        // Only if the player has successfully logged in, save its state on DB.
        if (player->logged_in)
        {
            SQLiteDbms::instance().beginTransaction();
            player->updateOnDB();
            SQLiteDbms::instance().endTransaction();
        }
        // Remove the player from the list of players.
        remPlayer(player);
        // Delete the player.
        delete (player);
    }
}
Esempio n. 10
0
void players_process_lines()
{
  for (PlayerListIterator i = playerList.begin(); i != playerList.end(); ++i) {
    if ((*i)->socket != NO_SOCKET) {
      player_process_lines((*i));
    }
  }
}
Esempio n. 11
0
void QBSoundWin::stopEffect(unsigned int nSoundId)
{
	QBSoundLocker locker(&mMutex,"stopEffect");
  PlayerList::iterator p = streamTrack.find(nSoundId);
  if (p != streamTrack.end()) {
    findPlayer(nSoundId)->stop();
  }
}
Esempio n. 12
0
bool QBSoundWin::streamIsPlaying(int track)
{
	QBSoundLocker locker(&mMutex,"streamStop");
  PlayerList::iterator p = streamTrack.find(track);
  if (p == streamTrack.end()) {
    return false;
  }
  return findPlayer(track)->isPlaying();
}
Esempio n. 13
0
bool LfgGroup::SelectRandomDungeon()
{
    m_originalInfo = m_dungeonInfo;
    m_lfgFlags |= LFG_GRP_RANDOM;
    LfgLocksMap *groupLocks = GetLocksList();
    std::vector<LFGDungeonEntry const*> options;
    LFGDungeonEntry const *currentRow = NULL;
    //Possible dungeons
    LfgDungeonList* list = sLfgMgr.GetRandomOptions(m_dungeonInfo->ID);
    for(LfgDungeonList::iterator itr = list->begin(); itr != list->end(); ++itr)
        options.push_back(*itr);

    //And now get only without locks
    for(LfgLocksMap::iterator itr = groupLocks->begin(); itr != groupLocks->end(); ++itr)
    {
        for(LfgLocksList::iterator itr2 = itr->second->begin(); itr2 != itr->second->end(); ++itr2)
        {
            for(std::vector<LFGDungeonEntry const*>::iterator itrDung = options.begin(); itrDung != options.end(); ++itrDung)
            {
                if ((*itrDung)->ID != (*itr2)->dungeonInfo->ID)
                    continue;
                DungeonInfo* dungeonInfo = sLfgMgr.GetDungeonInfo((*itr2)->dungeonInfo->ID);
                if (dungeonInfo->locked || (*itr2)->lockType != LFG_LOCKSTATUS_RAID_LOCKED)
                {
                    options.erase(itrDung);
                    break;
                }
            }
        }
    }
    //This should not happen
    if (options.empty())
    {
        PlayerList toRemove;
        for(member_witerator itr = m_memberSlots.begin(); itr != m_memberSlots.end(); ++itr)
        {
            Player *plr = sObjectMgr.GetPlayer(itr->guid);
            if (!plr)
                continue;
            sLfgMgr.SendLfgUpdatePlayer(plr, LFG_UPDATETYPE_GROUP_DISBAND);
            sLog.outError("LfgMgr: Cannot find any random dungeons for player %s", plr->GetName());
            plr->GetSession()->SendNotification("Cannot find any random dungeons for this group, you have to find new group. We are sorry");
            toRemove.insert(plr->GetGUID());     
        }
        for(PlayerList::iterator itr = toRemove.begin(); itr != toRemove.end(); ++itr)
            RemoveMember(*itr, 0);
        toRemove.clear();
        sLfgMgr.AddGroupToDelete(this);
        return false;
    }
    //Select dungeon, there should be also bind check
    uint32 tmp = time(NULL)%options.size();
    m_dungeonInfo = options[tmp];
    return true;
}
Esempio n. 14
0
IrcPlayer *get_player_from_nick(string nick)
{
  for (PlayerListIterator i = playerList.begin(); i != playerList.end(); ++i) {
    if ((*i)->socket != NO_SOCKET) {
      if (boost::iequals((*i)->nick, nick)) {
        return (*i);
      }
    }
  }  
  return NULL;
}
Esempio n. 15
0
static QBStreamSound* findPlayer(int track)
{
  QBStreamSound* player=NULL;
  PlayerList::iterator p = streamTrack.find(track);
  if (p != streamTrack.end()) {
    player = p->second;
  } else {
    player = new QBStreamSound();
    streamTrack.insert(make_pair(track,player));
  }
  return player;
}
Esempio n. 16
0
/** Creates 2 groups: one from winners and one from loosers
 */
QList< Group* > SwissGroup::split( ) const
{
  if ( _matches.count() < 2 ) { // nothing to split
    return QList< Group* >();
  }

  QList< Group* > ret;
  PlayerList w = winners(), l = loosers();

  // number of winnders and loosers can be non-even, when group consists,
  // for example, from 6 persons. We need to add 'bye' players 
  if ( w.count() & 1 ) w << byePlayer;
  if ( l.count() & 1 ) l << byePlayer;

  qDebug() << "Winners:";
  for ( int i = 0; i < w.count(); i ++ ) {
    qDebug() << w.at( i ).name();
  }

  qDebug() << "Loosers:";
  for ( int i = 0; i < l.count(); i ++ ) {
    qDebug() << l.at( i ).name();
  }

  // winners group
  if ( !isPlayerListByed( w ) ) {
    ret << new SwissGroup( _fromPlace, _stage + 1, w ); 
  }

  // loosers group
  if ( !isPlayerListByed( l ) ) {
    ret << new SwissGroup( _fromPlace + _players.count() / 2, 
                           _stage + 1, l );
  }

  foreach( Group *g, ret ) {
    const TournAlgo *a = _tournData->algo();
    Q_CHECK_PTR( a );
 
    g->setTournData( _tournData );
    g->setQualif( isQualif() );
    dynamic_cast<SwissGroup*>(g)->permuteMatches( a->breakAlgo() );

    // if there is at least one bye player, we should notify that
    // at least one game is fakely played.
    if ( g->const_players().contains( byePlayer ) ) {
      _tournData->groupChanged( g );
    }
  }
 
  return ret; 
}
Esempio n. 17
0
std::shared_ptr<PlayerController>
CreatePlayerController(int numPlayers)
{
	const int numBills = 5;
	PlayerList players;
	for (int playerId = 0; playerId < numPlayers; ++playerId)
	{
		auto timer = std::make_unique<TimerObject>(playerId);
		players.push_back(std::make_unique<Player>(playerId, std::move(timer), numBills));
	}

	return std::make_shared<PlayerController>(players);
}
Esempio n. 18
0
/** calls updateMatchCell for each match cell ;)
 */
void RatingsTable::updateMatchCells( )
{
  PlayerList players = _group->const_validPlayers();

  int plCnt = players.count();

  for ( int i = 1; i < rowCount(); i ++ ) {
    for ( int j = 1; j < plCnt + 1; j ++ ) {
      if ( i != j ) {
        updateMatchCell( i, j );
      }
    }
  }
}
Esempio n. 19
0
void remove_disconnected_players()
{
  PlayerListIterator i = playerList.begin ();
  while (i != playerList.end ()) {
    IrcPlayer *player = (*i);
    PlayerListIterator prev = i;
    i++;
    if (player->socket == NO_SOCKET) {
      say_to(player->nick, "You are now disconnected from uMUD");
      playerList.erase(prev);
      delete player;
      player = 0;
    }
  } /* end of looping through players */
}
Esempio n. 20
0
void MyAvatarLabel::startEditTip()
{
	boost::shared_ptr<Game> currentGame = myW->getSession()->getCurrentGame();
	int j=0;
	PlayerListConstIterator it_c;
	PlayerList seatList = currentGame->getSeatsList();
	for (it_c=seatList->begin(); it_c!=seatList->end(); ++it_c) {
		if(myId == j) {
			QString nick = QString::fromUtf8((*it_c)->getMyName().c_str());
			startChangePlayerTip(nick);
			break;
		}
		j++;
	}
}
Esempio n. 21
0
void close_comms()
{
  // Disconnect players
  for (PlayerListIterator i = playerList.begin(); i != playerList.end(); ++i) {
    if ((*i)->socket != NO_SOCKET) {
      close((*i)->socket);
      delete (*i);
    }
  }
  playerList.clear();

  // Disconnect irc
  if (ircSocket != NO_SOCKET) {
    close(ircSocket);
  }
}
Esempio n. 22
0
void Preflop::play() {
	cout << "TIMES : " << times++ << endl;
	game->getDeck()->shuffle();
	game->setState(PFLOP);
	game->setCardsOnTableCount(0);
	Pot *pot = new Pot(0);
	PlayerList *playerList = game->getPlayerList();
	list<Player *> players = playerList->getPlayers();
	int sum = 0;


	for (list<Player*>::iterator p = players.begin(); p != players.end();) {
		pot->registerPlayer(*p);
		sum += (*p)->getBankRoll();
		++p;
	}

	game->setCurrentPot(pot);
	game->getPots()->push_back(pot);

	playerList->initPlayersInGame();
	playersToPlay = playerList->getPlayersInGameCount();

	playerList->setNextPlayer(1);
	playerList->getNext()->paySmallBlind();
	playerList->getNext()->payBigBlind();

	game->setCurrentBet(game->getBigBlindAmount());
	bool eos = false;
	everyonePlayed = false;
	currentPlayer = 0;
	Player *player;

	for (int i = 0; i < playerList->getPlayersInGameCount(); i++) {
		player = playerList->getNext();
		sum += player->getBankRoll();
		player->setHand(game->getDeck()->pick(), game->getDeck()->pick());
	}

	while (!eos) {
		player = playerList->getNext();
		player->play();
		playerPlayed();
		eos = canEndState();
	}
	endOfState();
}
Esempio n. 23
0
static DWORD WINAPI LoaderThreadProc(LPVOID vdParam)
{
	QBSoundWin* snd = (QBSoundWin*)vdParam;
	bool r=false;
	while (!r) {
    {
      QBSoundLocker locker(&snd->mMutex);
      PlayerList::iterator it = streamTrack.begin();
      while(it != streamTrack.end()) {
        (*it).second->streamLoad();
        ++it;
      }
      r = snd->mThreadEnd;
    }
		Sleep(10);
	}
}
Esempio n. 24
0
/**
 * Asks user to select a file with players in a plain text format:
 * Player, rating\nPlayer2, rating\n etc...
 */
void PlayerTable::mouseDoubleClickEvent( QMouseEvent * )
{
  QString fName = QFileDialog::getOpenFileName(this,
                  tr("Open players list file"), QDir::homePath(), 
                  tr("Txt Files (*.txt)"));

  if ( !fName.isNull() ) {
    PlayerList players = loadPlayerList( fName );
    if ( players.count() > 0 ) {
      setPlayerList( players );
    } else {
      QMessageBox msg;
      msg.setText( tr( "I cannot find any player in '" ) + fName + "'" );
      msg.exec();
    } 
  }
}
Esempio n. 25
0
/** should be called in constructor for basic setup of 
 * table cells.
 */
void RatingsTable::setupCells()
{
  PlayerList players = _group->const_validPlayers();

  int plCnt = players.count();
  setRowCount( plCnt + 1 );
  setColumnCount( plCnt + 1 + 1 ); // 1 column for total rating results

  for ( int i = 0; i < rowCount(); i ++ ) {
    for ( int j = 0; j < plCnt + 1; j ++ ) {
      QTableWidgetItem *item = new QTableWidgetItem( );
      QString text;
      if ( i == j ) {
        item->setBackground( palette().brush( QPalette::Disabled,
                                              QPalette::Background ) );
        
        if ( i == 0 )  {
          text = _group->name();
        }
        item->setFlags( Qt::NoItemFlags );
      } else if ( i == 0 ) { // 0th row
        text = players.at( j - 1 ).name();
        item->setFlags( Qt::NoItemFlags );
      } else if ( j == 0 ) { // 0th column
        Player p = players.at( i - 1 );
        text = p.name();
        text += " (" + QString::number( p.rating(), 'f', 1 ) + ")";
        item->setFlags( Qt::NoItemFlags );
      } else {
        item->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled );
      }

      item->setText( text );

      setItem( i, j, item );
    }
  
    QTableWidgetItem *item = new QTableWidgetItem( );
    if ( i == 0 ) {
      item->setText( tr( "New rating" ) );
    }
    item->setFlags( Qt::NoItemFlags );
    setItem( i, plCnt + 1, item );
  }
}
Esempio n. 26
0
bool LfgGroup::RemoveOfflinePlayers()  // Return true if group is empty after check
{
    sLfgMgr.LfgLog("Remove Offline %u, premade %u", GetId(), premadePlayers.empty() ? 0 : 1);
    if (m_memberSlots.empty())
    {
        sLfgMgr.LfgLog("Group %u add to delete", GetId());
        sLfgMgr.AddGroupToDelete(this);
        return true;
    }
    PlayerList toRemove;
    for(member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr)
    {
        sLfgMgr.LfgLog("guid %u", citr->guid);
        Player *plr = sObjectMgr.GetPlayer(citr->guid);
        if (!plr || (!plr->GetSession() && !plr->IsBeingTeleported()) ||
           (plr->GetGroup() && plr->GetGroup() != this && plr->GetGroup()->isLfgGroup() &&
           ((LfgGroup*)plr->GetGroup())->IsInDungeon()))
        {
            sLfgMgr.LfgLog("Add to remove");
            toRemove.insert(citr->guid);
        }
    }
    for(PlayerList::iterator itr = toRemove.begin(); itr != toRemove.end(); ++itr)
    {
        sLfgMgr.LfgLog("Check for premade %u", *itr);
        PlayerList::iterator premade = premadePlayers.find(*itr);
        if(premade != premadePlayers.end())
        {
            sLfgMgr.LfgLog("premade yes");
            for(PlayerList::iterator prm = premadePlayers.begin(); prm != premadePlayers.end(); ++prm)
            {
                Player *plr = sObjectMgr.GetPlayer(*prm);
                if(!plr || !plr->GetSession())
                    continue;
                Group* group = plr->GetGroup();
                if(group)
                {
                    sLfgMgr.RemoveFromQueue(plr, false);
                    return true;
                }
            }
            for(PlayerList::iterator prm = premadePlayers.begin(); prm != premadePlayers.end(); ++prm)
                RemoveMember(*prm, 0);
        }
    }
    for(PlayerList::iterator itr = toRemove.begin(); itr != toRemove.end(); ++itr)
    {
        sLfgMgr.LfgLog("Remove %u", *itr);
        RemoveMember(*itr, 0);
    }
    toRemove.clear();
    //flush empty group
    if (GetMembersCount() == 0)
    {
        sLfgMgr.LfgLog("Group %u add to delete 2", GetId());
        sLfgMgr.AddGroupToDelete(this);
        return true;
    }
    return false;
}
Esempio n. 27
0
void QBSoundMac::streamReset()
{
	QBSoundLocker locker(&mMutex,"streamReset");
  streamTrack.clear();
//  PlayerList::iterator it = streamTrack.begin();
//  while(it != streamTrack.end()) {
//    ++it;
//  }
}
Esempio n. 28
0
int Map::handleDeadPlayers ()
{
	int deadPlayers = 0;
	PlayerList list = _players;
	for (PlayerListIter i = list.begin(); i != list.end(); ++i) {
		Player* p = *i;
		if (!p->isDead()) {
			continue;
		}

		const ClientId clientId = p->getClientId();
		info(LOG_MAP, "player " + p->getName() + " is dead");
		p->onDeath();
		disconnect(clientId);
		++deadPlayers;
	}
	return deadPlayers;
}
Esempio n. 29
0
void Game::injectJoinAccept(NetworkMessage::JoinAccept *message){

	mServerJoined = true;

	PlayerList *pl = message->getPlayerList();
	OgrePlayer *tmp;

	mBombManager = new BombManager(mWorld);

	Ogre::LogManager::getSingletonPtr()->logMessage("Creating Local Map");
	mLocalMap = new LocalMap(
		mWorld,
		mPlayerList,
		mBombManager,
		message->getMapHeight(),
		message->getMapWidth(),
		message->getSeed()
	);

	Ogre::LogManager::getSingletonPtr()->logMessage("Filling player list");
	for(unsigned int i = 0; i < pl->size(); i++){
		if((*pl)[i]->getNickname() == mNickname){
			Ogre::LogManager::getSingletonPtr()->logMessage("Creating Local Player");
			mLocalPlayer = new LocalPlayer(mNickname, mWorld, mBombManager, mCameraManager);
			tmp = mLocalPlayer;
		}
		else
			tmp = new RemotePlayer((*pl)[i]->getNickname(), mWorld, mBombManager);

		tmp->setStartingPosition(
			(*pl)[i]->getX(),
			(*pl)[i]->getY(),
			(*pl)[i]->getZ()
		);

		mPlayerList->addPlayer(tmp);

	}

	mLocalPlayer->setPlayerEventListener(this);

	mGameSetUp = true;

}
Esempio n. 30
0
/** Update total rating for each player
 */
void RatingsTable::updateTotalRatings()
{
  PlayerList players = _group->const_validPlayers();

  int plCnt = players.count();
  int col = plCnt + 1;

  for ( int i = 1; i < rowCount(); i ++ ) {
    Player p = players.at( i - 1 );
    double earned = _group->earnedRating( p );
    double total = p.rating() + earned;    

    QString text;
    text += QString().setNum( total, 'f', 1 );
    text += " (+" + QString().setNum( earned, 'f', 1 ) + ")";
    item( i, col )->setText( text );
    item( i, col )->setBackground( SPRING_GREEN1 ); 
  }
}