Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 8067 in orxonox.OLD for branches/network/src/lib


Ignore:
Timestamp:
Jun 1, 2006, 2:06:53 PM (19 years ago)
Author:
rennerc
Message:

implemented gamestates for multiplayerTeamDeathmatch

Location:
branches/network/src/lib/network
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/network/src/lib/network/message_manager.cc

    r7954 r8067  
    309309  {
    310310    if (
    311          recieverType == RT_ALL ||
     311         recieverType == RT_ALL_ME ||
     312         recieverType == RT_ALL_NOT_ME ||
    312313         recieverType == RT_USER && it->first == reciever ||
    313314         recieverType == RT_NOT_USER && it->first != reciever
     
    324325     
    325326      it->second.messages.push_back( msg );
    326     }
    327   }
    328 }
    329 
    330 
     327     
     328      if ( recieverType == RT_ALL_ME )
     329        incomingMessabeBuffer.push_back( msg );
     330    }
     331  }
     332}
     333
     334
  • branches/network/src/lib/network/message_manager.h

    r8024 r8067  
    3636enum RecieverType
    3737{
    38   RT_ALL = 1,   //!< message is sent to all users
    39   RT_USER,      //!< message is only sent to reciever
    40   RT_NOT_USER   //!< message is sent to all but reciever
     38  RT_ALL_NOT_ME = 1,   //!< message is sent to all users
     39  RT_ALL_ME,           //!< message is sent to all users
     40  RT_USER,             //!< message is only sent to reciever
     41  RT_NOT_USER          //!< message is sent to all but reciever
    4142};
    4243
  • branches/network/src/lib/network/network_game_manager.cc

    r8024 r8067  
    5959 
    6060  MessageManager::getInstance()->registerMessageHandler( MSGID_DELETESYNCHRONIZEABLE, delSynchronizeableHandler, NULL );
     61 
     62  this->gameState = 0;
     63  registerVar( new SynchronizeableInt( &gameState, &gameState, "gameState" ) );
    6164}
    6265
     
    118121bool NetworkGameManager::signalLeftPlayer(int userID)
    119122{
     123  delete PlayerStats::getStats( userID )->getPlayable();
     124  delete PlayerStats::getStats( userID );
    120125}
    121126
     
    166171void NetworkGameManager::removeSynchronizeable( int uniqueId )
    167172{
     173  byte buf[INTSIZE];
     174 
     175  assert( Converter::intToByteArray( uniqueId, buf, INTSIZE ) == INTSIZE );
     176 
     177  MessageManager::getInstance()->sendMessage( MSGID_DELETESYNCHRONIZEABLE, buf, INTSIZE, RT_ALL_NOT_ME, 0, MP_HIGHBANDWIDTH );
    168178}
    169179
     
    172182
    173183
     184
  • branches/network/src/lib/network/network_game_manager.h

    r8024 r8067  
    4747  public:
    4848    virtual ~NetworkGameManager();
    49 
     49   
    5050    static NetworkGameManager* NetworkGameManager::getInstance()
    5151    { if (!NetworkGameManager::singletonRef) NetworkGameManager::singletonRef = new NetworkGameManager(); return NetworkGameManager::singletonRef; }
     
    5757    void removeSynchronizeable( int uniqueId );
    5858
     59    inline void setGameState( int gameState ){ this->gameState = gameState; }
     60    inline int getGameState(){ return this->gameState; }
    5961
    6062  private:
     
    6466
    6567    static NetworkGameManager*    singletonRef;
     68   
     69    int                           gameState;
    6670};
    6771
  • branches/network/src/lib/network/player_stats.cc

    r8014 r8067  
    4848
    4949  this->userId = 0;
    50   this->teamId = 0;
     50  this->teamId = TEAM_NOTEAM;
     51  this->preferedTeamId = TEAM_NOTEAM;
    5152  this->score = 0;
    5253  this->playableClassId = 0;
     
    5455 
    5556  userId_handle = registerVarId( new SynchronizeableInt( &userId, &userId, "userId" ) );
    56   groupId_handle = registerVarId( new SynchronizeableInt( &teamId, &teamId, "teamId" ) );
     57  teamId_handle = registerVarId( new SynchronizeableInt( &teamId, &teamId, "teamId" ) );
     58  preferedTeamId_handle = registerVarId( new SynchronizeableInt( &preferedTeamId, &preferedTeamId, "preferedUserId" ) );
    5759  score_handle = registerVarId( new SynchronizeableInt( &score, &score, "score" ) );
    5860  playableClassId_handle = registerVarId( new SynchronizeableInt( &playableClassId, &playableClassId, "playableClassId") );
  • branches/network/src/lib/network/player_stats.h

    r8014 r8067  
    1212#include <string>
    1313#include <list>
     14
     15enum
     16{
     17  TEAM_NOTEAM = -3,
     18  TEAM_RANDOM = -2,
     19  TEAM_SPECTATOR = -1
     20};
    1421
    1522//! A class for storing player information
     
    3138    inline void setTeamId( int teamId ){ this->teamId = teamId; }
    3239   
     40    inline int getPreferedTeamId(){ return preferedTeamId; }
     41    inline void setPreferedTeamId( int preferedTeamId ){ this->preferedTeamId = preferedTeamId; }
     42   
    3343    inline int getScore(){ return score; }
    3444    inline void setScore( int score ){ this->score = score; }
     
    4858    int userId;                //!< userId
    4959    int teamId;                //!< teamId
     60    int preferedTeamId;        //!< preferedTeamId
    5061
    5162    int score;                 //!< users score points
     
    5869    // handles for SynchronizeableVars
    5970    int userId_handle;
    60     int groupId_handle;
     71    int teamId_handle;
     72    int preferedTeamId_handle;
    6173    int score_handle;
    6274    int playableClassId_handle;
  • branches/network/src/lib/network/synchronizeable.cc

    r8014 r8067  
    2121#include "netdefs.h"
    2222#include "network_log.h"
     23#include "network_game_manager.h"
    2324
    2425#include "state.h"
     
    6869  if ( this->networkStream )
    6970    this->networkStream->disconnectSynchronizeable(*this);
     71 
     72  if ( this->isServer() && this->beSynchronized() && this->getUniqueID() > 0 )
     73    NetworkGameManager::getInstance()->removeSynchronizeable( this->getUniqueID() );
    7074}
    7175
Note: See TracChangeset for help on using the changeset viewer.