Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 9507 in orxonox.OLD for branches/proxy/src/world_entities


Ignore:
Timestamp:
Jul 27, 2006, 1:59:30 PM (18 years ago)
Author:
patrick
Message:

the player team change should now work on all clients in the network, its now a global synch variable

Location:
branches/proxy/src/world_entities
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/proxy/src/world_entities/playable.cc

    r9500 r9507  
    6868
    6969
     70  this->teamChangeHandler = registerVarId( new SynchronizeableInt( &this->teamId, &this->teamId, "team-id" ) );
    7071  registerVar( new SynchronizeableInt( &score, &score, "score" ) );
    7172  registerVar( new SynchronizeableBool( &bFire, &bFire, "bFire", PERMISSION_OWNER));
     
    524525  "FirstPerson"
    525526};
     527
     528
     529/**
     530 * handler for changes on registred vars
     531 * @param id id's which changed
     532 */
     533void Playable::varChangeHandler( std::list< int > & id )
     534{
     535  if ( std::find( id.begin(), id.end(), this->teamChangeHandler) != id.end() )
     536  {
     537    this->setTeam(this->teamId);
     538  }
     539
     540  WorldEntity::varChangeHandler(id);
     541}
  • branches/proxy/src/world_entities/playable.h

    r9501 r9507  
    1111#include "event.h"
    1212#include <vector>
     13#include <list>
    1314
    1415#include "world_entities/weapons/weapon_manager.h"
     
    4344
    4445  virtual void loadParams(const TiXmlElement* root);
     46  void varChangeHandler( std::list< int > & id );
    4547
    4648  // Weapon and Pickups
     
    6163  /** @return a List of Events in PEV_* sytle */
    6264  inline const std::vector<int>& getEventList() { return this->events; };
    63   virtual void setTeam(int teamID);
    6465
    6566
     
    7778  inline void setScore( int score ) { this->score = score; }
    7879  inline int  getScore() { return this->score; }
     80  inline void setTeamId( int teamId) { this->teamId = teamId;}
     81  inline int getTeamId() const { return this->teamId; }
     82  virtual void setTeam(int teamID);
     83
    7984
    8085  void setEnterRadius(float radius) { this->enterRadius = radius; };
     
    121126
    122127  int                   score;              //!< players score
     128  int                   teamChangeHandler;  //!< handler id for team changes network sync
     129  int                   teamId;             //!< id of the current team
    123130
    124131  bool                  bDead;
     
    128135  float                 enterRadius;        //!< How far one can be away from the Playable to enter it.
    129136
    130   WorldEntity* collider;
     137  WorldEntity*          collider;
    131138};
    132139
  • branches/proxy/src/world_entities/space_ships/turbine_hover.cc

    r9502 r9507  
    276276  else if (teamID == 1)
    277277    this->setBoostColor(Color::red);
     278
     279  // set the local team id, very important
     280  this->setTeamId(teamID);
    278281}
    279282
Note: See TracChangeset for help on using the changeset viewer.