mirror of
https://github.com/HikikoMarmy/Champions-Reborn-Server.git
synced 2026-04-05 08:59:54 -03:00
Remove member ID as it's not needed.
This commit is contained in:
@@ -8,6 +8,7 @@ GameSession::GameSession( uint32_t index ) : m_gameId( index )
|
|||||||
{
|
{
|
||||||
m_members.fill( std::weak_ptr< RealmUser >() );
|
m_members.fill( std::weak_ptr< RealmUser >() );
|
||||||
|
|
||||||
|
m_type = GameType::Public;
|
||||||
m_state = GameState::NotReady;
|
m_state = GameState::NotReady;
|
||||||
m_currentPlayers = 0;
|
m_currentPlayers = 0;
|
||||||
m_maximumPlayers = 4;
|
m_maximumPlayers = 4;
|
||||||
@@ -19,6 +20,7 @@ GameSession::GameSession( uint32_t index ) : m_gameId( index )
|
|||||||
m_networkSave = 0;
|
m_networkSave = 0;
|
||||||
|
|
||||||
m_hostNatPort = 0;
|
m_hostNatPort = 0;
|
||||||
|
m_hostLocalPort = 0;
|
||||||
m_hostLocalAddr.clear();
|
m_hostLocalAddr.clear();
|
||||||
m_hostExternalAddr.clear();
|
m_hostExternalAddr.clear();
|
||||||
m_gameName.clear();
|
m_gameName.clear();
|
||||||
@@ -56,16 +58,13 @@ bool GameSession::IsJoinable( sptr_user user ) const
|
|||||||
{
|
{
|
||||||
if( user )
|
if( user )
|
||||||
{
|
{
|
||||||
if( user->m_memberId >= 0 )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
for( const auto &m : m_members )
|
for( const auto &m : m_members )
|
||||||
{
|
{
|
||||||
if( m.expired() )
|
if( m.expired() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const auto &member = m.lock();
|
const auto &member = m.lock();
|
||||||
if( member->m_sessionId == user->m_sessionId )
|
if( member == user )
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -129,8 +128,7 @@ std::vector<sptr_user> GameSession::GetMembers() const
|
|||||||
|
|
||||||
bool GameSession::AddMember( sptr_user user )
|
bool GameSession::AddMember( sptr_user user )
|
||||||
{
|
{
|
||||||
if( !user || user->m_memberId >= 0 )
|
if( !user ) return false;
|
||||||
return false;
|
|
||||||
|
|
||||||
int8_t freeIndex = -1;
|
int8_t freeIndex = -1;
|
||||||
|
|
||||||
@@ -155,7 +153,6 @@ bool GameSession::AddMember( sptr_user user )
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
user->m_memberId = freeIndex;
|
|
||||||
user->m_gameId = m_gameId;
|
user->m_gameId = m_gameId;
|
||||||
|
|
||||||
m_members[ freeIndex ] = user;
|
m_members[ freeIndex ] = user;
|
||||||
@@ -169,27 +166,22 @@ bool GameSession::AddMember( sptr_user user )
|
|||||||
|
|
||||||
bool GameSession::RemoveMember( sptr_user user )
|
bool GameSession::RemoveMember( sptr_user user )
|
||||||
{
|
{
|
||||||
if( !user || user->m_memberId < 0 || user->m_memberId >= static_cast< int8_t >( m_members.size() ) )
|
if( !user ) return false;
|
||||||
return false;
|
|
||||||
|
|
||||||
int8_t index = static_cast< int8_t >( user->m_memberId );
|
for( int8_t i = 0; i < static_cast< int8_t >( m_members.size() ); ++i )
|
||||||
auto memberPtr = m_members[ index ].lock();
|
|
||||||
|
|
||||||
if( !memberPtr || memberPtr->m_sessionId != user->m_sessionId )
|
|
||||||
{
|
{
|
||||||
Log::Error( "User [{}] not found in game session [{}] at index {}",
|
auto memberPtr = m_members[ i ].lock();
|
||||||
user->m_username, m_gameName, index );
|
if( memberPtr && memberPtr == user )
|
||||||
return false;
|
{
|
||||||
|
user->m_gameId = -1;
|
||||||
|
m_members[ i ].reset();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
user->m_memberId = -1;
|
|
||||||
user->m_gameId = -1;
|
|
||||||
|
|
||||||
m_members[ index ].reset();
|
|
||||||
m_currentPlayers--;
|
m_currentPlayers--;
|
||||||
|
|
||||||
Log::Info( "Removed user [{}] from game session [{}] at index {}",
|
Log::Info( "Removed user [{}] from game session [{}]", user->m_username, m_gameName );
|
||||||
user->m_username, m_gameName, index );
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -302,8 +302,6 @@ bool GameSessionManager::RequestJoin( sptr_user join_user )
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
join_user->m_isHost = false;
|
|
||||||
|
|
||||||
if( host_user->m_gameType == RealmGameType::CHAMPIONS_OF_NORRATH )
|
if( host_user->m_gameType == RealmGameType::CHAMPIONS_OF_NORRATH )
|
||||||
{
|
{
|
||||||
ProcessJoinNorrath( join_user, host_user );
|
ProcessJoinNorrath( join_user, host_user );
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ RealmUser::RealmUser()
|
|||||||
|
|
||||||
m_isLoggedIn = false;
|
m_isLoggedIn = false;
|
||||||
m_isHost = false;
|
m_isHost = false;
|
||||||
m_memberId = -1;
|
|
||||||
m_gameId = -1;
|
m_gameId = -1;
|
||||||
m_publicRoomId = -1;
|
m_publicRoomId = -1;
|
||||||
m_privateRoomId = -1;
|
m_privateRoomId = -1;
|
||||||
@@ -45,7 +44,6 @@ RealmUser::~RealmUser()
|
|||||||
|
|
||||||
m_isLoggedIn = false;
|
m_isLoggedIn = false;
|
||||||
m_isHost = false;
|
m_isHost = false;
|
||||||
m_memberId = 0;
|
|
||||||
m_gameId = 0;
|
m_gameId = 0;
|
||||||
m_publicRoomId = -1;
|
m_publicRoomId = -1;
|
||||||
m_privateRoomId = -1;
|
m_privateRoomId = -1;
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ public:
|
|||||||
|
|
||||||
bool m_isLoggedIn; // True if the user has successfully authenticated and logged in
|
bool m_isLoggedIn; // True if the user has successfully authenticated and logged in
|
||||||
bool m_isHost; // True if this user is the host of a realm
|
bool m_isHost; // True if this user is the host of a realm
|
||||||
int8_t m_memberId;
|
|
||||||
int32_t m_gameId; // Unique ID of the realm
|
int32_t m_gameId; // Unique ID of the realm
|
||||||
|
|
||||||
int32_t m_publicRoomId; // Used for public chat rooms
|
int32_t m_publicRoomId; // Used for public chat rooms
|
||||||
|
|||||||
Reference in New Issue
Block a user