Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Sep 26, 2008, 12:59:48 AM (16 years ago)
Author:
scheusso
Message:

Fix in Projectiles (network fix)
different improvements in synchronisable and gamestates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/network/src/network/Synchronisable.cc

    r1827 r1834  
    6565    RegisterRootObject(Synchronisable);
    6666    static unsigned int idCounter=0;
    67     datasize=0;
    6867    objectFrequency_=1;
    69     objectMode_=0x1; // by default do not send data to servere
     68    objectMode_=0x1; // by default do not send data to server
    7069    objectID=idCounter++;
     70//     COUT(3) << " bump +++" << objectID << " | " << &objectMap_ << std::endl;
    7171    syncList = new std::list<synchronisableVariable *>;
    7272  }
     
    8181      for(std::list<synchronisableVariable *>::iterator it = syncList->begin(); it!=syncList->end(); it++)
    8282        delete (*it)->callback;
    83       assert(objectMap_[objectID]->objectID==objectID);
    84       objectMap_.erase(objectID);
     83//       COUT(3) << " bump ---" << objectID << " | " << &objectMap_ << std::endl;
     84//       assert(objectMap_[objectID]->objectID==objectID);
     85//       objectMap_.erase(objectID);
    8586    }
    8687  }
     
    9293   */
    9394  bool Synchronisable::create(){
    94     objectMap_[objectID]=this;
    95     assert(objectMap_[objectID]==this);
    9695    this->classID = this->getIdentifier()->getNetworkID();
    9796    COUT(4) << "creating synchronisable: setting classid from " << this->getIdentifier()->getName() << " to: " << classID << std::endl;
     97   
     98//     objectMap_[objectID]=this;
     99//     assert(objectMap_[objectID]==this);
     100//     assert(objectMap_[objectID]->objectID==objectID);
    98101    return true;
    99102  }
     
    145148    assert(getSynchronisable(objectID));
    146149    assert(getSynchronisable(objectID)->objectID==objectID);
    147     delete objectMap_[objectID];
     150//     delete objectMap_[objectID];
     151    Synchronisable *s = getSynchronisable(objectID);
     152    if(s)
     153      delete s;
     154    else
     155      return false;
    148156    return true;
    149157  }
     
    155163   */
    156164  Synchronisable* Synchronisable::getSynchronisable(unsigned int objectID){
    157     std::map<unsigned int, Synchronisable *>::iterator i = objectMap_.find(objectID);
    158     if(i==objectMap_.end())
    159       return NULL;
    160     assert(i->second->objectID==objectID);
    161     return (*i).second;
     165    orxonox::ObjectList<Synchronisable>::iterator it;
     166    for(it = orxonox::ObjectList<Synchronisable>::begin(); it; ++it){
     167      if( it->getObjectID()==objectID )
     168           return *it;
     169    }
     170    return NULL;
     171
     172//     std::map<unsigned int, Synchronisable *>::iterator i = objectMap_.find(objectID);
     173//     if(i==objectMap_.end())
     174//       return NULL;
     175//     assert(i->second->objectID==objectID);
     176//     return (*i).second;
    162177  }
    163178
     
    181196    temp->callback = cb;
    182197    COUT(5) << "Syncronisable::registering var with size: " << temp->size << " and type: " << temp->type << std::endl;
    183     // increase datasize
    184     datasize+=sizeof(int)+size;
    185198    //std::cout << "push temp to syncList (at the bottom) " << datasize << std::endl;
    186199    COUT(5) << "Syncronisable::objectID: " << objectID << " this: " << this << " name: " << this->getIdentifier()->getName() << " networkID: " << this->getIdentifier()->getNetworkID() << std::endl;
Note: See TracChangeset for help on using the changeset viewer.