Skip to content

Commit 9ea54f9

Browse files
committed
CSE_AlifeOnlineOfflineGroup: switch_online/switch_offline. Verify members are offline before adding online and visa versa. If a specific member is already online (from scripting needs) and add_online is called it will cause crash with duplicate ID error since it net_spawns twice.
1 parent 3724022 commit 9ea54f9

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/xrGame/alife_online_offline_group.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,8 @@ void CSE_ALifeOnlineOfflineGroup::switch_online ()
231231
MEMBERS::iterator I = m_members.begin();
232232
MEMBERS::iterator E = m_members.end();
233233
for ( ; I != E; ++I){
234-
alife().add_online ((*I).second, false);
234+
if ((*I).second->m_bOnline == false)
235+
alife().add_online((*I).second, false);
235236
}
236237

237238
alife().scheduled().remove (this);
@@ -257,8 +258,11 @@ void CSE_ALifeOnlineOfflineGroup::switch_offline ()
257258
MEMBERS::iterator I = m_members.begin();
258259
MEMBERS::iterator E = m_members.end();
259260
for ( ; I != E; ++I){
260-
(*I).second->clear_client_data();
261-
alife().remove_online ((*I).second, false);
261+
if ((*I).second->m_bOnline == true)
262+
{
263+
(*I).second->clear_client_data();
264+
alife().remove_online ((*I).second, false);
265+
}
262266
}
263267

264268
alife().scheduled().add (this);

0 commit comments

Comments
 (0)