feat: improved networkdata enum integration
This commit is contained in:
parent
dfe8cc9fcf
commit
855970b4e5
2 changed files with 31 additions and 26 deletions
|
|
@ -3,9 +3,6 @@
|
|||
#include <core/core_bind.h>
|
||||
#include <core/object/class_db.h>
|
||||
|
||||
MAKE_TYPE_INFO(NetworkData::ClueID, Variant::INT);
|
||||
MAKE_TYPE_INFO(NetworkData::ConnectionStatus, Variant::INT);
|
||||
|
||||
void NetworkData::_bind_methods() {
|
||||
BIND_ENUM_CONSTANT(CLUE_FIRST);
|
||||
BIND_ENUM_CONSTANT(CLUE_SECOND);
|
||||
|
|
|
|||
|
|
@ -8,36 +8,41 @@
|
|||
#include <zmq.hpp>
|
||||
#include <zmq_addon.hpp>
|
||||
|
||||
#define __VA_ARGS__STRING(...) String(#__VA_ARGS__)
|
||||
|
||||
#define GDENUM(M_Name, ...) \
|
||||
enum M_Name { __VA_ARGS__ }; \
|
||||
static String M_Name##_hint() { \
|
||||
return __VA_ARGS__STRING(__VA_ARGS__); \
|
||||
}
|
||||
|
||||
class NetworkData : Object {
|
||||
GDCLASS(NetworkData, Object);
|
||||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
enum MessageType {
|
||||
MSG_NONE = 0u,
|
||||
// connection management messages
|
||||
MSG_CONNECT = 1u,
|
||||
MSG_OK,
|
||||
MSG_NOK,
|
||||
MSG_HEART,
|
||||
MSG_BEAT,
|
||||
// gameplay messages
|
||||
MSG_REVEAL,
|
||||
// end of messages
|
||||
MSG_INVALID
|
||||
};
|
||||
GDENUM(MessageType,
|
||||
MSG_NONE,
|
||||
// connection management messages
|
||||
MSG_CONNECT,
|
||||
MSG_OK,
|
||||
MSG_NOK,
|
||||
MSG_HEART,
|
||||
MSG_BEAT,
|
||||
// gameplay messages
|
||||
MSG_REVEAL,
|
||||
// end of messages
|
||||
MSG_INVALID);
|
||||
|
||||
enum ClueID {
|
||||
CLUE_FIRST,
|
||||
CLUE_SECOND,
|
||||
CLUE_MAX
|
||||
};
|
||||
GDENUM(ClueID,
|
||||
CLUE_FIRST,
|
||||
CLUE_SECOND,
|
||||
CLUE_MAX);
|
||||
|
||||
enum ConnectionStatus {
|
||||
CONNECTION_DISCONNECTED,
|
||||
CONNECTION_CONNECTED,
|
||||
CONNECTION_AUTHENTICATED
|
||||
};
|
||||
GDENUM(ConnectionStatus,
|
||||
CONNECTION_DISCONNECTED,
|
||||
CONNECTION_CONNECTED,
|
||||
CONNECTION_AUTHENTICATED);
|
||||
|
||||
enum NOKReason {
|
||||
NOK_UNAUTHENTICATED, //!< message sender is not known by recipient.
|
||||
|
|
@ -48,6 +53,9 @@ public:
|
|||
};
|
||||
};
|
||||
|
||||
MAKE_TYPE_INFO(NetworkData::ClueID, Variant::INT);
|
||||
MAKE_TYPE_INFO(NetworkData::ConnectionStatus, Variant::INT);
|
||||
|
||||
namespace ydi {
|
||||
int to_int(zmq::message_t const &msg, int failure = 0);
|
||||
NetworkData::MessageType to_message_type(zmq::message_t const &msg);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue