Actually look in the right place for subscriptions.
This commit is contained in:
@@ -218,6 +218,12 @@ void MessageManager::Broadcast( MessageID m ) const
|
|||||||
Broadcast( MessageIDToString(m) );
|
Broadcast( MessageIDToString(m) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool MessageManager::IsSubscribedToMessage( IMessageSubscriber* pSubscriber, const RString &sMessage ) const
|
||||||
|
{
|
||||||
|
SubscribersSet& subs = g_MessageToSubscribers[sMessage];
|
||||||
|
return subs.find( pSubscriber ) != subs.end();
|
||||||
|
}
|
||||||
|
|
||||||
void IMessageSubscriber::ClearMessages( const RString sMessage )
|
void IMessageSubscriber::ClearMessages( const RString sMessage )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -159,8 +159,6 @@ public:
|
|||||||
//
|
//
|
||||||
void SubscribeToMessage( MessageID message ); // will automatically unsubscribe
|
void SubscribeToMessage( MessageID message ); // will automatically unsubscribe
|
||||||
void SubscribeToMessage( const RString &sMessageName ); // will automatically unsubscribe
|
void SubscribeToMessage( const RString &sMessageName ); // will automatically unsubscribe
|
||||||
inline bool IsSubscribedToMessage( const RString &sMessageName ) const { return find( m_vsSubscribedTo.begin(), m_vsSubscribedTo.end(), sMessageName ) != m_vsSubscribedTo.end(); }
|
|
||||||
inline bool IsSubscribedToMessage( MessageID message ) const { return IsSubscribedToMessage( MessageIDToString(message) ); }
|
|
||||||
|
|
||||||
void UnsubscribeAll();
|
void UnsubscribeAll();
|
||||||
|
|
||||||
@@ -182,6 +180,8 @@ public:
|
|||||||
void Broadcast( Message &msg ) const;
|
void Broadcast( Message &msg ) const;
|
||||||
void Broadcast( const RString& sMessage ) const;
|
void Broadcast( const RString& sMessage ) const;
|
||||||
void Broadcast( MessageID m ) const;
|
void Broadcast( MessageID m ) const;
|
||||||
|
bool IsSubscribedToMessage( IMessageSubscriber* pSubscriber, const RString &sMessage ) const;
|
||||||
|
inline bool IsSubscribedToMessage( IMessageSubscriber* pSubscriber, MessageID message ) const { return IsSubscribedToMessage( pSubscriber, MessageIDToString(message) ); }
|
||||||
|
|
||||||
// Lua
|
// Lua
|
||||||
void PushSelf( lua_State *L );
|
void PushSelf( lua_State *L );
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ void ScreenSelect::Init()
|
|||||||
for( unsigned i = 0; i < m_asSubscribedMessages.size(); ++i )
|
for( unsigned i = 0; i < m_asSubscribedMessages.size(); ++i )
|
||||||
MESSAGEMAN->Subscribe( this, m_asSubscribedMessages[i] );
|
MESSAGEMAN->Subscribe( this, m_asSubscribedMessages[i] );
|
||||||
// Only subscribe once.
|
// Only subscribe once.
|
||||||
if( !this->IsSubscribedToMessage(Message_PlayerJoined) )
|
if( !MESSAGEMAN->IsSubscribedToMessage(this, Message_PlayerJoined) )
|
||||||
this->SubscribeToMessage( Message_PlayerJoined );
|
this->SubscribeToMessage( Message_PlayerJoined );
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
Reference in New Issue
Block a user