diff --git a/doomsday/server/src/serversystem.cpp b/doomsday/server/src/serversystem.cpp index 6350ddaad9..5f839617b1 100644 --- a/doomsday/server/src/serversystem.cpp +++ b/doomsday/server/src/serversystem.cpp @@ -89,6 +89,9 @@ DENG2_PIMPL(ServerSystem) // Update the beacon with the new port. beacon.start(port); + + App_World().audienceForMapChange += shellUsers; + return true; } @@ -104,6 +107,8 @@ DENG2_PIMPL(ServerSystem) void deinit() { + App_World().audienceForMapChange -= shellUsers; + beacon.stop(); // Close the listening socket. diff --git a/doomsday/server/src/shellusers.cpp b/doomsday/server/src/shellusers.cpp index ab4381f5f8..605177782a 100644 --- a/doomsday/server/src/shellusers.cpp +++ b/doomsday/server/src/shellusers.cpp @@ -42,8 +42,6 @@ DENG2_PIMPL_NOREF(ShellUsers) ShellUsers::ShellUsers() : d(new Instance) { - App_World().audienceForMapChange += this; - // Player information is sent periodically to all shell users. connect(d->infoTimer, SIGNAL(timeout()), this, SLOT(sendPlayerInfoToAll())); d->infoTimer->start(); @@ -53,8 +51,6 @@ ShellUsers::~ShellUsers() { d->infoTimer->stop(); - App_World().audienceForMapChange -= this; - foreach(ShellUser *user, d->users) { delete user;