projects
/
oweals
/
minetest.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Formspec: make bgcolor element less confusing and allow setting fullscreen color...
[oweals/minetest.git]
/
src
/
event.h
diff --git
a/src/event.h
b/src/event.h
index cfc222d5d26d9b7539dbb928e1124550202ef6e7..149f7eecd906dd40f06f3f1c0064e6f81e4c99db 100644
(file)
--- a/
src/event.h
+++ b/
src/event.h
@@
-17,40
+17,44
@@
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef EVENT_HEADER
-#define EVENT_HEADER
+#pragma once
+
+#include "irrlichttypes.h"
class MtEvent
{
public:
class MtEvent
{
public:
- virtual ~MtEvent(){};
- //virtual MtEvent* clone(){ return new IEvent; }
- virtual const char* getType() const = 0;
-
- MtEvent* checkIs(const std::string &type)
+ enum Type : u8
{
{
- if(type == getType())
- return this;
- return NULL;
- }
+ VIEW_BOBBING_STEP = 0,
+ CAMERA_PUNCH_LEFT,
+ CAMERA_PUNCH_RIGHT,
+ PLAYER_FALLING_DAMAGE,
+ PLAYER_DAMAGE,
+ NODE_DUG,
+ PLAYER_JUMP,
+ PLAYER_REGAIN_GROUND,
+ TYPE_MAX,
+ };
+
+ virtual ~MtEvent() = default;
+ virtual Type getType() const = 0;
};
// An event with no parameters and customizable name
};
// An event with no parameters and customizable name
-class SimpleTriggerEvent: public MtEvent
+class SimpleTriggerEvent
: public MtEvent
{
{
- const char *type;
+ Type type;
+
public:
public:
- SimpleTriggerEvent(const char *type):
- type(type)
- {}
- const char* getType() const
- {return type;}
+ SimpleTriggerEvent(Type type) : type(type) {}
+ Type getType() const override { return type; }
};
class MtEventReceiver
{
public:
};
class MtEventReceiver
{
public:
- virtual ~MtEventReceiver()
{}
;
+ virtual ~MtEventReceiver()
= default
;
virtual void onEvent(MtEvent *e) = 0;
};
virtual void onEvent(MtEvent *e) = 0;
};
@@
-59,14
+63,9
@@
typedef void (*event_receive_func)(MtEvent *e, void *data);
class MtEventManager
{
public:
class MtEventManager
{
public:
- virtual ~MtEventManager()
{}
;
+ virtual ~MtEventManager()
= default
;
virtual void put(MtEvent *e) = 0;
virtual void put(MtEvent *e) = 0;
- virtual void reg(
const char *
type, event_receive_func f, void *data) = 0;
+ virtual void reg(
MtEvent::Type
type, event_receive_func f, void *data) = 0;
// If data==NULL, every occurence of f is deregistered.
// If data==NULL, every occurence of f is deregistered.
- virtual void dereg(const char *type, event_receive_func f, void *data) = 0;
- virtual void reg(MtEventReceiver *r, const char *type) = 0;
- virtual void dereg(MtEventReceiver *r, const char *type) = 0;
+ virtual void dereg(MtEvent::Type type, event_receive_func f, void *data) = 0;
};
};
-
-#endif
-