From 5bbeeb3d6697c3b8ec5640aea07e594eaf3a22b0 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Wed, 3 Oct 2012 18:44:42 +0000 Subject: [PATCH] Added the "collect pickup" sound to 1.3.2 git-svn-id: http://mc-server.googlecode.com/svn/trunk@923 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Protocol/Protocol132.cpp | 22 ++++++++++++++++++++++ source/Protocol/Protocol132.h | 1 + 2 files changed, 23 insertions(+) diff --git a/source/Protocol/Protocol132.cpp b/source/Protocol/Protocol132.cpp index d8c9f1f27..f356b611a 100644 --- a/source/Protocol/Protocol132.cpp +++ b/source/Protocol/Protocol132.cpp @@ -14,6 +14,7 @@ #include "../Player.h" #include "../Mobs/Monster.h" #include "../UI/Window.h" +#include "../Pickup.h" @@ -56,6 +57,7 @@ enum PACKET_ENTITY_EQUIPMENT = 0x05, PACKET_COMPASS = 0x06, PACKET_PLAYER_SPAWN = 0x14, + PACKET_COLLECT_PICKUP = 0x16, PACKET_SPAWN_MOB = 0x18, PACKET_DESTROY_ENTITIES = 0x1d, PACKET_CHUNK_DATA = 0x33, @@ -247,6 +249,26 @@ void cProtocol132::SendChunkData(int a_ChunkX, int a_ChunkZ, cChunkDataSerialize +void cProtocol132::SendCollectPickup(const cPickup & a_Pickup, const cPlayer & a_Player) +{ + cCSLock Lock(m_CSPacket); + WriteByte(PACKET_COLLECT_PICKUP); + WriteInt (a_Pickup.GetUniqueID()); + WriteInt (a_Player.GetUniqueID()); + Flush(); + + // Also send the "pop" sound effect with a somewhat random pitch (fast-random using EntityID ;) + SendSoundEffect( + "random.pop", + (int)(a_Pickup.GetPosX() * 8), (int)(a_Pickup.GetPosY() * 8), (int)(a_Pickup.GetPosZ() * 8), + 0.5, (float)(0.75 + ((float)((a_Pickup.GetUniqueID() * 23) % 32)) / 64) + ); +} + + + + + void cProtocol132::SendDestroyEntity(const cEntity & a_Entity) { cCSLock Lock(m_CSPacket); diff --git a/source/Protocol/Protocol132.h b/source/Protocol/Protocol132.h index 977ddca92..f5175e3bb 100644 --- a/source/Protocol/Protocol132.h +++ b/source/Protocol/Protocol132.h @@ -33,6 +33,7 @@ public: virtual void SendBlockAction (int a_BlockX, int a_BlockY, int a_BlockZ, char a_Byte1, char a_Byte2, BLOCKTYPE a_BlockType) override; virtual void SendBlockChange (int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) override; virtual void SendChunkData (int a_ChunkX, int a_ChunkZ, cChunkDataSerializer & a_Serializer) override; + virtual void SendCollectPickup (const cPickup & a_Pickup, const cPlayer & a_Player) override; virtual void SendDestroyEntity (const cEntity & a_Entity) override; virtual void SendEntityEquipment(const cEntity & a_Entity, short a_SlotNum, const cItem & a_Item) override; virtual void SendLogin (const cPlayer & a_Player, const cWorld & a_World) override;