summaryrefslogtreecommitdiffstats
path: root/src/UI
diff options
context:
space:
mode:
authorLogicParrot <LogicParrot@users.noreply.github.com>2017-09-02 12:35:22 +0200
committerLogicParrot <LogicParrot@users.noreply.github.com>2017-09-02 12:35:22 +0200
commit07a5bf0984559d04fce1091b82b0952217ac64cc (patch)
tree0d1eee372a782213c9e2b84deaefe717b379a04b /src/UI
parentSkeletons (diff)
parentRevert "Replace ItemCallbacks with lambdas (#3948)" (diff)
downloadcuberite-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.cpp14
-rw-r--r--src/UI/Window.h10
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;