summaryrefslogtreecommitdiffstats
path: root/src/Protocol
diff options
context:
space:
mode:
Diffstat (limited to 'src/Protocol')
-rw-r--r--src/Protocol/Protocol_1_11.cpp18
-rw-r--r--src/Protocol/Protocol_1_12.cpp18
2 files changed, 36 insertions, 0 deletions
diff --git a/src/Protocol/Protocol_1_11.cpp b/src/Protocol/Protocol_1_11.cpp
index e4aaa8f6f..3376e8f88 100644
--- a/src/Protocol/Protocol_1_11.cpp
+++ b/src/Protocol/Protocol_1_11.cpp
@@ -956,6 +956,24 @@ void cProtocol_1_11_0::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
a_Pkt.WriteBool(Ocelot.IsBaby());
+
+ Int8 OcelotStatus = 0;
+ if (Ocelot.IsSitting())
+ {
+ OcelotStatus |= 0x1;
+ }
+ if (Ocelot.IsTame())
+ {
+ OcelotStatus |= 0x4;
+ }
+ a_Pkt.WriteBEUInt8(TAMEABLE_ANIMAL_STATUS);
+ a_Pkt.WriteBEUInt8(METADATA_TYPE_BYTE);
+ a_Pkt.WriteBEInt8(OcelotStatus);
+
+ a_Pkt.WriteBEUInt8(OCELOT_TYPE);
+ a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
+ a_Pkt.WriteVarInt32(static_cast<UInt32>(Ocelot.GetOcelotType()));
+
break;
} // case mtOcelot
diff --git a/src/Protocol/Protocol_1_12.cpp b/src/Protocol/Protocol_1_12.cpp
index a702361b2..a25ac1c0d 100644
--- a/src/Protocol/Protocol_1_12.cpp
+++ b/src/Protocol/Protocol_1_12.cpp
@@ -769,6 +769,24 @@ void cProtocol_1_12::WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_Mo
a_Pkt.WriteBEUInt8(AGEABLE_BABY);
a_Pkt.WriteBEUInt8(METADATA_TYPE_BOOL);
a_Pkt.WriteBool(Ocelot.IsBaby());
+
+ Int8 OcelotStatus = 0;
+ if (Ocelot.IsSitting())
+ {
+ OcelotStatus |= 0x1;
+ }
+ if (Ocelot.IsTame())
+ {
+ OcelotStatus |= 0x4;
+ }
+ a_Pkt.WriteBEUInt8(TAMEABLE_ANIMAL_STATUS);
+ a_Pkt.WriteBEUInt8(METADATA_TYPE_BYTE);
+ a_Pkt.WriteBEInt8(OcelotStatus);
+
+ a_Pkt.WriteBEUInt8(OCELOT_TYPE);
+ a_Pkt.WriteBEUInt8(METADATA_TYPE_VARINT);
+ a_Pkt.WriteVarInt32(static_cast<UInt32>(Ocelot.GetOcelotType()));
+
break;
} // case mtOcelot