diff options
Diffstat (limited to 'src/Server.cpp')
-rw-r--r-- | src/Server.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/Server.cpp b/src/Server.cpp index 89dccb1f1..6ddb14ae5 100644 --- a/src/Server.cpp +++ b/src/Server.cpp @@ -498,20 +498,26 @@ void cServer::ExecuteConsoleCommand(const AString & a_Cmd, cCommandOutputCallbac } if (split[0] == "destroyentities") { - cRoot::Get()->ForEachWorld([](cWorld & a_World) + class WorldCallback : public cWorldListCallback + { + virtual bool Item(cWorld * a_World) override { - a_World.ForEachEntity([](cEntity & a_Entity) + class EntityCallback : public cEntityCallback + { + virtual bool Item(cEntity * a_Entity) override { - if (!a_Entity.IsPlayer()) + if (!a_Entity->IsPlayer()) { - a_Entity.Destroy(); + a_Entity->Destroy(); } return false; } - ); + } EC; + a_World->ForEachEntity(EC); return false; } - ); + } WC; + cRoot::Get()->ForEachWorld(WC); a_Output.Out("Destroyed all entities"); a_Output.Finished(); return; |