mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2025-07-02 15:55:30 +00:00
Fixed A lot of stuff + removed color system
This commit is contained in:
parent
12fc4dfadf
commit
ea3d6204d3
@ -1,11 +1,11 @@
|
|||||||
cmake_minimum_required(VERSION 3.10)
|
cmake_minimum_required(VERSION 3.15)
|
||||||
project(BeamNG-MP-Server)
|
project(BeamNG-MP-Server)
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 14)
|
set(CMAKE_CXX_STANDARD 14)
|
||||||
|
|
||||||
add_executable(cmake-main src/main.cpp src/network.cpp src/logger.cpp src/config.cpp)
|
add_executable(cmake-main src/main.cpp src/network.cpp src/logger.cpp src/config.cpp)
|
||||||
ADD_LIBRARY(
|
ADD_LIBRARY(
|
||||||
enet STATIC
|
enet STATIC
|
||||||
enet.lib
|
enet.lib
|
||||||
)
|
)
|
||||||
set_target_properties(enet PROPERTIES LINKER_LANGUAGE CXX)
|
set_target_properties(enet PROPERTIES LINKER_LANGUAGE CXX)
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Created by Anonymous275 on 1/28/2020.
|
// Created by Anonymous275 on 1/28/2020.
|
||||||
//
|
//
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
/**
|
/**
|
||||||
@file callbacks.h
|
@file callbacks.h
|
||||||
@brief ENet callbacks
|
@brief ENet callbacks
|
||||||
*/
|
*/
|
||||||
#ifndef __ENET_CALLBACKS_H__
|
#ifndef __ENET_CALLBACKS_H__
|
||||||
#define __ENET_CALLBACKS_H__
|
#define __ENET_CALLBACKS_H__
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
typedef struct _ENetCallbacks
|
typedef struct _ENetCallbacks
|
||||||
{
|
{
|
||||||
void * (ENET_CALLBACK * malloc) (size_t size);
|
void * (ENET_CALLBACK * malloc) (size_t size);
|
||||||
void (ENET_CALLBACK * free) (void * memory);
|
void (ENET_CALLBACK * free) (void * memory);
|
||||||
void (ENET_CALLBACK * no_memory) (void);
|
void (ENET_CALLBACK * no_memory) (void);
|
||||||
} ENetCallbacks;
|
} ENetCallbacks;
|
||||||
|
|
||||||
/** @defgroup callbacks ENet internal callbacks
|
/** @defgroup callbacks ENet internal callbacks
|
||||||
@{
|
@{
|
||||||
@ingroup private
|
@ingroup private
|
||||||
*/
|
*/
|
||||||
extern void * enet_malloc (size_t);
|
extern void * enet_malloc (size_t);
|
||||||
extern void enet_free (void *);
|
extern void enet_free (void *);
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
#endif /* __ENET_CALLBACKS_H__ */
|
#endif /* __ENET_CALLBACKS_H__ */
|
||||||
|
|
||||||
|
1214
src/enet/enet.h
1214
src/enet/enet.h
File diff suppressed because it is too large
Load Diff
@ -1,43 +1,43 @@
|
|||||||
/**
|
/**
|
||||||
@file list.h
|
@file list.h
|
||||||
@brief ENet list management
|
@brief ENet list management
|
||||||
*/
|
*/
|
||||||
#ifndef __ENET_LIST_H__
|
#ifndef __ENET_LIST_H__
|
||||||
#define __ENET_LIST_H__
|
#define __ENET_LIST_H__
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
typedef struct _ENetListNode
|
typedef struct _ENetListNode
|
||||||
{
|
{
|
||||||
struct _ENetListNode * next;
|
struct _ENetListNode * next;
|
||||||
struct _ENetListNode * previous;
|
struct _ENetListNode * previous;
|
||||||
} ENetListNode;
|
} ENetListNode;
|
||||||
|
|
||||||
typedef ENetListNode * ENetListIterator;
|
typedef ENetListNode * ENetListIterator;
|
||||||
|
|
||||||
typedef struct _ENetList
|
typedef struct _ENetList
|
||||||
{
|
{
|
||||||
ENetListNode sentinel;
|
ENetListNode sentinel;
|
||||||
} ENetList;
|
} ENetList;
|
||||||
|
|
||||||
extern void enet_list_clear (ENetList *);
|
extern void enet_list_clear (ENetList *);
|
||||||
|
|
||||||
extern ENetListIterator enet_list_insert (ENetListIterator, void *);
|
extern ENetListIterator enet_list_insert (ENetListIterator, void *);
|
||||||
extern void * enet_list_remove (ENetListIterator);
|
extern void * enet_list_remove (ENetListIterator);
|
||||||
extern ENetListIterator enet_list_move (ENetListIterator, void *, void *);
|
extern ENetListIterator enet_list_move (ENetListIterator, void *, void *);
|
||||||
|
|
||||||
extern size_t enet_list_size (ENetList *);
|
extern size_t enet_list_size (ENetList *);
|
||||||
|
|
||||||
#define enet_list_begin(list) ((list) -> sentinel.next)
|
#define enet_list_begin(list) ((list) -> sentinel.next)
|
||||||
#define enet_list_end(list) (& (list) -> sentinel)
|
#define enet_list_end(list) (& (list) -> sentinel)
|
||||||
|
|
||||||
#define enet_list_empty(list) (enet_list_begin (list) == enet_list_end (list))
|
#define enet_list_empty(list) (enet_list_begin (list) == enet_list_end (list))
|
||||||
|
|
||||||
#define enet_list_next(iterator) ((iterator) -> next)
|
#define enet_list_next(iterator) ((iterator) -> next)
|
||||||
#define enet_list_previous(iterator) ((iterator) -> previous)
|
#define enet_list_previous(iterator) ((iterator) -> previous)
|
||||||
|
|
||||||
#define enet_list_front(list) ((void *) (list) -> sentinel.next)
|
#define enet_list_front(list) ((void *) (list) -> sentinel.next)
|
||||||
#define enet_list_back(list) ((void *) (list) -> sentinel.previous)
|
#define enet_list_back(list) ((void *) (list) -> sentinel.previous)
|
||||||
|
|
||||||
#endif /* __ENET_LIST_H__ */
|
#endif /* __ENET_LIST_H__ */
|
||||||
|
|
||||||
|
@ -1,198 +1,198 @@
|
|||||||
/**
|
/**
|
||||||
@file protocol.h
|
@file protocol.h
|
||||||
@brief ENet protocol
|
@brief ENet protocol
|
||||||
*/
|
*/
|
||||||
#ifndef __ENET_PROTOCOL_H__
|
#ifndef __ENET_PROTOCOL_H__
|
||||||
#define __ENET_PROTOCOL_H__
|
#define __ENET_PROTOCOL_H__
|
||||||
|
|
||||||
#include "enet/types.h"
|
#include "enet/types.h"
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
ENET_PROTOCOL_MINIMUM_MTU = 576,
|
ENET_PROTOCOL_MINIMUM_MTU = 576,
|
||||||
ENET_PROTOCOL_MAXIMUM_MTU = 4096,
|
ENET_PROTOCOL_MAXIMUM_MTU = 4096,
|
||||||
ENET_PROTOCOL_MAXIMUM_PACKET_COMMANDS = 32,
|
ENET_PROTOCOL_MAXIMUM_PACKET_COMMANDS = 32,
|
||||||
ENET_PROTOCOL_MINIMUM_WINDOW_SIZE = 4096,
|
ENET_PROTOCOL_MINIMUM_WINDOW_SIZE = 4096,
|
||||||
ENET_PROTOCOL_MAXIMUM_WINDOW_SIZE = 65536,
|
ENET_PROTOCOL_MAXIMUM_WINDOW_SIZE = 65536,
|
||||||
ENET_PROTOCOL_MINIMUM_CHANNEL_COUNT = 1,
|
ENET_PROTOCOL_MINIMUM_CHANNEL_COUNT = 1,
|
||||||
ENET_PROTOCOL_MAXIMUM_CHANNEL_COUNT = 255,
|
ENET_PROTOCOL_MAXIMUM_CHANNEL_COUNT = 255,
|
||||||
ENET_PROTOCOL_MAXIMUM_PEER_ID = 0xFFF,
|
ENET_PROTOCOL_MAXIMUM_PEER_ID = 0xFFF,
|
||||||
ENET_PROTOCOL_MAXIMUM_FRAGMENT_COUNT = 1024 * 1024
|
ENET_PROTOCOL_MAXIMUM_FRAGMENT_COUNT = 1024 * 1024
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum _ENetProtocolCommand
|
typedef enum _ENetProtocolCommand
|
||||||
{
|
{
|
||||||
ENET_PROTOCOL_COMMAND_NONE = 0,
|
ENET_PROTOCOL_COMMAND_NONE = 0,
|
||||||
ENET_PROTOCOL_COMMAND_ACKNOWLEDGE = 1,
|
ENET_PROTOCOL_COMMAND_ACKNOWLEDGE = 1,
|
||||||
ENET_PROTOCOL_COMMAND_CONNECT = 2,
|
ENET_PROTOCOL_COMMAND_CONNECT = 2,
|
||||||
ENET_PROTOCOL_COMMAND_VERIFY_CONNECT = 3,
|
ENET_PROTOCOL_COMMAND_VERIFY_CONNECT = 3,
|
||||||
ENET_PROTOCOL_COMMAND_DISCONNECT = 4,
|
ENET_PROTOCOL_COMMAND_DISCONNECT = 4,
|
||||||
ENET_PROTOCOL_COMMAND_PING = 5,
|
ENET_PROTOCOL_COMMAND_PING = 5,
|
||||||
ENET_PROTOCOL_COMMAND_SEND_RELIABLE = 6,
|
ENET_PROTOCOL_COMMAND_SEND_RELIABLE = 6,
|
||||||
ENET_PROTOCOL_COMMAND_SEND_UNRELIABLE = 7,
|
ENET_PROTOCOL_COMMAND_SEND_UNRELIABLE = 7,
|
||||||
ENET_PROTOCOL_COMMAND_SEND_FRAGMENT = 8,
|
ENET_PROTOCOL_COMMAND_SEND_FRAGMENT = 8,
|
||||||
ENET_PROTOCOL_COMMAND_SEND_UNSEQUENCED = 9,
|
ENET_PROTOCOL_COMMAND_SEND_UNSEQUENCED = 9,
|
||||||
ENET_PROTOCOL_COMMAND_BANDWIDTH_LIMIT = 10,
|
ENET_PROTOCOL_COMMAND_BANDWIDTH_LIMIT = 10,
|
||||||
ENET_PROTOCOL_COMMAND_THROTTLE_CONFIGURE = 11,
|
ENET_PROTOCOL_COMMAND_THROTTLE_CONFIGURE = 11,
|
||||||
ENET_PROTOCOL_COMMAND_SEND_UNRELIABLE_FRAGMENT = 12,
|
ENET_PROTOCOL_COMMAND_SEND_UNRELIABLE_FRAGMENT = 12,
|
||||||
ENET_PROTOCOL_COMMAND_COUNT = 13,
|
ENET_PROTOCOL_COMMAND_COUNT = 13,
|
||||||
|
|
||||||
ENET_PROTOCOL_COMMAND_MASK = 0x0F
|
ENET_PROTOCOL_COMMAND_MASK = 0x0F
|
||||||
} ENetProtocolCommand;
|
} ENetProtocolCommand;
|
||||||
|
|
||||||
typedef enum _ENetProtocolFlag
|
typedef enum _ENetProtocolFlag
|
||||||
{
|
{
|
||||||
ENET_PROTOCOL_COMMAND_FLAG_ACKNOWLEDGE = (1 << 7),
|
ENET_PROTOCOL_COMMAND_FLAG_ACKNOWLEDGE = (1 << 7),
|
||||||
ENET_PROTOCOL_COMMAND_FLAG_UNSEQUENCED = (1 << 6),
|
ENET_PROTOCOL_COMMAND_FLAG_UNSEQUENCED = (1 << 6),
|
||||||
|
|
||||||
ENET_PROTOCOL_HEADER_FLAG_COMPRESSED = (1 << 14),
|
ENET_PROTOCOL_HEADER_FLAG_COMPRESSED = (1 << 14),
|
||||||
ENET_PROTOCOL_HEADER_FLAG_SENT_TIME = (1 << 15),
|
ENET_PROTOCOL_HEADER_FLAG_SENT_TIME = (1 << 15),
|
||||||
ENET_PROTOCOL_HEADER_FLAG_MASK = ENET_PROTOCOL_HEADER_FLAG_COMPRESSED | ENET_PROTOCOL_HEADER_FLAG_SENT_TIME,
|
ENET_PROTOCOL_HEADER_FLAG_MASK = ENET_PROTOCOL_HEADER_FLAG_COMPRESSED | ENET_PROTOCOL_HEADER_FLAG_SENT_TIME,
|
||||||
|
|
||||||
ENET_PROTOCOL_HEADER_SESSION_MASK = (3 << 12),
|
ENET_PROTOCOL_HEADER_SESSION_MASK = (3 << 12),
|
||||||
ENET_PROTOCOL_HEADER_SESSION_SHIFT = 12
|
ENET_PROTOCOL_HEADER_SESSION_SHIFT = 12
|
||||||
} ENetProtocolFlag;
|
} ENetProtocolFlag;
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#pragma pack(push, 1)
|
#pragma pack(push, 1)
|
||||||
#define ENET_PACKED
|
#define ENET_PACKED
|
||||||
#elif defined(__GNUC__) || defined(__clang__)
|
#elif defined(__GNUC__) || defined(__clang__)
|
||||||
#define ENET_PACKED __attribute__ ((packed))
|
#define ENET_PACKED __attribute__ ((packed))
|
||||||
#else
|
#else
|
||||||
#define ENET_PACKED
|
#define ENET_PACKED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef struct _ENetProtocolHeader
|
typedef struct _ENetProtocolHeader
|
||||||
{
|
{
|
||||||
enet_uint16 peerID;
|
enet_uint16 peerID;
|
||||||
enet_uint16 sentTime;
|
enet_uint16 sentTime;
|
||||||
} ENET_PACKED ENetProtocolHeader;
|
} ENET_PACKED ENetProtocolHeader;
|
||||||
|
|
||||||
typedef struct _ENetProtocolCommandHeader
|
typedef struct _ENetProtocolCommandHeader
|
||||||
{
|
{
|
||||||
enet_uint8 command;
|
enet_uint8 command;
|
||||||
enet_uint8 channelID;
|
enet_uint8 channelID;
|
||||||
enet_uint16 reliableSequenceNumber;
|
enet_uint16 reliableSequenceNumber;
|
||||||
} ENET_PACKED ENetProtocolCommandHeader;
|
} ENET_PACKED ENetProtocolCommandHeader;
|
||||||
|
|
||||||
typedef struct _ENetProtocolAcknowledge
|
typedef struct _ENetProtocolAcknowledge
|
||||||
{
|
{
|
||||||
ENetProtocolCommandHeader header;
|
ENetProtocolCommandHeader header;
|
||||||
enet_uint16 receivedReliableSequenceNumber;
|
enet_uint16 receivedReliableSequenceNumber;
|
||||||
enet_uint16 receivedSentTime;
|
enet_uint16 receivedSentTime;
|
||||||
} ENET_PACKED ENetProtocolAcknowledge;
|
} ENET_PACKED ENetProtocolAcknowledge;
|
||||||
|
|
||||||
typedef struct _ENetProtocolConnect
|
typedef struct _ENetProtocolConnect
|
||||||
{
|
{
|
||||||
ENetProtocolCommandHeader header;
|
ENetProtocolCommandHeader header;
|
||||||
enet_uint16 outgoingPeerID;
|
enet_uint16 outgoingPeerID;
|
||||||
enet_uint8 incomingSessionID;
|
enet_uint8 incomingSessionID;
|
||||||
enet_uint8 outgoingSessionID;
|
enet_uint8 outgoingSessionID;
|
||||||
enet_uint32 mtu;
|
enet_uint32 mtu;
|
||||||
enet_uint32 windowSize;
|
enet_uint32 windowSize;
|
||||||
enet_uint32 channelCount;
|
enet_uint32 channelCount;
|
||||||
enet_uint32 incomingBandwidth;
|
enet_uint32 incomingBandwidth;
|
||||||
enet_uint32 outgoingBandwidth;
|
enet_uint32 outgoingBandwidth;
|
||||||
enet_uint32 packetThrottleInterval;
|
enet_uint32 packetThrottleInterval;
|
||||||
enet_uint32 packetThrottleAcceleration;
|
enet_uint32 packetThrottleAcceleration;
|
||||||
enet_uint32 packetThrottleDeceleration;
|
enet_uint32 packetThrottleDeceleration;
|
||||||
enet_uint32 connectID;
|
enet_uint32 connectID;
|
||||||
enet_uint32 data;
|
enet_uint32 data;
|
||||||
} ENET_PACKED ENetProtocolConnect;
|
} ENET_PACKED ENetProtocolConnect;
|
||||||
|
|
||||||
typedef struct _ENetProtocolVerifyConnect
|
typedef struct _ENetProtocolVerifyConnect
|
||||||
{
|
{
|
||||||
ENetProtocolCommandHeader header;
|
ENetProtocolCommandHeader header;
|
||||||
enet_uint16 outgoingPeerID;
|
enet_uint16 outgoingPeerID;
|
||||||
enet_uint8 incomingSessionID;
|
enet_uint8 incomingSessionID;
|
||||||
enet_uint8 outgoingSessionID;
|
enet_uint8 outgoingSessionID;
|
||||||
enet_uint32 mtu;
|
enet_uint32 mtu;
|
||||||
enet_uint32 windowSize;
|
enet_uint32 windowSize;
|
||||||
enet_uint32 channelCount;
|
enet_uint32 channelCount;
|
||||||
enet_uint32 incomingBandwidth;
|
enet_uint32 incomingBandwidth;
|
||||||
enet_uint32 outgoingBandwidth;
|
enet_uint32 outgoingBandwidth;
|
||||||
enet_uint32 packetThrottleInterval;
|
enet_uint32 packetThrottleInterval;
|
||||||
enet_uint32 packetThrottleAcceleration;
|
enet_uint32 packetThrottleAcceleration;
|
||||||
enet_uint32 packetThrottleDeceleration;
|
enet_uint32 packetThrottleDeceleration;
|
||||||
enet_uint32 connectID;
|
enet_uint32 connectID;
|
||||||
} ENET_PACKED ENetProtocolVerifyConnect;
|
} ENET_PACKED ENetProtocolVerifyConnect;
|
||||||
|
|
||||||
typedef struct _ENetProtocolBandwidthLimit
|
typedef struct _ENetProtocolBandwidthLimit
|
||||||
{
|
{
|
||||||
ENetProtocolCommandHeader header;
|
ENetProtocolCommandHeader header;
|
||||||
enet_uint32 incomingBandwidth;
|
enet_uint32 incomingBandwidth;
|
||||||
enet_uint32 outgoingBandwidth;
|
enet_uint32 outgoingBandwidth;
|
||||||
} ENET_PACKED ENetProtocolBandwidthLimit;
|
} ENET_PACKED ENetProtocolBandwidthLimit;
|
||||||
|
|
||||||
typedef struct _ENetProtocolThrottleConfigure
|
typedef struct _ENetProtocolThrottleConfigure
|
||||||
{
|
{
|
||||||
ENetProtocolCommandHeader header;
|
ENetProtocolCommandHeader header;
|
||||||
enet_uint32 packetThrottleInterval;
|
enet_uint32 packetThrottleInterval;
|
||||||
enet_uint32 packetThrottleAcceleration;
|
enet_uint32 packetThrottleAcceleration;
|
||||||
enet_uint32 packetThrottleDeceleration;
|
enet_uint32 packetThrottleDeceleration;
|
||||||
} ENET_PACKED ENetProtocolThrottleConfigure;
|
} ENET_PACKED ENetProtocolThrottleConfigure;
|
||||||
|
|
||||||
typedef struct _ENetProtocolDisconnect
|
typedef struct _ENetProtocolDisconnect
|
||||||
{
|
{
|
||||||
ENetProtocolCommandHeader header;
|
ENetProtocolCommandHeader header;
|
||||||
enet_uint32 data;
|
enet_uint32 data;
|
||||||
} ENET_PACKED ENetProtocolDisconnect;
|
} ENET_PACKED ENetProtocolDisconnect;
|
||||||
|
|
||||||
typedef struct _ENetProtocolPing
|
typedef struct _ENetProtocolPing
|
||||||
{
|
{
|
||||||
ENetProtocolCommandHeader header;
|
ENetProtocolCommandHeader header;
|
||||||
} ENET_PACKED ENetProtocolPing;
|
} ENET_PACKED ENetProtocolPing;
|
||||||
|
|
||||||
typedef struct _ENetProtocolSendReliable
|
typedef struct _ENetProtocolSendReliable
|
||||||
{
|
{
|
||||||
ENetProtocolCommandHeader header;
|
ENetProtocolCommandHeader header;
|
||||||
enet_uint16 dataLength;
|
enet_uint16 dataLength;
|
||||||
} ENET_PACKED ENetProtocolSendReliable;
|
} ENET_PACKED ENetProtocolSendReliable;
|
||||||
|
|
||||||
typedef struct _ENetProtocolSendUnreliable
|
typedef struct _ENetProtocolSendUnreliable
|
||||||
{
|
{
|
||||||
ENetProtocolCommandHeader header;
|
ENetProtocolCommandHeader header;
|
||||||
enet_uint16 unreliableSequenceNumber;
|
enet_uint16 unreliableSequenceNumber;
|
||||||
enet_uint16 dataLength;
|
enet_uint16 dataLength;
|
||||||
} ENET_PACKED ENetProtocolSendUnreliable;
|
} ENET_PACKED ENetProtocolSendUnreliable;
|
||||||
|
|
||||||
typedef struct _ENetProtocolSendUnsequenced
|
typedef struct _ENetProtocolSendUnsequenced
|
||||||
{
|
{
|
||||||
ENetProtocolCommandHeader header;
|
ENetProtocolCommandHeader header;
|
||||||
enet_uint16 unsequencedGroup;
|
enet_uint16 unsequencedGroup;
|
||||||
enet_uint16 dataLength;
|
enet_uint16 dataLength;
|
||||||
} ENET_PACKED ENetProtocolSendUnsequenced;
|
} ENET_PACKED ENetProtocolSendUnsequenced;
|
||||||
|
|
||||||
typedef struct _ENetProtocolSendFragment
|
typedef struct _ENetProtocolSendFragment
|
||||||
{
|
{
|
||||||
ENetProtocolCommandHeader header;
|
ENetProtocolCommandHeader header;
|
||||||
enet_uint16 startSequenceNumber;
|
enet_uint16 startSequenceNumber;
|
||||||
enet_uint16 dataLength;
|
enet_uint16 dataLength;
|
||||||
enet_uint32 fragmentCount;
|
enet_uint32 fragmentCount;
|
||||||
enet_uint32 fragmentNumber;
|
enet_uint32 fragmentNumber;
|
||||||
enet_uint32 totalLength;
|
enet_uint32 totalLength;
|
||||||
enet_uint32 fragmentOffset;
|
enet_uint32 fragmentOffset;
|
||||||
} ENET_PACKED ENetProtocolSendFragment;
|
} ENET_PACKED ENetProtocolSendFragment;
|
||||||
|
|
||||||
typedef union _ENetProtocol
|
typedef union _ENetProtocol
|
||||||
{
|
{
|
||||||
ENetProtocolCommandHeader header;
|
ENetProtocolCommandHeader header;
|
||||||
ENetProtocolAcknowledge acknowledge;
|
ENetProtocolAcknowledge acknowledge;
|
||||||
ENetProtocolConnect connect;
|
ENetProtocolConnect connect;
|
||||||
ENetProtocolVerifyConnect verifyConnect;
|
ENetProtocolVerifyConnect verifyConnect;
|
||||||
ENetProtocolDisconnect disconnect;
|
ENetProtocolDisconnect disconnect;
|
||||||
ENetProtocolPing ping;
|
ENetProtocolPing ping;
|
||||||
ENetProtocolSendReliable sendReliable;
|
ENetProtocolSendReliable sendReliable;
|
||||||
ENetProtocolSendUnreliable sendUnreliable;
|
ENetProtocolSendUnreliable sendUnreliable;
|
||||||
ENetProtocolSendUnsequenced sendUnsequenced;
|
ENetProtocolSendUnsequenced sendUnsequenced;
|
||||||
ENetProtocolSendFragment sendFragment;
|
ENetProtocolSendFragment sendFragment;
|
||||||
ENetProtocolBandwidthLimit bandwidthLimit;
|
ENetProtocolBandwidthLimit bandwidthLimit;
|
||||||
ENetProtocolThrottleConfigure throttleConfigure;
|
ENetProtocolThrottleConfigure throttleConfigure;
|
||||||
} ENET_PACKED ENetProtocol;
|
} ENET_PACKED ENetProtocol;
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __ENET_PROTOCOL_H__ */
|
#endif /* __ENET_PROTOCOL_H__ */
|
||||||
|
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
/**
|
/**
|
||||||
@file time.h
|
@file time.h
|
||||||
@brief ENet time constants and macros
|
@brief ENet time constants and macros
|
||||||
*/
|
*/
|
||||||
#ifndef __ENET_TIME_H__
|
#ifndef __ENET_TIME_H__
|
||||||
#define __ENET_TIME_H__
|
#define __ENET_TIME_H__
|
||||||
|
|
||||||
#define ENET_TIME_OVERFLOW 86400000
|
#define ENET_TIME_OVERFLOW 86400000
|
||||||
|
|
||||||
#define ENET_TIME_LESS(a, b) ((a) - (b) >= ENET_TIME_OVERFLOW)
|
#define ENET_TIME_LESS(a, b) ((a) - (b) >= ENET_TIME_OVERFLOW)
|
||||||
#define ENET_TIME_GREATER(a, b) ((b) - (a) >= ENET_TIME_OVERFLOW)
|
#define ENET_TIME_GREATER(a, b) ((b) - (a) >= ENET_TIME_OVERFLOW)
|
||||||
#define ENET_TIME_LESS_EQUAL(a, b) (! ENET_TIME_GREATER (a, b))
|
#define ENET_TIME_LESS_EQUAL(a, b) (! ENET_TIME_GREATER (a, b))
|
||||||
#define ENET_TIME_GREATER_EQUAL(a, b) (! ENET_TIME_LESS (a, b))
|
#define ENET_TIME_GREATER_EQUAL(a, b) (! ENET_TIME_LESS (a, b))
|
||||||
|
|
||||||
#define ENET_TIME_DIFFERENCE(a, b) ((a) - (b) >= ENET_TIME_OVERFLOW ? (b) - (a) : (a) - (b))
|
#define ENET_TIME_DIFFERENCE(a, b) ((a) - (b) >= ENET_TIME_OVERFLOW ? (b) - (a) : (a) - (b))
|
||||||
|
|
||||||
#endif /* __ENET_TIME_H__ */
|
#endif /* __ENET_TIME_H__ */
|
||||||
|
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
/**
|
/**
|
||||||
@file types.h
|
@file types.h
|
||||||
@brief type definitions for ENet
|
@brief type definitions for ENet
|
||||||
*/
|
*/
|
||||||
#ifndef __ENET_TYPES_H__
|
#ifndef __ENET_TYPES_H__
|
||||||
#define __ENET_TYPES_H__
|
#define __ENET_TYPES_H__
|
||||||
|
|
||||||
typedef unsigned char enet_uint8; /**< unsigned 8-bit type */
|
typedef unsigned char enet_uint8; /**< unsigned 8-bit type */
|
||||||
typedef unsigned short enet_uint16; /**< unsigned 16-bit type */
|
typedef unsigned short enet_uint16; /**< unsigned 16-bit type */
|
||||||
typedef unsigned int enet_uint32; /**< unsigned 32-bit type */
|
typedef unsigned int enet_uint32; /**< unsigned 32-bit type */
|
||||||
|
|
||||||
#endif /* __ENET_TYPES_H__ */
|
#endif /* __ENET_TYPES_H__ */
|
||||||
|
|
||||||
|
@ -1,48 +1,48 @@
|
|||||||
/**
|
/**
|
||||||
@file unix.h
|
@file unix.h
|
||||||
@brief ENet Unix header
|
@brief ENet Unix header
|
||||||
*/
|
*/
|
||||||
#ifndef __ENET_UNIX_H__
|
#ifndef __ENET_UNIX_H__
|
||||||
#define __ENET_UNIX_H__
|
#define __ENET_UNIX_H__
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#ifdef MSG_MAXIOVLEN
|
#ifdef MSG_MAXIOVLEN
|
||||||
#define ENET_BUFFER_MAXIMUM MSG_MAXIOVLEN
|
#define ENET_BUFFER_MAXIMUM MSG_MAXIOVLEN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef int ENetSocket;
|
typedef int ENetSocket;
|
||||||
|
|
||||||
#define ENET_SOCKET_NULL -1
|
#define ENET_SOCKET_NULL -1
|
||||||
|
|
||||||
#define ENET_HOST_TO_NET_16(value) (htons (value)) /**< macro that converts host to net byte-order of a 16-bit value */
|
#define ENET_HOST_TO_NET_16(value) (htons (value)) /**< macro that converts host to net byte-order of a 16-bit value */
|
||||||
#define ENET_HOST_TO_NET_32(value) (htonl (value)) /**< macro that converts host to net byte-order of a 32-bit value */
|
#define ENET_HOST_TO_NET_32(value) (htonl (value)) /**< macro that converts host to net byte-order of a 32-bit value */
|
||||||
|
|
||||||
#define ENET_NET_TO_HOST_16(value) (ntohs (value)) /**< macro that converts net to host byte-order of a 16-bit value */
|
#define ENET_NET_TO_HOST_16(value) (ntohs (value)) /**< macro that converts net to host byte-order of a 16-bit value */
|
||||||
#define ENET_NET_TO_HOST_32(value) (ntohl (value)) /**< macro that converts net to host byte-order of a 32-bit value */
|
#define ENET_NET_TO_HOST_32(value) (ntohl (value)) /**< macro that converts net to host byte-order of a 32-bit value */
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
void * data;
|
void * data;
|
||||||
size_t dataLength;
|
size_t dataLength;
|
||||||
} ENetBuffer;
|
} ENetBuffer;
|
||||||
|
|
||||||
#define ENET_CALLBACK
|
#define ENET_CALLBACK
|
||||||
|
|
||||||
#define ENET_API extern
|
#define ENET_API extern
|
||||||
|
|
||||||
typedef fd_set ENetSocketSet;
|
typedef fd_set ENetSocketSet;
|
||||||
|
|
||||||
#define ENET_SOCKETSET_EMPTY(sockset) FD_ZERO (& (sockset))
|
#define ENET_SOCKETSET_EMPTY(sockset) FD_ZERO (& (sockset))
|
||||||
#define ENET_SOCKETSET_ADD(sockset, socket) FD_SET (socket, & (sockset))
|
#define ENET_SOCKETSET_ADD(sockset, socket) FD_SET (socket, & (sockset))
|
||||||
#define ENET_SOCKETSET_REMOVE(sockset, socket) FD_CLR (socket, & (sockset))
|
#define ENET_SOCKETSET_REMOVE(sockset, socket) FD_CLR (socket, & (sockset))
|
||||||
#define ENET_SOCKETSET_CHECK(sockset, socket) FD_ISSET (socket, & (sockset))
|
#define ENET_SOCKETSET_CHECK(sockset, socket) FD_ISSET (socket, & (sockset))
|
||||||
|
|
||||||
#endif /* __ENET_UNIX_H__ */
|
#endif /* __ENET_UNIX_H__ */
|
||||||
|
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
/**
|
/**
|
||||||
@file utility.h
|
@file utility.h
|
||||||
@brief ENet utility header
|
@brief ENet utility header
|
||||||
*/
|
*/
|
||||||
#ifndef __ENET_UTILITY_H__
|
#ifndef __ENET_UTILITY_H__
|
||||||
#define __ENET_UTILITY_H__
|
#define __ENET_UTILITY_H__
|
||||||
|
|
||||||
#define ENET_MAX(x, y) ((x) > (y) ? (x) : (y))
|
#define ENET_MAX(x, y) ((x) > (y) ? (x) : (y))
|
||||||
#define ENET_MIN(x, y) ((x) < (y) ? (x) : (y))
|
#define ENET_MIN(x, y) ((x) < (y) ? (x) : (y))
|
||||||
|
|
||||||
#endif /* __ENET_UTILITY_H__ */
|
#endif /* __ENET_UTILITY_H__ */
|
||||||
|
|
||||||
|
114
src/enet/win32.h
114
src/enet/win32.h
@ -1,57 +1,57 @@
|
|||||||
/**
|
/**
|
||||||
@file win32.h
|
@file win32.h
|
||||||
@brief ENet Win32 header
|
@brief ENet Win32 header
|
||||||
*/
|
*/
|
||||||
#ifndef __ENET_WIN32_H__
|
#ifndef __ENET_WIN32_H__
|
||||||
#define __ENET_WIN32_H__
|
#define __ENET_WIN32_H__
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#ifdef ENET_BUILDING_LIB
|
#ifdef ENET_BUILDING_LIB
|
||||||
#pragma warning (disable: 4267) // size_t to int conversion
|
#pragma warning (disable: 4267) // size_t to int conversion
|
||||||
#pragma warning (disable: 4244) // 64bit to 32bit int
|
#pragma warning (disable: 4244) // 64bit to 32bit int
|
||||||
#pragma warning (disable: 4018) // signed/unsigned mismatch
|
#pragma warning (disable: 4018) // signed/unsigned mismatch
|
||||||
#pragma warning (disable: 4146) // unary minus operator applied to unsigned type
|
#pragma warning (disable: 4146) // unary minus operator applied to unsigned type
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
|
|
||||||
typedef SOCKET ENetSocket;
|
typedef SOCKET ENetSocket;
|
||||||
|
|
||||||
#define ENET_SOCKET_NULL INVALID_SOCKET
|
#define ENET_SOCKET_NULL INVALID_SOCKET
|
||||||
|
|
||||||
#define ENET_HOST_TO_NET_16(value) (htons (value))
|
#define ENET_HOST_TO_NET_16(value) (htons (value))
|
||||||
#define ENET_HOST_TO_NET_32(value) (htonl (value))
|
#define ENET_HOST_TO_NET_32(value) (htonl (value))
|
||||||
|
|
||||||
#define ENET_NET_TO_HOST_16(value) (ntohs (value))
|
#define ENET_NET_TO_HOST_16(value) (ntohs (value))
|
||||||
#define ENET_NET_TO_HOST_32(value) (ntohl (value))
|
#define ENET_NET_TO_HOST_32(value) (ntohl (value))
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
size_t dataLength;
|
size_t dataLength;
|
||||||
void * data;
|
void * data;
|
||||||
} ENetBuffer;
|
} ENetBuffer;
|
||||||
|
|
||||||
#define ENET_CALLBACK __cdecl
|
#define ENET_CALLBACK __cdecl
|
||||||
|
|
||||||
#ifdef ENET_DLL
|
#ifdef ENET_DLL
|
||||||
#ifdef ENET_BUILDING_LIB
|
#ifdef ENET_BUILDING_LIB
|
||||||
#define ENET_API __declspec( dllexport )
|
#define ENET_API __declspec( dllexport )
|
||||||
#else
|
#else
|
||||||
#define ENET_API __declspec( dllimport )
|
#define ENET_API __declspec( dllimport )
|
||||||
#endif /* ENET_BUILDING_LIB */
|
#endif /* ENET_BUILDING_LIB */
|
||||||
#else /* !ENET_DLL */
|
#else /* !ENET_DLL */
|
||||||
#define ENET_API extern
|
#define ENET_API extern
|
||||||
#endif /* ENET_DLL */
|
#endif /* ENET_DLL */
|
||||||
|
|
||||||
typedef fd_set ENetSocketSet;
|
typedef fd_set ENetSocketSet;
|
||||||
|
|
||||||
#define ENET_SOCKETSET_EMPTY(sockset) FD_ZERO (& (sockset))
|
#define ENET_SOCKETSET_EMPTY(sockset) FD_ZERO (& (sockset))
|
||||||
#define ENET_SOCKETSET_ADD(sockset, socket) FD_SET (socket, & (sockset))
|
#define ENET_SOCKETSET_ADD(sockset, socket) FD_SET (socket, & (sockset))
|
||||||
#define ENET_SOCKETSET_REMOVE(sockset, socket) FD_CLR (socket, & (sockset))
|
#define ENET_SOCKETSET_REMOVE(sockset, socket) FD_CLR (socket, & (sockset))
|
||||||
#define ENET_SOCKETSET_CHECK(sockset, socket) FD_ISSET (socket, & (sockset))
|
#define ENET_SOCKETSET_CHECK(sockset, socket) FD_ISSET (socket, & (sockset))
|
||||||
|
|
||||||
#endif /* __ENET_WIN32_H__ */
|
#endif /* __ENET_WIN32_H__ */
|
||||||
|
|
||||||
|
|
||||||
|
186
src/logger.cpp
186
src/logger.cpp
@ -1,94 +1,94 @@
|
|||||||
//
|
//
|
||||||
// Created by jojos38 on 28.01.2020.
|
// Created by jojos38 on 28.01.2020.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
int loggerlevel;
|
int loggerlevel;
|
||||||
|
|
||||||
void setLoggerLevel(char level_string[]) {
|
void setLoggerLevel(char level_string[]) {
|
||||||
if (!strcmp(level_string, "ALL"))
|
if (!strcmp(level_string, "ALL"))
|
||||||
loggerlevel = 0;
|
loggerlevel = 0;
|
||||||
|
|
||||||
if (!strcmp(level_string, "DEBUG"))
|
if (!strcmp(level_string, "DEBUG"))
|
||||||
loggerlevel = 1;
|
loggerlevel = 1;
|
||||||
|
|
||||||
if (!strcmp(level_string, "INFO"))
|
if (!strcmp(level_string, "INFO"))
|
||||||
loggerlevel = 2;
|
loggerlevel = 2;
|
||||||
|
|
||||||
if (!strcmp(level_string, "WARN"))
|
if (!strcmp(level_string, "WARN"))
|
||||||
loggerlevel = 3;
|
loggerlevel = 3;
|
||||||
|
|
||||||
if (!strcmp(level_string, "ERROR"))
|
if (!strcmp(level_string, "ERROR"))
|
||||||
loggerlevel = 4;
|
loggerlevel = 4;
|
||||||
|
|
||||||
if (!strcmp(level_string, "OFF"))
|
if (!strcmp(level_string, "OFF"))
|
||||||
loggerlevel = 5;
|
loggerlevel = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
stringstream getDate() {
|
stringstream getDate() {
|
||||||
// current date/time based on current system
|
// current date/time based on current system
|
||||||
time_t now = time(0);
|
time_t now = time(0);
|
||||||
tm* ltm = localtime(&now);
|
tm* ltm = localtime(&now);
|
||||||
|
|
||||||
int month = 1 + ltm->tm_mon;
|
int month = 1 + ltm->tm_mon;
|
||||||
int day = ltm->tm_mday;
|
int day = ltm->tm_mday;
|
||||||
int hours = 1 + ltm->tm_hour;
|
int hours = 1 + ltm->tm_hour;
|
||||||
int minutes = 1 + ltm->tm_min;
|
int minutes = 1 + ltm->tm_min;
|
||||||
int seconds = 1 + ltm->tm_sec;
|
int seconds = 1 + ltm->tm_sec;
|
||||||
|
|
||||||
string month_string;
|
string month_string;
|
||||||
if (month < 10) month_string = "0" + to_string(month);
|
if (month < 10) month_string = "0" + to_string(month);
|
||||||
else month_string = to_string(month);
|
else month_string = to_string(month);
|
||||||
|
|
||||||
string day_string;
|
string day_string;
|
||||||
if (day < 10) day_string = "0" + to_string(day);
|
if (day < 10) day_string = "0" + to_string(day);
|
||||||
else day_string = to_string(day);
|
else day_string = to_string(day);
|
||||||
|
|
||||||
string hours_string;
|
string hours_string;
|
||||||
if (hours < 10) hours_string = "0" + to_string(hours);
|
if (hours < 10) hours_string = "0" + to_string(hours);
|
||||||
else hours_string = to_string(hours);
|
else hours_string = to_string(hours);
|
||||||
|
|
||||||
string minutes_string;
|
string minutes_string;
|
||||||
if (minutes < 10) minutes_string = "0" + to_string(minutes);
|
if (minutes < 10) minutes_string = "0" + to_string(minutes);
|
||||||
else minutes_string = to_string(minutes);
|
else minutes_string = to_string(minutes);
|
||||||
|
|
||||||
string seconds_string;
|
string seconds_string;
|
||||||
if (seconds < 10) seconds_string = "0" + to_string(seconds);
|
if (seconds < 10) seconds_string = "0" + to_string(seconds);
|
||||||
else seconds_string = to_string(seconds);
|
else seconds_string = to_string(seconds);
|
||||||
|
|
||||||
std::stringstream date;
|
std::stringstream date;
|
||||||
date
|
date
|
||||||
<< "["
|
<< "["
|
||||||
<< day_string << "/"
|
<< day_string << "/"
|
||||||
<< month_string << "/"
|
<< month_string << "/"
|
||||||
<< 1900 + ltm->tm_year << " "
|
<< 1900 + ltm->tm_year << " "
|
||||||
<< hours_string << ":"
|
<< hours_string << ":"
|
||||||
<< minutes_string << ":"
|
<< minutes_string << ":"
|
||||||
<< seconds_string
|
<< seconds_string
|
||||||
<< "] ";
|
<< "] ";
|
||||||
return date;
|
return date;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
void info(char obj[]) {
|
void info(char obj[]) {
|
||||||
if (level <= 2)
|
if (level <= 2)
|
||||||
cout << getDate().str() << "\u001b[36m" << "[INFO]" << "\u001b[0m" << " " << obj << endl;
|
cout << getDate().str() << "\u001b[36m" << "[INFO]" << "\u001b[0m" << " " << obj << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void error(char obj[]) {
|
void error(char obj[]) {
|
||||||
if (level <= 4)
|
if (level <= 4)
|
||||||
cout << getDate().str() << "\x1B[31m" << "[ERRO]" << "\u001b[0m" << " " << obj << endl;
|
cout << getDate().str() << "\x1B[31m" << "[ERRO]" << "\u001b[0m" << " " << obj << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void warn(char obj[]) {
|
void warn(char obj[]) {
|
||||||
if (level <= 3)
|
if (level <= 3)
|
||||||
cout << getDate().str() << "\u001b[33m" << "[WARN]" << "\u001b[0m" << " " << obj << endl;
|
cout << getDate().str() << "\u001b[33m" << "[WARN]" << "\u001b[0m" << " " << obj << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void debug(char obj[]) {
|
void debug(char obj[]) {
|
||||||
if (level <= 1)
|
if (level <= 1)
|
||||||
cout << getDate().str() << "\u001b[35m" << "[DBUG]" << "\u001b[0m" << " " << obj << endl;
|
cout << getDate().str() << "\u001b[35m" << "[DBUG]" << "\u001b[0m" << " " << obj << endl;
|
||||||
}*/
|
}*/
|
82
src/logger.h
82
src/logger.h
@ -1,41 +1,41 @@
|
|||||||
//
|
//
|
||||||
// Created by jojos38 on 28.01.2020.
|
// Created by jojos38 on 28.01.2020.
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef LOGGER_H
|
#ifndef LOGGER_H
|
||||||
#define LOGGER_H
|
#define LOGGER_H
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
extern int loggerlevel;
|
extern int loggerlevel;
|
||||||
stringstream getDate();
|
stringstream getDate();
|
||||||
void setLoggerLevel(char level_string[]);
|
void setLoggerLevel(char level_string[]);
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void info(const T& toPrint) {
|
void info(const T& toPrint) {
|
||||||
if (loggerlevel <= 2)
|
if (loggerlevel <= 2)
|
||||||
cout << getDate().str() << "\u001b[36m" << "[INFO]" << "\u001b[0m" << " " << toPrint << endl;
|
cout << getDate().str() << "[INFO] " << toPrint << endl;
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void error(const T& toPrint) {
|
void error(const T& toPrint) {
|
||||||
if (loggerlevel <= 4)
|
if (loggerlevel <= 4)
|
||||||
cout << getDate().str() << "\x1B[31m" << "[ERRO]" << "\u001b[0m" << " " << toPrint << endl;
|
cout << getDate().str() "[ERRO] " << toPrint << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void warn(const T& toPrint) {
|
void warn(const T& toPrint) {
|
||||||
if (loggerlevel <= 3)
|
if (loggerlevel <= 3)
|
||||||
cout << getDate().str() << "\u001b[33m" << "[WARN]" << "\u001b[0m" << " " << toPrint << endl;
|
cout << getDate().str() << "[WARN] " << toPrint << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void debug(const T& toPrint) {
|
void debug(const T& toPrint) {
|
||||||
if (loggerlevel <= 1)
|
if (loggerlevel <= 1)
|
||||||
cout << getDate().str() << "\u001b[35m" << "[DBUG]" << "\u001b[0m" << " " << toPrint << endl;
|
cout << getDate().str() << "[DBUG] " << toPrint << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // LOGGER_H
|
#endif // LOGGER_H
|
||||||
|
92
src/main.cpp
92
src/main.cpp
@ -1,46 +1,46 @@
|
|||||||
//
|
//
|
||||||
// Created by Anonymous275 on 28.01.2020.
|
// Created by Anonymous275 on 28.01.2020.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "enet/enet.h"
|
#include "enet/enet.h"
|
||||||
#include "network.h"
|
#include "network.h"
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
|
|
||||||
using namespace std; //nameSpace STD
|
using namespace std; //nameSpace STD
|
||||||
|
|
||||||
void DebugData();
|
void DebugData();
|
||||||
void ParseConfig();
|
void ParseConfig();
|
||||||
|
|
||||||
bool Debug = false;
|
bool Debug = false;
|
||||||
int Port = 30813;
|
int Port = 30813;
|
||||||
string MapName = "levels/gridmap/level.json";
|
string MapName = "levels/gridmap/level.json";
|
||||||
string ServerName = "BeamNG-MP FTW";
|
string ServerName = "BeamNG-MP FTW";
|
||||||
|
|
||||||
//Entry
|
//Entry
|
||||||
int main() {
|
int main() {
|
||||||
ParseConfig();
|
ParseConfig();
|
||||||
if(Debug){ //checks if debug is on
|
if(Debug){ //checks if debug is on
|
||||||
DebugData(); //Prints Debug Data
|
DebugData(); //Prints Debug Data
|
||||||
}
|
}
|
||||||
setLoggerLevel("ALL");
|
setLoggerLevel("ALL");
|
||||||
startRUDP("localhost", 30814);
|
startRUDP("localhost", 30814);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DebugData(){
|
void DebugData(){
|
||||||
cout << "Debug : true" << "\n";
|
cout << "Debug : true" << "\n";
|
||||||
cout << "Port : " << Port << "\n";
|
cout << "Port : " << Port << "\n";
|
||||||
cout << "MapName : " << MapName << "\n";
|
cout << "MapName : " << MapName << "\n";
|
||||||
cout << "ServerName : " << ServerName << "\n";
|
cout << "ServerName : " << ServerName << "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetMainValues(bool D, int P,string Name,string serverName){
|
void SetMainValues(bool D, int P,string Name,string serverName){
|
||||||
Debug = D;
|
Debug = D;
|
||||||
Port = P;
|
Port = P;
|
||||||
MapName = Name;
|
MapName = Name;
|
||||||
ServerName = serverName;
|
ServerName = serverName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
24
src/main.h
24
src/main.h
@ -1,12 +1,12 @@
|
|||||||
//
|
//
|
||||||
// Created by Антон on 28.01.2020.
|
// Created by Антон on 28.01.2020.
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef BEAMNG_MP_SERVER_MAIN_H
|
#ifndef BEAMNG_MP_SERVER_MAIN_H
|
||||||
#define BEAMNG_MP_SERVER_MAIN_H
|
#define BEAMNG_MP_SERVER_MAIN_H
|
||||||
|
|
||||||
class main {
|
class main {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //BEAMNG_MP_SERVER_MAIN_H
|
#endif //BEAMNG_MP_SERVER_MAIN_H
|
||||||
|
134
src/network.cpp
134
src/network.cpp
@ -1,68 +1,68 @@
|
|||||||
//
|
//
|
||||||
// Created by jojos38 on 28.01.2020.
|
// Created by jojos38 on 28.01.2020.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "network.h"
|
#include "network.h"
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
using namespace std;
|
using namespace std;
|
||||||
#define EXIT_SUCCESS /*implementation defined*/
|
#define EXIT_SUCCESS /*implementation defined*/
|
||||||
#define EXIT_FAILURE /*implementation defined*/
|
#define EXIT_FAILURE /*implementation defined*/
|
||||||
|
|
||||||
void listen();
|
void listen();
|
||||||
|
|
||||||
ENetAddress address;
|
ENetAddress address;
|
||||||
ENetHost* server;
|
ENetHost* server;
|
||||||
ENetEvent event;
|
ENetEvent event;
|
||||||
|
|
||||||
void startRUDP(char host[], int port) {
|
void startRUDP(char host[], int port) {
|
||||||
// ---------- Initializing ENet ---------- //
|
// ---------- Initializing ENet ---------- //
|
||||||
if (enet_initialize() != 0) {
|
if (enet_initialize() != 0) {
|
||||||
fprintf(stderr, "An error occurred while initializing ENet.\n");
|
fprintf(stderr, "An error occurred while initializing ENet.\n");
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
atexit(enet_deinitialize);
|
atexit(enet_deinitialize);
|
||||||
info("ENet initialized");
|
info("ENet initialized");
|
||||||
|
|
||||||
// ---------- Starting server ---------- //
|
// ---------- Starting server ---------- //
|
||||||
enet_address_set_host(&address, host); // Set host
|
enet_address_set_host(&address, host); // Set host
|
||||||
address.port = port; // Set port
|
address.port = port; // Set port
|
||||||
server = enet_host_create(
|
server = enet_host_create(
|
||||||
&address /* the address to bind the server host to */,
|
&address /* the address to bind the server host to */,
|
||||||
32 /* allow up to 32 clients and/or outgoing connections */,
|
32 /* allow up to 32 clients and/or outgoing connections */,
|
||||||
2 /* allow up to 2 channels to be used, 0 and 1 */,
|
2 /* allow up to 2 channels to be used, 0 and 1 */,
|
||||||
0 /* assume any amount of incoming bandwidth */,
|
0 /* assume any amount of incoming bandwidth */,
|
||||||
0 /* assume any amount of outgoing bandwidth */);
|
0 /* assume any amount of outgoing bandwidth */);
|
||||||
if (server == NULL) {
|
if (server == NULL) {
|
||||||
fprintf(stderr, "An error occurred while trying to create an ENet server host.\n");
|
fprintf(stderr, "An error occurred while trying to create an ENet server host.\n");
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
info("Server started");
|
info("Server started");
|
||||||
listen();
|
listen();
|
||||||
}
|
}
|
||||||
|
|
||||||
void listen() {
|
void listen() {
|
||||||
info("Listening for packets...");
|
info("Listening for packets...");
|
||||||
while (true) {
|
while (true) {
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
case ENET_EVENT_TYPE_CONNECT:
|
case ENET_EVENT_TYPE_CONNECT:
|
||||||
printf("A new client connected from %x:%u.\n", event.peer->address.host, event.peer->address.port);
|
printf("A new client connected from %x:%u.\n", event.peer->address.host, event.peer->address.port);
|
||||||
/* Store any relevant client information here. */
|
/* Store any relevant client information here. */
|
||||||
event.peer->data = "Client information";
|
event.peer->data = "Client information";
|
||||||
break;
|
break;
|
||||||
case ENET_EVENT_TYPE_RECEIVE:
|
case ENET_EVENT_TYPE_RECEIVE:
|
||||||
printf("A packet of length %u containing %s was received from %s on channel %u.\n",
|
printf("A packet of length %u containing %s was received from %s on channel %u.\n",
|
||||||
event.packet->dataLength,
|
event.packet->dataLength,
|
||||||
event.packet->data,
|
event.packet->data,
|
||||||
event.peer->data,
|
event.peer->data,
|
||||||
event.channelID);
|
event.channelID);
|
||||||
/* Clean up the packet now that we're done using it. */
|
/* Clean up the packet now that we're done using it. */
|
||||||
enet_packet_destroy(event.packet);
|
enet_packet_destroy(event.packet);
|
||||||
break;
|
break;
|
||||||
case ENET_EVENT_TYPE_DISCONNECT:
|
case ENET_EVENT_TYPE_DISCONNECT:
|
||||||
printf("%s disconnected.\n", event.peer->data);
|
printf("%s disconnected.\n", event.peer->data);
|
||||||
/* Reset the peer's client information. */
|
/* Reset the peer's client information. */
|
||||||
event.peer->data = NULL;
|
event.peer->data = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,15 +1,15 @@
|
|||||||
//
|
//
|
||||||
// Created by jojos38 on 28.01.2020.
|
// Created by jojos38 on 28.01.2020.
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef NETWORK_H
|
#ifndef NETWORK_H
|
||||||
#define NETWORK_H
|
#define NETWORK_H
|
||||||
|
|
||||||
#include "enet/enet.h"
|
#include "enet/enet.h"
|
||||||
#pragma comment(lib,"ws2_32.lib")
|
#pragma comment(lib,"ws2_32.lib")
|
||||||
#pragma comment(lib,"winmm.lib")
|
#pragma comment(lib,"winmm.lib")
|
||||||
#pragma comment(lib,"enet.lib")
|
#pragma comment(lib,"enet.lib")
|
||||||
|
|
||||||
void startRUDP(char host[], int port);
|
void startRUDP(char host[], int port);
|
||||||
|
|
||||||
#endif // NETWORK_H
|
#endif // NETWORK_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user