* Fixed boats falling and a TP glitch #266 * Replaced every C-style cast with C++ ones * Replaced every C-style cast with C++ ones * Fixed boats falling and a TP glitch #266 * Updated NULL to nullptr and fixing some type issues * Modernized and fixed a few bugs - Replaced most instances of `NULL` with `nullptr`. - Replaced most `shared_ptr(new ...)` with `make_shared`. - Removed the `nullptr` macro as it was interfering with the actual nullptr keyword in some instances. * Fixing more conflicts * Replace int loops with size_t and start work on overrides
74 lines
1.7 KiB
C++
74 lines
1.7 KiB
C++
#pragma once
|
|
using namespace std;
|
|
|
|
#include "Packet.h"
|
|
|
|
class DisconnectPacket : public Packet, public enable_shared_from_this<DisconnectPacket>
|
|
{
|
|
public:
|
|
|
|
enum eDisconnectReason
|
|
{
|
|
eDisconnect_None = 0,
|
|
eDisconnect_Quitting,
|
|
eDisconnect_Closed,
|
|
|
|
eDisconnect_LoginTooLong,
|
|
eDisconnect_IllegalStance,
|
|
eDisconnect_IllegalPosition,
|
|
eDisconnect_MovedTooQuickly,
|
|
eDisconnect_NoFlying,
|
|
eDisconnect_Kicked,
|
|
|
|
eDisconnect_TimeOut,
|
|
eDisconnect_Overflow,
|
|
eDisconnect_EndOfStream,
|
|
eDisconnect_ServerFull,
|
|
eDisconnect_OutdatedServer,
|
|
eDisconnect_OutdatedClient,
|
|
eDisconnect_UnexpectedPacket,
|
|
|
|
eDisconnect_ConnectionCreationFailed,
|
|
eDisconnect_NoMultiplayerPrivilegesHost,
|
|
eDisconnect_NoMultiplayerPrivilegesJoin,
|
|
|
|
eDisconnect_NoUGC_AllLocal,
|
|
eDisconnect_NoUGC_Single_Local,
|
|
eDisconnect_ContentRestricted_AllLocal,
|
|
eDisconnect_ContentRestricted_Single_Local,
|
|
#ifndef __PS3__
|
|
eDisconnect_NoUGC_Remote,
|
|
#endif
|
|
|
|
eDisconnect_NoFriendsInGame,
|
|
eDisconnect_Banned,
|
|
eDisconnect_NotFriendsWithHost,
|
|
eDisconnect_NATMismatch,
|
|
#ifdef __ORBIS__
|
|
eDisconnect_NetworkError,
|
|
#endif
|
|
#ifdef _XBOX_ONE
|
|
eDisconnect_ExitedGame,
|
|
#endif
|
|
};
|
|
|
|
// 4J Stu - The reason was a string, but we need to send a non-locale specific reason
|
|
eDisconnectReason reason;
|
|
|
|
DisconnectPacket();
|
|
DisconnectPacket(eDisconnectReason reason);
|
|
|
|
virtual void read(DataInputStream *dis);
|
|
virtual void write(DataOutputStream *dos);
|
|
virtual void handle(PacketListener *listener);
|
|
virtual int getEstimatedSize();
|
|
virtual bool canBeInvalidated();
|
|
virtual bool isInvalidatedBy(shared_ptr<Packet> packet);
|
|
|
|
public:
|
|
static shared_ptr<Packet> create() { return std::make_shared<DisconnectPacket>(); }
|
|
virtual int getId() { return 255; }
|
|
};
|
|
|
|
|