Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Aug 30, 2015, 1:36:54 PM (9 years ago)
Author:
landauf
Message:

bugfix: after receiving a ClassID packet, the client erases the list of network ids (IdentifierManager::clearNetworkIDs()). afterwards, each Identifier gets its new NetworkID. therefore it's not necessary to call removeIdentifier() - in fact, this led to errors because wrong identifiers were removed (if a another identifier received the same network id from the server already before)

Location:
code/branches/core7/src/libraries
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/branches/core7/src/libraries/core/class/Identifier.cc

    r10526 r10564  
    126126    void Identifier::setNetworkID(uint32_t id)
    127127    {
    128         IdentifierManager::getInstance().removeIdentifier(this); // remove with old id
    129128        this->networkID_ = id;
    130129        IdentifierManager::getInstance().addIdentifier(this);    // add with new id
  • code/branches/core7/src/libraries/network/synchronisable/Synchronisable.cc

    r10562 r10564  
    151151        for(int i = 0; i<160; i++)
    152152            orxout(user_error, context::network) << "classid: " << i << " identifier: " << ClassByID(i) << endl;
    153         orxout(user_error, context::network) << "Assertion failed: id" << endl;
     153        orxout(user_error, context::network) << "Assertion failed: Could not find Identifier for ClassID " << header.getClassID() << endl;
    154154        orxout(user_error, context::network) << "Possible reason for this error: Client received a synchronizable object whose class has no factory." << endl;
    155155        abort();
Note: See TracChangeset for help on using the changeset viewer.