1
0
Fork 0

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
This commit is contained in:
madmaxoft@gmail.com 2013-07-05 21:11:06 +00:00
parent b818addde4
commit 37590c4bd8
4 changed files with 52 additions and 0 deletions

View File

@ -1200,6 +1200,19 @@ void cClientHandle::HandleEntityAction(int a_EntityID, char a_ActionID)
void cClientHandle::HandleUnmount(void)
{
if (m_Player == NULL)
{
return;
}
m_Player->Detach();
}
void cClientHandle::SendData(const char * a_Data, int a_Size)
{
{

View File

@ -178,6 +178,7 @@ public:
void HandleKeepAlive (int a_KeepAliveID);
bool HandleHandshake (const AString & a_Username);
void HandleEntityAction (int a_EntityID, char a_ActionID);
void HandleUnmount (void);
/** Called when the protocol has finished logging the user in.
Return true to allow the user in; false to kick them.

View File

@ -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);
}
}

View File

@ -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;
} ;