Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Oct 19, 2008, 5:32:58 PM (16 years ago)
Author:
landauf
Message:

small update to do further network tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/objecthierarchy/src/orxonox/objects/gametypes/Gametype.cc

    r1947 r1950  
    3131
    3232#include "core/CoreIncludes.h"
     33#include "core/ConsoleCommand.h"
    3334#include "objects/infos/PlayerInfo.h"
    3435
    3536namespace orxonox
    3637{
     38    SetConsoleCommand(Gametype, listPlayers, true);
     39
    3740    CreateUnloadableFactory(Gametype);
    3841
     
    5457    }
    5558
     59    void Gametype::listPlayers()
     60    {
     61        Gametype* gametype = Gametype::getCurrentGametype();
     62
     63        if (gametype)
     64        {
     65            for (std::set<PlayerInfo*>::const_iterator it = gametype->players_.begin(); it != gametype->players_.end(); ++it)
     66                COUT(0) << "ID: " << (*it)->getClientID() << ", Name: " << (*it)->getName() << std::endl;
     67        }
     68        else
     69        {
     70            for (ObjectList<PlayerInfo>::iterator it = ObjectList<PlayerInfo>::begin(); it != ObjectList<PlayerInfo>::end(); ++it)
     71                COUT(0) << "ID: " << (*it)->getClientID() << ", Name: " << (*it)->getName() << std::endl;
     72        }
     73    }
     74
    5675    void Gametype::clientConnected(unsigned int clientID)
    5776    {
    5877        COUT(0) << "client connected" << std::endl;
    5978
     79        // create new PlayerInfo instance
    6080        PlayerInfo* player = new PlayerInfo();
    6181        player->setClientID(clientID);
     82
     83        // add to clients-map
     84        assert(!this->clients_[clientID]);
     85        this->clients_[clientID] = player;
    6286    }
    6387
     
    6589    {
    6690        COUT(0) << "client disconnected" << std::endl;
     91
     92        // remove from clients-map
     93        PlayerInfo* player = this->clients_[clientID];
     94        this->clients_.erase(clientID);
     95
     96        // delete PlayerInfo instance
     97        delete player;
    6798    }
    6899
     
    88119        COUT(0) << "player " << player->getName() << " left" << std::endl;
    89120    }
     121
     122    void Gametype::playerChangedName(PlayerInfo* player)
     123    {
     124        if (this->players_.find(player) != this->players_.end())
     125        {
     126            if (player->getName() != player->getOldName())
     127            {
     128                COUT(0) << "player " << player->getOldName() << " changed name to " << player->getName() << std::endl;
     129            }
     130        }
     131    }
    90132}
Note: See TracChangeset for help on using the changeset viewer.