Merge pull request #167 from SouNourS/ActionProgressMessage

Packet: ActionProgressMessage
This commit is contained in:
Fate-JH 2017-10-04 22:59:44 -04:00 committed by GitHub
commit 37c639ecd9
3 changed files with 54 additions and 1 deletions

View file

@ -358,7 +358,7 @@ object GamePacketOpcode extends Enumeration {
// OPCODES 0x20-2f
case 0x20 => noDecoder(UnknownMessage32)
case 0x21 => noDecoder(ActionProgressMessage)
case 0x21 => game.ActionProgressMessage.decode
case 0x22 => noDecoder(ActionCancelMessage)
case 0x23 => noDecoder(ActionCancelAcknowledgeMessage)
case 0x24 => game.SetEmpireMessage.decode

View file

@ -0,0 +1,24 @@
// Copyright (c) 2017 PSForever
package net.psforever.packet.game
import net.psforever.packet.{GamePacketOpcode, Marshallable, PlanetSideGamePacket}
import scodec.Codec
import scodec.codecs._
/**
*
*/
final case class ActionProgressMessage(unk1 : Int,
unk2 : Long)
extends PlanetSideGamePacket {
type Packet = ActionProgressMessage
def opcode = GamePacketOpcode.ActionProgressMessage
def encode = ActionProgressMessage.encode(this)
}
object ActionProgressMessage extends Marshallable[ActionProgressMessage] {
implicit val codec : Codec[ActionProgressMessage] = (
("unk1" | uint4L) ::
("unk2" | uint32L)
).as[ActionProgressMessage]
}

View file

@ -0,0 +1,29 @@
// Copyright (c) 2017 PSForever
package game
import org.specs2.mutable._
import net.psforever.packet._
import net.psforever.packet.game._
import net.psforever.types.ExoSuitType
import scodec.bits._
class ActionProgressMessageTest extends Specification {
val string = hex"216000000000"
"decode" in {
PacketCoding.DecodePacket(string).require match {
case ActionProgressMessage(unk1, unk2) =>
unk1 mustEqual 6
unk2 mustEqual 0
case _ =>
ko
}
}
"encode" in {
val msg = ActionProgressMessage(6, 0L)
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
pkt mustEqual string
}
}