work on packet and tests; I think this is all we can do with this packet, actually

This commit is contained in:
FateJH 2017-01-25 23:19:46 -05:00
parent a31ad6ffd3
commit a1b8589f1a
3 changed files with 39 additions and 1 deletions

View file

@ -341,7 +341,7 @@ object GamePacketOpcode extends Enumeration {
case 0x10 => game.UseItemMessage.decode
case 0x11 => game.MoveItemMessage.decode
case 0x12 => game.ChatMsg.decode
case 0x13 => noDecoder(CharacterNoRecordMessage)
case 0x13 => game.CharacterNoRecordMessage.decode
case 0x14 => game.CharacterInfoMessage.decode
case 0x15 => noDecoder(UnknownMessage21)
case 0x16 => noDecoder(BindPlayerMessage)

View file

@ -0,0 +1,18 @@
//CharacterNoRecordMessage
// Copyright (c) 2016 PSForever.net to present
package net.psforever.packet.game
import net.psforever.packet.{GamePacketOpcode, Marshallable, PlanetSideGamePacket}
import scodec.Codec
import scodec.codecs._
final case class CharacterNoRecordMessage(unk : Long)
extends PlanetSideGamePacket {
type Packet = CharacterNoRecordMessage
def opcode = GamePacketOpcode.CharacterNoRecordMessage
def encode = CharacterNoRecordMessage.encode(this)
}
object CharacterNoRecordMessage extends Marshallable[CharacterNoRecordMessage] {
implicit val codec : Codec[CharacterNoRecordMessage] = ("unk" | uint32L).as[CharacterNoRecordMessage]
}

View file

@ -622,6 +622,26 @@ class GamePacketTest extends Specification {
}
}
"CharacterNoRecordMessage" should {
val string = hex"13 00400000" //we have no record of this packet, so here's something fake that works
"deocde" in {
PacketCoding.DecodePacket(string).require match {
case CharacterNoRecordMessage(unk) =>
unk mustEqual 16384
case default =>
ko
}
}
"encode" in {
val msg = CharacterNoRecordMessage(16384)
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
pkt mustEqual string
}
}
"ChangeFireModeMessage" should {
val string = hex"46 4C0020"