Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 10114 in orxonox.OLD for trunk/src/lib


Ignore:
Timestamp:
Dec 19, 2006, 11:55:26 PM (18 years ago)
Author:
patrick
Message:

merged network back to trunk

Location:
trunk/src/lib
Files:
24 edited
4 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/graphics/importer/md2/md2Model.cc

    r9869 r10114  
    9292  rebuildInfo();
    9393
    94   //this->debug();
     94  this->debug();
    9595}
    9696
     
    9999{
    100100  this->init();
     101
     102  this->scaleFactor = model.scaleFactor;
     103
    101104  this->rebuildInfo();
    102105}
     
    104107MD2Model& MD2Model::operator=(const MD2Model& md2model)
    105108{
     109  this->init();
     110  this->scaleFactor = md2model.scaleFactor;
    106111  this->data = md2model.data;
    107112  this->rebuildInfo();
     
    141146  this->data = MD2Data::Pointer(new MD2Data(modelFileName, skinFileName, scale));
    142147  this->rebuildInfo();
     148
     149  // init the animation - do not remove
     150  this->tick( 0.01);
     151
     152  return true;
    143153}
    144154
     
    268278/**
    269279 * @brief draws the model: interface for all other classes out in the world
    270  * @todo make it const and virtual
    271  * FIXME
    272280 */
    273281void MD2Model::draw() const
     
    313321      glNormal3fv(anorms[this->data->pLightNormals[pCommands[2]]]);
    314322      glVertex3fv(this->verticesList[pCommands[2]]);
     323//       printf("vertex: %f, %f, %f\n", this->verticesList[pCommands[2]][0], this->verticesList[pCommands[2]][1], this->verticesList[pCommands[2]][2]);
    315324    }
    316325    glEnd();
     
    325334{
    326335  //static sVec3D this->verticesList[MD2_MAX_VERTICES]; /* performance: created only once in a lifetime */
    327   int* pCommands = this->data->pGLCommands;
     336  //  int* pCommands = this->data->pGLCommands;
    328337  /* some face culling stuff */
    329338  //   glPushAttrib(GL_POLYGON_BIT);
     
    428437  PRINT(0)("=  Number of Frames: \t%i\n", this->data->header->numFrames);
    429438  PRINT(0)("=  Height, Width:\t%i, %i\n", this->data->header->skinHeight, this->data->header->skinWidth);
    430   //PRINT(0)("=  Pointer to the data object: %p\n", this->data);
     439  PRINT(0)("=  DATA:\n");
     440  PRINT(0)("=  Number of references to data: %i\n", this->data.count());
    431441  PRINT(0)("===================================================\n\n");
    432442}
     
    452462  this->loadModel(modelFileName);
    453463  this->loadSkin(skinFileName);
     464
     465  PRINTF(0)("model %s, skin %s\n", modelFileName.c_str(), skinFileName.c_str());
    454466}
    455467
     
    570582  delete [] buffer;
    571583  fclose(pFile);
     584
     585  return true;
    572586}
    573587
     
    592606  this->material.setIllum(3);
    593607  this->material.setAmbient(1.0, 1.0, 1.0);
    594 }
     608
     609  return true;
     610}
  • trunk/src/lib/graphics/importer/md2/resource_md2.cc

    r9869 r10114  
    2020    PRINTF(0)("NOT FOUND MD2: %s\n", modelName.c_str());
    2121    std::string modelFileName = this->Resource::locateFile(modelName);
    22     //std::string skinFileName = this->Resource::locateFile(skinName);
     22    std::string skinFileName = this->Resource::locateFile(skinName);
     23    PRINTF(0)("NEW %s::%s\n", modelName.c_str(), modelFileName.c_str());
    2324    this->MD2Model::load(modelFileName, skinName, scale);
    24     this->Resource::addResource(new ResourceMD2::MD2ResourcePointer(loadString(modelName, skinName, scale), keepLevel, this->MD2Model::dataPointer()));
     25    this->Resource::addResource(new ResourceMD2::MD2ResourcePointer(loadString(modelName, skinFileName, scale), keepLevel, this->MD2Model::dataPointer()));
    2526  }
    2627
  • trunk/src/lib/graphics/light.cc

    r9869 r10114  
    2626#include "debug.h"
    2727
    28 #include "class_id_DEPRECATED.h"
    29 
    30 ObjectListDefinitionID(Light, CL_LIGHT);
     28ObjectListDefinition(Light);
    3129CREATE_FACTORY(Light);
    3230
  • trunk/src/lib/graphics/render2D/image_plane.cc

    r9869 r10114  
    2323#include "p_node.h"
    2424
    25 
    26 #include "class_id_DEPRECATED.h"
    27 
    28 ObjectListDefinitionID(ImagePlane, CL_IMAGE_PLANE);
     25ObjectListDefinition(ImagePlane);
    2926CREATE_FACTORY(ImagePlane);
    3027
  • trunk/src/lib/graphics/shader_data.cc

    r9869 r10114  
    6363  {
    6464    PRINTF(2)("Shaders are not supported on your hardware\n");
    65   }
     65    return true;
     66  }
     67 
     68  return true;
    6669}
    6770
  • trunk/src/lib/graphics/text_engine/limited_width_text.cc

    r9869 r10114  
    3333  this->setLineWidth(lineWidth);
    3434}
     35
    3536
    3637/**
  • trunk/src/lib/gui/gl/glmenu/glmenu_imagescreen.cc

    r9869 r10114  
    2626#include "debug.h"
    2727
    28 #include "class_id_DEPRECATED.h"
    29 ObjectListDefinitionID(GLMenuImageScreen, CL_GLMENU_IMAGE_SCREEN);
     28ObjectListDefinition(GLMenuImageScreen);
    3029CREATE_FACTORY(GLMenuImageScreen);
    3130
  • trunk/src/lib/lang/base_object.cc

    r9869 r10114  
    3535}
    3636
     37/**
     38 * copyconstructor
     39 * @param bo instance to copy
     40 */
     41BaseObject::BaseObject( const BaseObject& bo )
     42{
     43  this->className = "BaseObject";
     44  this->objectName = bo.objectName;
     45  this->xmlElem = (bo.xmlElem)? bo.xmlElem->Clone() : NULL;
     46  this->registerObject( this, BaseObject::_objectList);
     47}
     48
     49
    3750/**
    3851 * @brief standard deconstructor
     
    4558  for (it = this->_classes.begin(); it != this->_classes.end(); ++it)
    4659  {
    47     if (ORX_DEBUG >= 5)
     60    //if (ORX_DEBUG >= 5)
    4861      assert((*it)._objectList->checkIteratorInList((*it)._iterator) || (*it)._objectList->checkObjectInList(this));
    4962    (*it)._objectList->unregisterObject((*it)._iterator);
  • trunk/src/lib/lang/base_object.h

    r9869 r10114  
    3030public:
    3131  BaseObject (const std::string& objectName = "");
     32  BaseObject( const BaseObject& bo );
    3233
    3334  virtual ~BaseObject ();
     
    5152  /** @returns the ClassID of this Object */
    5253  inline const ClassID& getClassID() const { return _classes.front()._objectList->identity(); }
    53   /** @returns the ID of the Topmost object of the ClassStack */
    54   inline const int& getLeafClassID() const { return _classes.front()._objectList->identity().id(); }
    5554
    5655  bool isA(const ObjectListBase& objectList) const;
  • trunk/src/lib/lang/object_list.cc

    r9869 r10114  
    2525 * @return a new NewObejctList
    2626 */
    27 ObjectListBase::ObjectListBase(const std::string& className, int id)
     27ObjectListBase::ObjectListBase(const std::string& className)
    2828    : _name(className)
    2929{
     
    3636  assert(!ObjectListBase::classNameExists(className) && "Classes should only be included once, and no two classes should have the same name (key value)");
    3737
    38   if (id == -1)
    39   {
    40     id = ObjectListBase::_classesByID->size();
    41     // searching for a free ID
    42     while (ObjectListBase::classIDExists(id)) ++id;
    43   }
     38  int id = ObjectListBase::_classesByID->size();
     39  // searching for a free ID
     40  while (ObjectListBase::classIDExists(id)) ++id;
     41
    4442  assert(!ObjectListBase::classIDExists(id) && "Classes should only be included once, and no two classes should have the same ID (key value)");
    4543
     
    330328    return -1;
    331329}
     330
     331
     332/**
     333 * replace all ids. list must contain all (and no more) ids
     334 * @param str2id list: string -> newId
     335 */
     336void ObjectListBase::replaceIDMap( const std::map< std::string, int >& str2id )
     337{
     338  if ( str2id.size() != _classesByID->size() )
     339  {
     340    assert( false && "size of str2id does not match" );
     341  }
     342
     343  IDMap * map = new IDMap();
     344
     345  std::map< std::string, int >::const_iterator it;
     346  for ( it = str2id.begin(); it != str2id.end(); it++ )
     347  {
     348    assert( _classesByName->find( it->first ) != _classesByName->end() );
     349    (*map)[ it->second ] =  (*_classesByName)[it->first];
     350    (*map)[ it->second ]->_id = it->second;
     351  }
     352
     353  delete _classesByID;
     354  _classesByID = map;
     355}
     356
     357/**
     358 *
     359 * @return
     360 */
     361std::map< std::string, int > * ObjectListBase::createStrToId( )
     362{
     363  std::map< std::string, int > * res = new std::map< std::string, int >();
     364
     365  NameMap::const_iterator it;
     366  for ( it = _classesByName->begin(); it != _classesByName->end(); it++ )
     367  {
     368    IDMap::const_iterator it2;
     369    int id = -1;
     370    for ( it2 = _classesByID->begin(); it2 != _classesByID->end(); it2++ )
     371    {
     372      if ( it->second == it2->second )
     373      {
     374        id = it2->first;
     375        break;
     376      }
     377    }
     378
     379    assert( id != -1 );
     380    (*res)[ it->first ] = id;
     381  }
     382
     383  return res;
     384}
  • trunk/src/lib/lang/object_list.h

    r9869 r10114  
    3232 * @brief Use this macro to easily define a Class to store its own ObjectListDefinition
    3333 * @param ClassName: the Name of the Class.
    34  * @param ID: optional set a Fixed ID.
    35  */
    36 #define ObjectListDefinitionID(ClassName, ID) \
    37    ObjectList<ClassName> ClassName::_objectList(#ClassName, ID)
    38 
    39 /**
    40  * @brief Use this macro to easily define a Class to store its own ObjectListDefinition
    41  * @param ClassName: the Name of the Class.
    4234 */
    4335#define ObjectListDefinition(ClassName) \
    44     ObjectListDefinitionID(ClassName, -1)
     36    ObjectList<ClassName> ClassName::_objectList(#ClassName)
    4537
    4638class BaseObject;
     
    109101
    110102protected:
    111   ObjectListBase(const std::string& className, int id = -1);
     103  ObjectListBase(const std::string& className);
    112104  virtual ~ObjectListBase();
    113105
     
    133125  static NameMap*               _classesByName;     //!< A Map of all the classes in existance.
    134126  static std::list<std::string> _classNames;        //!< A list of all the registered ClassNames.
     127
     128public:
     129  static void replaceIDMap( const std::map<std::string, int>& str2id );
     130  static std::map<std::string, int>* createStrToId();
    135131};
    136132
     
    199195
    200196public:
    201   ObjectList(const std::string& name, int id = -1);
     197  ObjectList(const std::string& name);
    202198  ~ObjectList();
    203199
     
    256252 */
    257253template <class T>
    258 ObjectList<T>::ObjectList(const std::string& name, int id)
    259     : ObjectListBase(name, id)
     254ObjectList<T>::ObjectList(const std::string& name)
     255    : ObjectListBase(name)
    260256{}
    261257
  • trunk/src/lib/network/Makefile.am

    r9656 r10114  
    4343                      synchronizeable_var/synchronizeable_uint.cc \
    4444                      synchronizeable_var/synchronizeable_ip.cc \
     45                      synchronizeable_var/synchronizeable_classid.cc \
     46                      synchronizeable_var/synchronizeable_classid_list.cc \
    4547                      \
    4648                      ip.cc
     
    9496                synchronizeable_var/synchronizeable_uint.h \
    9597                synchronizeable_var/synchronizeable_ip.h \
     98                synchronizeable_var/synchronizeable_classid.h \
     99                synchronizeable_var/synchronizeable_classid_list.h \
    96100                \
    97101                ip.h
  • trunk/src/lib/network/handshake.cc

    r9869 r10114  
    2222#include "debug.h"
    2323
     24#include "synchronizeable_var/synchronizeable_classid_list.h"
     25
     26std::map< std::string, int >* Handshake::classIdList = NULL;
    2427
    2528ObjectListDefinition(Handshake);
     
    3235  this->registerObject(this, Handshake::_objectList);
    3336
     37  if ( !Handshake::classIdList )
     38  {
     39    //TODO who else?
     40    if ( SharedNetworkData::getInstance()->isMasterServer() )
     41    {
     42      Handshake::classIdList = ObjectListBase::createStrToId();
     43    }
     44    else
     45    {
     46      Handshake::classIdList = new std::map< std::string, int >();
     47    }
     48  }
    3449
    3550  // register all variable handlers
     
    5267  registerVar( new SynchronizeableIP( &this->proxy2, &this->proxy2, "proxy server 2", PERMISSION_MASTER_SERVER ) );
    5368  registerVar( new SynchronizeableInt( &this->redirectProxy, &this->redirectProxy, "proxy server redirection flag", PERMISSION_MASTER_SERVER ) );
     69 
     70  registerVar( new SynchronizeableClassIDList( Handshake::classIdList, Handshake::classIdList, "classId List", PERMISSION_MASTER_SERVER ) );
    5471
    5572
  • trunk/src/lib/network/handshake.h

    r9869 r10114  
    113113    int                errorString_handler;                   //!< handshake error string handler
    114114    int                candel_id;                             //!< handshake deletion handler
    115     int                nodeType;                              //!, the type of the network node
     115    int                nodeType;                              //!< the type of the network node
    116116
    117117    int                redirectProxy;                         //!< true if the client should reconnect to a proxy server
    118118    IP                 proxy1;                               //!< ip address of the first proxy (0.0.0.0 of not available)
    119119    IP                 proxy2;                               //!< ip address of the second proxy (0.0.0.0 of not available)
     120   
     121    static std::map< std::string, int >* classIdList;
     122  public:
     123    std::map< std::string, int >* getClassIdList(){ return classIdList; }
    120124};
    121125
  • trunk/src/lib/network/message_manager.cc

    r9869 r10114  
    242242    assert( i + messageLength <= length );
    243243    // make sure there is a message handler for this message type
     244    //if ( !( messageHandlerMap.find( (MessageType)messageType ) != messageHandlerMap.end()) )
     245    //{
     246//          PRINTF(0)("messagetype: %d\n", messageType);
     247//          this->objectList().debugAll( 0 );
     248//    }
     249   
    244250    assert( messageHandlerMap.find( (MessageType)messageType ) != messageHandlerMap.end());
    245251
  • trunk/src/lib/network/network_game_manager.cc

    r9869 r10114  
    111111  playable.loadMD2Texture( playableTexture );
    112112  playable.setTeam(team);
    113   playable.loadModel( playableModel, 100.0f );
     113  playable.loadModel( playableModel, playableScale );
    114114  playable.setOwner( userId );
    115115  playable.setUniqueID( SharedNetworkData::getInstance()->getNewUniqueID() );
  • trunk/src/lib/network/network_stream.cc

    r9869 r10114  
    128128
    129129  this->bRedirect = false;
     130  this->bSoftRedirect = false;
    130131
    131132  this->currentState = 0;
     
    716717              // init the new message manager
    717718              MessageManager::getInstance()->setUniqueID( it->second.handshake->getMessageManagerId() );
     719              ObjectListBase::replaceIDMap( *(it->second.handshake->getClassIdList()) );
    718720            }
    719721
     
    966968
    967969      // if handshake not finished only sync handshake
    968       if ( peer->second.handshake && Handshake::staticClassID() != sync.getLeafClassID())
     970      if ( peer->second.handshake && Handshake::staticClassID() != sync.getClassID() )
    969971        continue;
    970972
     
    972974      if ( ( SharedNetworkData::getInstance()->isMasterServer() ||
    973975             SharedNetworkData::getInstance()->isProxyServerActive() &&  peer->second.isClient())
    974              && Handshake::staticClassID() == sync.getLeafClassID() && sync.getUniqueID() != peer->second.userId )
     976             && Handshake::staticClassID() == sync.getClassID() && sync.getUniqueID() != peer->second.userId )
    975977        continue;
    976978
    977979      /* list of synchronizeables that will never be synchronized over the network: */
    978980      // do not sync null parent
    979       if ( NullParent::staticClassID() == sync.getLeafClassID())
     981      if ( NullParent::staticClassID() == sync.getClassID())
    980982        continue;
    981983
    982984
    983       assert( sync.getLeafClassID() != 0);
     985      assert( sync.getClassID() != 0);
    984986
    985987      assert( offset + INTSIZE <= UDP_PACKET_SIZE );
     
    11881190          if( NullParent::staticClassID() == leafClassId || Synchronizeable::staticClassID() == leafClassId || NetworkGameManager::staticClassID() == leafClassId)
    11891191          {
    1190             PRINTF(1)("Don't create Object with ID %x, ignored!\n", (int)leafClassId);
     1192            PRINTF(0)("Don't create Object with ID %d, ignored!\n", (int)leafClassId);
    11911193            offset += syncDataLength;
    11921194            continue;
    11931195          }
    11941196          else
    1195             ; /// FIXME CLASS_ID :: b = Factory::fabricate( leafClassId );
    1196 
     1197                  b = Factory::fabricate( ObjectListBase::retrieveIdentity( leafClassId ) );
     1198         
    11971199          if ( !b )
    11981200          {
    1199             PRINTF(1)("Could not fabricate Object with classID %x\n", leafClassId);
     1201            PRINTF(1)("Could not fabricate Object with classID %d\n", leafClassId);
    12001202            offset += syncDataLength;
    12011203            continue;
     
    12081210            sync->setSynchronized(true);
    12091211
    1210             PRINTF(0)("Fabricated %s with id %d\n", sync->getClassCName(), sync->getUniqueID());
     1212            PRINTF(1)("Fabricated %s with id %d\n", sync->getClassCName(), sync->getUniqueID());
    12111213          }
    12121214          else
    12131215          {
    1214             PRINTF(1)("Class with ID %x is not a synchronizeable!\n", (int)leafClassId);
     1216            PRINTF(1)("Class with ID %d is not a synchronizeable!\n", (int)leafClassId);
    12151217            delete b;
    12161218            offset += syncDataLength;
  • trunk/src/lib/network/peer_info.h

    r9656 r10114  
    3636    int                 userId;                  //!< id of this network node
    3737    int                 nodeType;                //!< type of this network node
    38     IP                  ip;                      //!> the ip address of this network node
     38    IP                  ip;                      //!< the ip address of this network node
    3939
    4040    NetworkSocket *     socket;                  //!< socket connecting to this node
  • trunk/src/lib/network/player_stats.cc

    r9869 r10114  
    3030#include "shell_command.h"
    3131
    32 #include "class_id_DEPRECATED.h"
    33 
    34 ObjectListDefinitionID(PlayerStats, CL_PLAYER_STATS);
     32
     33
     34ObjectListDefinition(PlayerStats);
    3535CREATE_FACTORY(PlayerStats);
    3636
  • trunk/src/lib/network/synchronizeable.cc

    r9869 r10114  
    3030
    3131#include "converter.h"
     32
     33#include "synchronizeable_var/synchronizeable_classid.h"
    3234
    3335
     
    5658  /* make sure loadClassId is first synced var because this is read by networkStream */
    5759  assert( syncVarList.size() == 0 );
    58   mLeafClassId = this->registerVarId( new SynchronizeableInt( (int*)&this->getLeafClassID(), (int*)&this->getLeafClassID(), "leafClassId", PERMISSION_MASTER_SERVER) );
     60  assert( this->getClassID() == this->objectList().id() );
     61 
     62  mLeafClassId = this->registerVarId( new SynchronizeableClassID( this, "leafClassId", PERMISSION_MASTER_SERVER) );
    5963
    6064  this->registerVar( new SynchronizeableInt( &this->owner, &this->owner, "owner", PERMISSION_MASTER_SERVER ) );
     
    267271//       PRINTF(0)("sending %s %d\n", (*it)->getName().c_str(), n);
    268272
    269 //       if( this->isA(CL_PLAYABLE))
     273//       if( this->isA( Playable::staticClassID() ))
    270274//       {
    271275//         PRINTF(0)("ms: %i, ps: %i, c: %i, sender: %i, reciever: %i, owner: %i, perm: (ow %i, ms %i, s %i, a %i)\n",
     
    453457      //(*it)->debug();
    454458
    455 //       if( this->isA(CL_PLAYABLE))
     459//       if( this->isA(Playable::staticClassID()))
    456460//       {
    457461//         PRINTF(0)("ms: %i, ps: %i, c: %i, sender: %i, reciever: %i, owner: %i, perm: (ow %i, ms %i, s %i, a %i)\n",
  • trunk/src/lib/physics/fields/gravity.cc

    r9869 r10114  
    2121#include "util/loading/factory.h"
    2222
    23 #include "class_id_DEPRECATED.h"
    24 ObjectListDefinitionID(Gravity, CL_FIELD_GRAVITY);
     23
     24ObjectListDefinition(Gravity);
    2525
    2626CREATE_FACTORY(Gravity);
  • trunk/src/lib/physics/fields/point_gravity.cc

    r9869 r10114  
    2020
    2121
    22 #include "class_id_DEPRECATED.h"
    23 ObjectListDefinitionID(PointGravity, CL_FIELD_POINT_GRAVITY);
     22
     23ObjectListDefinition(PointGravity);
    2424
    2525
  • trunk/src/lib/physics/fields/twirl.cc

    r9869 r10114  
    2020
    2121
    22 #include "class_id_DEPRECATED.h"
    23 ObjectListDefinitionID(Twirl, CL_FIELD_TWIRL);
     22
     23ObjectListDefinition(Twirl);
    2424
    2525
  • trunk/src/lib/physics/physics_connection.cc

    r9869 r10114  
    2828#include "util/loading/load_param.h"
    2929
    30 #include "class_id_DEPRECATED.h"
     30
    3131ObjectListDefinition(PhysicsConnection);
    3232CREATE_FACTORY(PhysicsConnection);
Note: See TracChangeset for help on using the changeset viewer.