diff options
author | LogicParrot <LogicParrot@users.noreply.github.com> | 2017-09-02 12:35:22 +0200 |
---|---|---|
committer | LogicParrot <LogicParrot@users.noreply.github.com> | 2017-09-02 12:35:22 +0200 |
commit | 07a5bf0984559d04fce1091b82b0952217ac64cc (patch) | |
tree | 0d1eee372a782213c9e2b84deaefe717b379a04b /src/UI | |
parent | Skeletons (diff) | |
parent | Revert "Replace ItemCallbacks with lambdas (#3948)" (diff) | |
download | cuberite-07a5bf0984559d04fce1091b82b0952217ac64cc.tar cuberite-07a5bf0984559d04fce1091b82b0952217ac64cc.tar.gz cuberite-07a5bf0984559d04fce1091b82b0952217ac64cc.tar.bz2 cuberite-07a5bf0984559d04fce1091b82b0952217ac64cc.tar.lz cuberite-07a5bf0984559d04fce1091b82b0952217ac64cc.tar.xz cuberite-07a5bf0984559d04fce1091b82b0952217ac64cc.tar.zst cuberite-07a5bf0984559d04fce1091b82b0952217ac64cc.zip |
Diffstat (limited to '')
-rw-r--r-- | src/UI/Window.cpp | 14 | ||||
-rw-r--r-- | src/UI/Window.h | 10 |
2 files changed, 11 insertions, 13 deletions
diff --git a/src/UI/Window.cpp b/src/UI/Window.cpp index 9fbc4d988..8bbc4f482 100644 --- a/src/UI/Window.cpp +++ b/src/UI/Window.cpp @@ -1,4 +1,4 @@ -#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules +#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules #include "Window.h" #include "WindowOwner.h" @@ -362,12 +362,12 @@ void cWindow::OwnerDestroyed() -bool cWindow::ForEachPlayer(const cPlayerListCallback & a_Callback) +bool cWindow::ForEachPlayer(cItemCallback<cPlayer> & a_Callback) { cCSLock Lock(m_CS); - for (auto & Player : m_OpenedBy) + for (cPlayerList::iterator itr = m_OpenedBy.begin(), end = m_OpenedBy.end(); itr != end; ++itr) { - if (a_Callback(*Player)) + if (a_Callback.Item(*itr)) { return false; } @@ -379,12 +379,12 @@ bool cWindow::ForEachPlayer(const cPlayerListCallback & a_Callback) -bool cWindow::ForEachClient(cClientHandleCallback & a_Callback) +bool cWindow::ForEachClient(cItemCallback<cClientHandle> & a_Callback) { cCSLock Lock(m_CS); - for (auto & Player : m_OpenedBy) + for (cPlayerList::iterator itr = m_OpenedBy.begin(), end = m_OpenedBy.end(); itr != end; ++itr) { - if (a_Callback(*Player->GetClientHandle())) + if (a_Callback.Item((*itr)->GetClientHandle())) { return false; } diff --git a/src/UI/Window.h b/src/UI/Window.h index f2023c731..d7a29dc47 100644 --- a/src/UI/Window.h +++ b/src/UI/Window.h @@ -1,4 +1,4 @@ - + // Window.h // Interfaces to the cWindow class representing a UI window for a specific block @@ -9,7 +9,6 @@ #pragma once -#include <functional> #include "../ItemGrid.h" @@ -32,8 +31,7 @@ class cWorld; typedef std::list<cPlayer *> cPlayerList; typedef std::vector<cSlotArea *> cSlotAreas; -using cPlayerListCallback = std::function<bool(cPlayer &)>; -using cClientHandleCallback = std::function<bool(cClientHandle &)>; + @@ -153,10 +151,10 @@ public: void OwnerDestroyed(void); /** Calls the callback safely for each player that has this window open; returns true if all players have been enumerated */ - bool ForEachPlayer(const cPlayerListCallback & a_Callback); + bool ForEachPlayer(cItemCallback<cPlayer> & a_Callback); /** Calls the callback safely for each client that has this window open; returns true if all clients have been enumerated */ - bool ForEachClient(cClientHandleCallback & a_Callback); + bool ForEachClient(cItemCallback<cClientHandle> & a_Callback); /** Called on shift-clicking to distribute the stack into other areas; Modifies a_ItemStack as it is distributed! if a_ShouldApply is true, the changes are written into the slots; |