diff --git a/common/src/main/scala/net/psforever/packet/GamePacketOpcode.scala b/common/src/main/scala/net/psforever/packet/GamePacketOpcode.scala index f984eb78..50638cb2 100644 --- a/common/src/main/scala/net/psforever/packet/GamePacketOpcode.scala +++ b/common/src/main/scala/net/psforever/packet/GamePacketOpcode.scala @@ -441,7 +441,7 @@ object GamePacketOpcode extends Enumeration { // OPCODE 100 case AvatarSearchCriteriaMessage => noDecoder(opcode) case AvatarSearchResponse => noDecoder(opcode) - case WeaponJammedMessage => noDecoder(opcode) + case WeaponJammedMessage => game.WeaponJammedMessage.decode case LinkDeadAwarenessMsg => noDecoder(opcode) case DroppodFreefallingMessage => noDecoder(opcode) case AvatarFirstTimeEventMessage => game.AvatarFirstTimeEventMessage.decode diff --git a/common/src/main/scala/net/psforever/packet/game/WeaponJammedMessage.scala b/common/src/main/scala/net/psforever/packet/game/WeaponJammedMessage.scala new file mode 100644 index 00000000..de772346 --- /dev/null +++ b/common/src/main/scala/net/psforever/packet/game/WeaponJammedMessage.scala @@ -0,0 +1,27 @@ +// Copyright (c) 2016 PSForever.net to present +package net.psforever.packet.game + +import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket} +import scodec.Codec +import scodec.codecs._ + +/** + * Instructs client to play the weapon jammed sound when sent server to client. + * + * Appears to have the same functionality and sound regardless of guid, as long as the client has that item in inventory. + * See also [[WeaponDryFireMessage]] + * + * @param weapon_guid the weapon that is jammed + */ +final case class WeaponJammedMessage(weapon_guid : PlanetSideGUID) + extends PlanetSideGamePacket { + type Packet = WeaponJammedMessage + def opcode = GamePacketOpcode.WeaponJammedMessage + def encode = WeaponJammedMessage.encode(this) +} + +object WeaponJammedMessage extends Marshallable[WeaponJammedMessage] { + implicit val codec : Codec[WeaponJammedMessage] = ( + ("weapon_guid" | PlanetSideGUID.codec) + ).as[WeaponJammedMessage] +}