Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Aug 7, 2011, 3:11:16 PM (13 years ago)
Author:
landauf
Message:

enhanced chat system. chat related code is now separated into network-side code (located in Host, Client, Server) and client-side code (located in ChatManager).
note that there are now two chat related listeners: NetworkChatListener, which is used to send chat from the network to ChatManager, and ChatListener, which is used to send online and offline chat from ChatManager to the actual chat interfaces (ChatOverlay, ChatInputHandler, …).
the "chat" console command now supports a second argument which is the clientID of the receiver. this allows private messages (or gameplay messages directed to only one specific player).

Location:
code/branches/output/src/orxonox/chat
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • code/branches/output/src/orxonox/chat/CMakeLists.txt

    r8828 r8829  
    22  ChatHistory.cc
    33  ChatInputHandler.cc
     4  ChatManager.cc
    45)
  • code/branches/output/src/orxonox/chat/ChatHistory.cc

    r8828 r8829  
    7474
    7575  /* react to incoming chat */
    76   void ChatHistory::incomingChat(const std::string& message,
    77     unsigned int senderID)
     76  void ChatHistory::incomingChat(const std::string& message, const std::string& /*name*/)
    7877  {
    79     /* --> a) look up the actual name of the sender */
    80     std::string text = message;
    81 
    82 #ifndef CHATTEST
    83     /* get sender ID and prepend it to the message */
    84     if (senderID != NETWORK_PEER_ID_UNKNOWN)
    85     {
    86       PlayerInfo* player = PlayerManager::getInstance().getClient(senderID);
    87       if (player)
    88         text = player->getName() + ": " + message;
    89     }
    90 #endif
    91 
    9278    /* add the line to the history */
    93     this->chat_hist_addline( text );
     79    this->chat_hist_addline( message );
    9480
    9581    /* add the line to the log */
    96     this->chat_hist_logline( text );
     82    this->chat_hist_logline( message );
    9783  }
    9884
  • code/branches/output/src/orxonox/chat/ChatHistory.h

    r8828 r8829  
    3737
    3838#ifndef CHATTEST
    39 #include <OrxonoxPrereqs.h>
    40 #include <PlayerManager.h>
    41 #include <infos/PlayerInfo.h>
    42 #include <core/BaseObject.h>
    43 #include <network/ChatListener.h>
    44 #include <core/PathConfig.h>
    45 #include <util/Singleton.h>
     39#include "OrxonoxPrereqs.h"
     40
     41#include "util/Singleton.h"
     42#include "core/BaseObject.h"
     43#include "core/PathConfig.h"
     44#include "chat/ChatListener.h"
     45#include "infos/PlayerInfo.h"
     46#include "PlayerManager.h"
    4647#endif
    4748
     
    8283       * \param senderID Identification number of the sender
    8384       */
    84       virtual void incomingChat(const std::string& message,
    85         unsigned int senderID);
     85      virtual void incomingChat(const std::string& message, const std::string& name);
    8686
    8787      /** Synchronize logfile onto the hard drive
  • code/branches/output/src/orxonox/chat/ChatInputHandler.cc

    r8828 r8829  
    4444#include "core/input/InputManager.h"
    4545#include "core/input/InputState.h"
    46 #include "network/Host.h"
    47 
     46
     47#include "chat/ChatManager.h"
    4848#include "PlayerManager.h"
    4949#include "infos/PlayerInfo.h"
     
    213213
    214214  /* handle incoming chat */
    215   void ChatInputHandler::incomingChat(const std::string& message,
    216     unsigned int senderID)
    217   {
    218     /* look up the actual name of the sender */
    219     std::string text = message;
    220     std::string name = "";
    221 
    222     /* setup player name info */
    223     if (senderID != NETWORK_PEER_ID_UNKNOWN)
    224     {
    225        PlayerInfo* player = PlayerManager::getInstance().getClient(senderID);
    226        if (player)
    227        {
    228          name = player->getName();
    229          text = name + ": " + message;
    230        }
    231     }
    232 
     215  void ChatInputHandler::incomingChat(const std::string& message, const std::string& name)
     216  {
    233217    /* create item */
    234     CEGUI::ListboxTextItem *toadd = new CEGUI::ListboxTextItem( text );
     218    CEGUI::ListboxTextItem *toadd = new CEGUI::ListboxTextItem( message );
    235219
    236220    /* setup colors */
     
    320304
    321305    /* c) send the chat via some call */
    322     Host::Chat( msgtosend );
     306    ChatManager::chat( msgtosend );
    323307
    324308    /* d) stop listening to input - only if this is not fullchat */
  • code/branches/output/src/orxonox/chat/ChatInputHandler.h

    r8828 r8829  
    3030#define _ChatInputHandler_H__
    3131
    32 #include <OrxonoxPrereqs.h>
     32#include "OrxonoxPrereqs.h"
    3333
    3434#include <string>
     
    3737
    3838#include "util/Singleton.h"
    39 #include "network/ChatListener.h"
     39#include "chat/ChatListener.h"
    4040
    4141namespace orxonox // tolua_export
     
    112112       * history window of the full chat window)
    113113       */
    114       void incomingChat( const std::string& message,
    115         unsigned int senderID );
     114      void incomingChat(const std::string& message, const std::string& name);
    116115
    117116      /** \param full true means show full chat window with history,
Note: See TracChangeset for help on using the changeset viewer.