From a2a9341c24609e45e563427eecc1a927ee2b657a Mon Sep 17 00:00:00 2001 From: Alexander Harkness Date: Thu, 21 Jul 2016 12:00:30 +0100 Subject: Tab completion across worlds (#3270) Fixes #2563. --- src/Root.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/Root.cpp') diff --git a/src/Root.cpp b/src/Root.cpp index 1eca73cb2..09c91bc72 100644 --- a/src/Root.cpp +++ b/src/Root.cpp @@ -1006,3 +1006,33 @@ int cRoot::GetFurnaceFuelBurnTime(const cItem & a_Fuel) cFurnaceRecipe * FR = Get()->GetFurnaceRecipe(); return FR->GetBurnTime(a_Fuel); } + + + + + +AStringVector cRoot::GetPlayerTabCompletionMultiWorld(const AString & a_Text) +{ + AStringVector Results; + class cWorldCallback : public cWorldListCallback + { + public: + cWorldCallback(AStringVector & a_Results, const AString & a_Search) : + m_Results(a_Results), + m_Search(a_Search) + { + } + + virtual bool Item(cWorld * a_World) override + { + a_World->TabCompleteUserName(m_Search, m_Results); + return true; + } + private: + AStringVector & m_Results; + const AString & m_Search; + } WC(Results, a_Text); + + Get()->ForEachWorld(WC); + return Results; +} -- cgit v1.2.3