Packet: UseItemMessage (#35)

* Add UseItemMessage packet

* Add UseItemMessage test

* Add UseItemMessage handler stub
This commit is contained in:
tfarley 2016-07-25 18:30:50 -07:00 committed by pschord
parent 3ccb31f961
commit 5b5bf28c52
4 changed files with 77 additions and 1 deletions

View file

@ -337,7 +337,7 @@ object GamePacketOpcode extends Enumeration {
case ReloadMessage => game.ReloadMessage.decode
case MountVehicleMsg => noDecoder(opcode)
case DismountVehicleMsg => noDecoder(opcode)
case UseItemMessage => noDecoder(opcode)
case UseItemMessage => game.UseItemMessage.decode
case MoveItemMessage => game.MoveItemMessage.decode
case ChatMsg => game.ChatMsg.decode
case CharacterNoRecordMessage => noDecoder(opcode)

View file

@ -0,0 +1,40 @@
// Copyright (c) 2016 PSForever.net to present
package net.psforever.packet.game
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
import net.psforever.types.Vector3
import scodec.Codec
import scodec.codecs._
final case class UseItemMessage(avatar_guid : PlanetSideGUID,
unk1 : Int,
object_guid : PlanetSideGUID,
unk2 : Long,
unk3 : Boolean,
unk4 : Vector3,
unk5 : Vector3,
unk6 : Int,
unk7 : Int,
unk8 : Int,
unk9 : Long)
extends PlanetSideGamePacket {
type Packet = UseItemMessage
def opcode = GamePacketOpcode.UseItemMessage
def encode = UseItemMessage.encode(this)
}
object UseItemMessage extends Marshallable[UseItemMessage] {
implicit val codec : Codec[UseItemMessage] = (
("avatar_guid" | PlanetSideGUID.codec) ::
("unk1" | uint16L) ::
("object_guid" | PlanetSideGUID.codec) ::
("unk2" | uint32L) ::
("unk3" | bool) ::
("unk4" | Vector3.codec_pos) ::
("unk5" | Vector3.codec_pos) ::
("unk6" | uint8L) ::
("unk7" | uint8L) ::
("unk8" | uint8L) ::
("unk9" | uint32L)
).as[UseItemMessage]
}