~vitty/armagetronad/trunk-armagetronad-breakpad

« back to all changes in this revision

Viewing changes to src/network/nProtoBuf.h

  • Committer: Manuel Moos
  • Date: 2010-02-04 20:51:47 UTC
  • Revision ID: z-man@users.sf.net-20100204205147-4e0wda7jksycebj8
Distinguishing between incoming synchs and new object creations. Ignore syncs for unknown objects.

Show diffs side-by-side

added added

removed removed

Lines of Context:
482
482
    static nMessageStreamer * SyncStreamer();
483
483
 
484
484
protected:
 
485
    // fetches the network object part from a creation/sync message
 
486
    template< class PROTOBUF >
 
487
    static Network::NetObjectSync const & GetNetObjectSync( PROTOBUF const & message )
 
488
    {
 
489
        tASSERT( message.has_base() );
 
490
        return GetNetObjectSync( message.base() );
 
491
    }
 
492
 
 
493
    static Network::NetObjectSync const & GetNetObjectSync ( Network::NetObjectSync const & message );
 
494
 
485
495
    // fetches the network object ID from a creation message
486
496
    template< class PROTOBUF >
487
497
    static unsigned int GetObjectID( PROTOBUF const & message )
488
498
    {
489
 
        tASSERT( message.has_base() );
490
 
        return GetObjectID( message.base() );
 
499
        return GetObjectID( GetNetObjectSync( message ) );
491
500
    }
492
501
 
493
 
    static unsigned int GetObjectID ( Network::NetObjectSync const & message );
 
502
    static unsigned int GetObjectID( Network::NetObjectSync const & message );
494
503
 
495
504
    //! checks to run before creating a new object
496
 
    static bool PreCheck( unsigned short id, nSenderInfo sender );
 
505
    static bool PreCheck( Network::NetObjectSync const & sync, nSenderInfo sender );
497
506
 
498
507
    //! checks to run after creating a new object
499
508
    static void PostCheck( nNetObject * object, nSenderInfo sender );
751
760
 
752
761
    static void HandleCreation( PROTOBUF const & message, nSenderInfo const & sender )
753
762
    {
754
 
        unsigned short id = GetObjectID( message );
755
 
 
756
 
        if( PreCheck( id, sender ) )
 
763
        if( PreCheck( GetNetObjectSync( message ), sender ) )
757
764
        {
758
765
            nNetObjectRegistrar registrar;
759
766
            tJUST_CONTROLLED_PTR< OBJECT > n=tNEW(OBJECT)( message, sender );