From 37590c4bd8f293ca11dd5ad351f241b7636b67cb Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Fri, 5 Jul 2013 21:11:06 +0000 Subject: Unmounting vehicles implemented in the 1.6.1 way git-svn-id: http://mc-server.googlecode.com/svn/trunk@1650 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Protocol/Protocol16x.cpp | 32 ++++++++++++++++++++++++++++++++ source/Protocol/Protocol16x.h | 6 ++++++ 2 files changed, 38 insertions(+) (limited to 'source/Protocol') diff --git a/source/Protocol/Protocol16x.cpp b/source/Protocol/Protocol16x.cpp index 8c93d6052..d7237b47a 100644 --- a/source/Protocol/Protocol16x.cpp +++ b/source/Protocol/Protocol16x.cpp @@ -37,6 +37,7 @@ enum { PACKET_CHAT = 0x03, PACKET_UPDATE_HEALTH = 0x08, + PACKET_STEER_VEHICLE = 0x1b, PACKET_ATTACH_ENTITY = 0x27, PACKET_ENTITY_PROPERTIES = 0x2c, PACKET_WINDOW_OPEN = 0x64, @@ -161,3 +162,34 @@ int cProtocol161::ParsePlayerAbilities(void) + +int cProtocol161::ParseSteerVehicle(void) +{ + HANDLE_PACKET_READ(ReadBEFloat, float, Sideways); + HANDLE_PACKET_READ(ReadBEFloat, float, Forward); + HANDLE_PACKET_READ(ReadBool, bool, Jump); + HANDLE_PACKET_READ(ReadBool, bool, Unmount); + // TODO: m_Client->HandleSteerVehicle(...); + if (Unmount) + { + m_Client->HandleUnmount(); + } + return PARSE_OK; +} + + + + + +int cProtocol161::ParsePacket(unsigned char a_PacketType) +{ + switch (a_PacketType) + { + case PACKET_STEER_VEHICLE: return ParseSteerVehicle(); + default: return super::ParsePacket(a_PacketType); + } +} + + + + diff --git a/source/Protocol/Protocol16x.h b/source/Protocol/Protocol16x.h index 5bc924c6d..b3d051a14 100644 --- a/source/Protocol/Protocol16x.h +++ b/source/Protocol/Protocol16x.h @@ -37,6 +37,12 @@ public: virtual int ParseEntityAction (void) override; virtual int ParsePlayerAbilities(void) override; + + // New packets: + virtual int ParseSteerVehicle(void); + + // Enable new packets' handling + virtual int ParsePacket(unsigned char a_PacketType) override; } ; -- cgit v1.2.3