mirror of
https://github.com/celisej567/mcpe.git
synced 2026-09-17 20:10:23 +03:00
Visual Studio Project Overhaul + Cleanup (#80)
* Visual Studio Project Overhaul + Cleanup * SDL2 project for Windows * Re-added game client icon to SDL2 code * Renamed "AppPlatform_windows" to "AppPlatform_win32" (this is the name of the Windows API and is not representative of the architecture type) * Renamed "LoggerWindows" to "LoggerWin32" * Renamed "SoundSystemWindows to "SoundSystemDS" (DirectSound). This may be used for the 360, so it wouldn't really be Windows-specific then. * Moved "ClientSideNetworkHandler" from "network" to "client/network". We don't need it being compiled for the server if the client's the only thing that needs it. * I wonder if this still works on macOS... * Bugfixes & Fixed for macOS * Options::savePropertiesToFile Logging Bugfix * Silence Winsock Deprecation Warnings in RakNet * VS Project Improvements - Replaced 50 billion relative paths with $(MC_ROOT) - Added $(RAKNET_PATH) variable to override RakNet location - Re-added gitignore for .vcxproj.user files - Added debugging config to Directory.Builds.props - Slimmed down project configurations for SDL2 * VS Project Config Bugfixes - Fixed RakNet header path for additional includes * RakNet Target for XCode * XCode Project Config Fixes * Packet logging * Network VS Project Filter Fix * Fix RakNet Packet ID Length We previously didn't have consistency between old and new C++ regarding PacketType enum length. Now we do. This is required or else it completely breaks networking between the versions. * Additional RakNet Error Handling * Disable packet logging * * Fix CMakeLists.txt This reflects the relocation of ClientSideNetworkHandler.cpp. * * Also add renderer/GL/GL.cpp to the CMakeLists.txt * * Replace libpng with stb_image * * Fix buggy water behavior. * * Put the CMakeLists of the SDL project in debug mode * Visual Studio 2010 Support * * Change the SdlIoCallbacks from an array to a single member. This fixes compilation of the sdl2 target on VS. * * Fix missing _error label. * Revert "* Fix missing _error label." This reverts commit 99a057fc84049a16c864bd840fb439a008af5c74. * Revert "* Replace libpng with stb_image" * info_updateGame Tiles --------- Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com> Co-authored-by: iProgramInCpp <iprogramincpp@gmail.com>
This commit is contained in:
@@ -10,6 +10,14 @@
|
||||
#include "MinecraftPackets.hpp"
|
||||
#include "GetTime.h"
|
||||
|
||||
//#define LOG_PACKETS
|
||||
|
||||
#ifdef LOG_PACKETS
|
||||
#define LOG_PACKET(str, ...) LOG_I(str, __VA_ARGS__)
|
||||
#else
|
||||
#define LOG_PACKET(str, ...)
|
||||
#endif
|
||||
|
||||
RakNetInstance::RakNetInstance()
|
||||
{
|
||||
m_bIsHost = false;
|
||||
@@ -55,6 +63,8 @@ bool RakNetInstance::connect(const char* host, int port)
|
||||
|
||||
if (m_pRakPeerInterface->Startup(4, &sd, 1) != RakNet::RAKNET_STARTED)
|
||||
return false;
|
||||
|
||||
LOG_I("Connecting to %s", host);
|
||||
|
||||
// Was evaluated to a bool, CONNECTION_ATTEMPT_STARTED is 0
|
||||
return m_pRakPeerInterface->Connect(host, port, nullptr, 0) != RakNet::CONNECTION_ATTEMPT_STARTED;
|
||||
@@ -127,9 +137,11 @@ void RakNetInstance::runEvents(NetEventCallback* callback)
|
||||
if (!pPacket)
|
||||
break;
|
||||
|
||||
int packetType = *pPacket->data;
|
||||
uint8_t packetType = *(pPacket->data);
|
||||
|
||||
RakNet::BitStream* pBitStream = new RakNet::BitStream(pPacket->data + 1, pPacket->length - 1, 0);
|
||||
|
||||
LOG_PACKET("Recieved packet from %s (id: %d bitStream: 0x%x length: %u)", pPacket->systemAddress.ToString(), packetType, pBitStream, pPacket->length);
|
||||
|
||||
// @NOTE: why -1?
|
||||
if (packetType >= PACKET_LOGIN - 1)
|
||||
@@ -141,8 +153,13 @@ void RakNetInstance::runEvents(NetEventCallback* callback)
|
||||
pUserPacket->handle(pPacket->guid, callback);
|
||||
delete pUserPacket;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_W("Received unrecognized packet type: %d", packetType);
|
||||
}
|
||||
}
|
||||
else switch (packetType)
|
||||
else if (packetType > ID_DETECT_LOST_CONNECTIONS)
|
||||
switch (packetType)
|
||||
{
|
||||
case ID_CONNECTION_REQUEST_ACCEPTED:
|
||||
{
|
||||
@@ -207,6 +224,9 @@ void RakNetInstance::runEvents(NetEventCallback* callback)
|
||||
SKIP_ADDING_NEW_ENTRY:
|
||||
break;
|
||||
}
|
||||
default:
|
||||
LOG_W("Received unrecognized RakNet packet type: %d", packetType);
|
||||
break;
|
||||
}
|
||||
|
||||
m_pRakPeerInterface->DeallocatePacket(pPacket);
|
||||
@@ -241,15 +261,29 @@ void RakNetInstance::send(Packet* packet)
|
||||
RakNet::BitStream bs;
|
||||
packet->write(&bs);
|
||||
|
||||
uint32_t result;
|
||||
if (m_bIsHost)
|
||||
{
|
||||
m_pRakPeerInterface->Send(&bs, HIGH_PRIORITY, RELIABLE, 0, RakNet::AddressOrGUID(), true);
|
||||
result = m_pRakPeerInterface->Send(&bs, HIGH_PRIORITY, RELIABLE, 0, RakNet::UNASSIGNED_RAKNET_GUID, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
// send it to the host instead
|
||||
m_pRakPeerInterface->Send(&bs, HIGH_PRIORITY, RELIABLE, 0, m_guid, false);
|
||||
result = m_pRakPeerInterface->Send(&bs, HIGH_PRIORITY, RELIABLE, 0, m_guid, false);
|
||||
}
|
||||
|
||||
if (result != 0)
|
||||
{
|
||||
#ifdef LOG_PACKETS
|
||||
uint8_t packetId;
|
||||
bs.Read(packetId);
|
||||
LOG_PACKET("Sent packet (id: %d guid: %s)", packetId, m_bIsHost ? "UNASSIGNED_SYSTEM_ADDRESS" : m_guid.ToString());
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_E("Failed to send packet!");
|
||||
}
|
||||
|
||||
delete packet;
|
||||
// return 1300; --- ida tells me this returns 1300. Huh
|
||||
|
||||
Reference in New Issue
Block a user