From 9f1d1c058fa5fe415a264be710d774dc37e12f5e Mon Sep 17 00:00:00 2001 From: Hax52 Date: Mon, 22 Jun 2015 21:00:15 -0500 Subject: Buttons no longer click on when already on. Buttons now play sound when clicking off. --- src/World.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/World.h') diff --git a/src/World.h b/src/World.h index 064b50165..2ea89f338 100644 --- a/src/World.h +++ b/src/World.h @@ -103,8 +103,12 @@ public: class cTask { public: + cTask(const cTask & other) = default; virtual ~cTask() {} virtual void Run(cWorld & a_World) = 0; + + protected: + cTask() {} } ; typedef SharedPtr cTaskPtr; @@ -142,6 +146,21 @@ public: std::vector m_SendQueue; }; + class cTaskLambda : + public cTask + { + + public: + cTaskLambda(std::function a_Func) : + m_func(a_Func) + { } + + protected: + virtual void Run(cWorld & a_World) override; + + std::function m_func; + }; + static const char * GetClassStatic(void) // Needed for ManualBindings's ForEach templates { @@ -705,6 +724,9 @@ public: /** Queues a task onto the tick thread. The task object will be deleted once the task is finished */ void QueueTask(cTaskPtr a_Task); // Exported in ManualBindings.cpp + /** Queues a lambda task onto the tick thread, with the specified delay. */ + void ScheduleTask(int a_DelayTicks, std::function a_Func); + /** Queues a task onto the tick thread, with the specified delay. */ void ScheduleTask(int a_DelayTicks, cTaskPtr a_Task); -- cgit v1.2.3