Added a 'quiet' version of SetOwner() that doesn't send a message, to allow faux-atomic batch ownership changes.

This was SVN commit r12315.
This commit is contained in:
Deiz 2012-08-08 05:18:20 +00:00
parent 28333ba92e
commit 791752c7a4
3 changed files with 10 additions and 0 deletions

View File

@ -93,6 +93,12 @@ public:
CMessageOwnershipChanged msg(GetEntityId(), old, playerID);
GetSimContext().GetComponentManager().PostMessage(GetEntityId(), msg);
}
virtual void SetOwnerQuiet(player_id_t playerID)
{
if (playerID != m_Owner)
m_Owner = playerID;
}
};
REGISTER_COMPONENT_TYPE(Ownership)

View File

@ -24,4 +24,5 @@
BEGIN_INTERFACE_WRAPPER(Ownership)
DEFINE_INTERFACE_METHOD_0("GetOwner", player_id_t, ICmpOwnership, GetOwner)
DEFINE_INTERFACE_METHOD_1("SetOwner", void, ICmpOwnership, SetOwner, player_id_t)
DEFINE_INTERFACE_METHOD_1("SetOwnerQuiet", void, ICmpOwnership, SetOwnerQuiet, player_id_t)
END_INTERFACE_WRAPPER(Ownership)

View File

@ -33,6 +33,9 @@ public:
virtual void SetOwner(player_id_t playerID) = 0;
// Operates identically to SetOwner() but does not send a message.
virtual void SetOwnerQuiet(player_id_t playerID) = 0;
DECLARE_INTERFACE_TYPE(Ownership)
};