the whole game

This commit is contained in:
Kolyah35
2026-03-02 22:04:18 +03:00
parent 816e9060b4
commit f0617a5d22
2069 changed files with 581500 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
/// \file
/// \brief Contains the NAT-type detection code for the client
///
/// This file is part of RakNet Copyright 2003 Jenkins Software LLC
///
/// Usage of RakNet is subject to the appropriate license agreement.
#include "NativeFeatureIncludes.h"
#if _RAKNET_SUPPORT_NatTypeDetectionClient==1
#ifndef __NAT_TYPE_DETECTION_CLIENT_H
#define __NAT_TYPE_DETECTION_CLIENT_H
#include "RakNetTypes.h"
#include "Export.h"
#include "PluginInterface2.h"
#include "PacketPriority.h"
#include "SocketIncludes.h"
#include "DS_OrderedList.h"
#include "RakString.h"
#include "NatTypeDetectionCommon.h"
namespace RakNet
{
/// Forward declarations
class RakPeerInterface;
struct Packet;
/// \brief Client code for NatTypeDetection
/// \details See NatTypeDetectionServer.h for algorithm
/// To use, just connect to the server, and call DetectNAT
/// You will get back ID_NAT_TYPE_DETECTION_RESULT with one of the enumerated values of NATTypeDetectionResult found in NATTypeDetectionCommon.h
/// See also http://www.jenkinssoftware.com/raknet/manual/natpunchthrough.html
/// \sa NatPunchthroughClient
/// \sa NatTypeDetectionServer
/// \ingroup NAT_TYPE_DETECTION_GROUP
class RAK_DLL_EXPORT NatTypeDetectionClient : public PluginInterface2
{
public:
// GetInstance() and DestroyInstance(instance*)
STATIC_FACTORY_DECLARATIONS(NatTypeDetectionClient)
// Constructor
NatTypeDetectionClient();
// Destructor
virtual ~NatTypeDetectionClient();
/// Send the message to the server to detect the nat type
/// Server must be running NatTypeDetectionServer
/// We must already be connected to the server
/// \param[in] serverAddress address of the server
void DetectNATType(SystemAddress _serverAddress);
/// \internal For plugin handling
virtual void Update(void);
/// \internal For plugin handling
virtual PluginReceiveResult OnReceive(Packet *packet);
virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason );
protected:
SOCKET c2;
unsigned short c2Port;
void Shutdown(void);
void OnCompletion(NATTypeDetectionResult result);
bool IsInProgress(void) const;
void OnTestPortRestricted(Packet *packet);
SystemAddress serverAddress;
};
}
#endif
#endif // _RAKNET_SUPPORT_*