Merge pull request #144 from SouNourS/DelayedPathMountMsg

Packet: DelayedPathMountMsg
This commit is contained in:
Fate-JH 2017-05-07 13:58:38 -04:00 committed by GitHub
commit 7a93501d38
3 changed files with 63 additions and 1 deletions

View file

@ -425,7 +425,7 @@ object GamePacketOpcode extends Enumeration {
// 0x58
case 0x58 => game.AvatarImplantMessage.decode
case 0x59 => noDecoder(UnknownMessage89)
case 0x5a => noDecoder(DelayedPathMountMsg)
case 0x5a => game.DelayedPathMountMsg.decode
case 0x5b => noDecoder(OrbitalShuttleTimeMsg)
case 0x5c => noDecoder(AIDamage)
case 0x5d => game.DeployObjectMessage.decode

View file

@ -0,0 +1,32 @@
// 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._
/**
* na
* @param player_guid na
* @param vehicle_guid vehicle ?, turret ? Found a HART GUID for now. Need more search.
* @param u1 na - maybe a delay ?
* @param u2 na
*/
final case class DelayedPathMountMsg(player_guid : PlanetSideGUID,
vehicle_guid : PlanetSideGUID,
u1 : Int,
u2 : Boolean)
extends PlanetSideGamePacket {
type Packet = DelayedPathMountMsg
def opcode = GamePacketOpcode.DelayedPathMountMsg
def encode = DelayedPathMountMsg.encode(this)
}
object DelayedPathMountMsg extends Marshallable[DelayedPathMountMsg] {
implicit val codec : Codec[DelayedPathMountMsg] = (
("player_guid" | PlanetSideGUID.codec) ::
("vehicle_guid" | PlanetSideGUID.codec) ::
("u1" | uint8L) ::
("u2" | bool)
).as[DelayedPathMountMsg]
}

View file

@ -0,0 +1,30 @@
// Copyright (c) 2017 PSForever
package game
import org.specs2.mutable._
import net.psforever.packet._
import net.psforever.packet.game._
import scodec.bits._
class DelayedPathMountMsgTest extends Specification {
val string = hex"5a f50583044680"
"decode" in {
PacketCoding.DecodePacket(string).require match {
case DelayedPathMountMsg(player_guid, vehicle_guid,u3,u4) =>
player_guid mustEqual PlanetSideGUID(1525)
vehicle_guid mustEqual PlanetSideGUID(1155)
u3 mustEqual 70
u4 mustEqual true
case _ =>
ko
}
}
"encode" in {
val msg = DelayedPathMountMsg(PlanetSideGUID(1525), PlanetSideGUID(1155),70,true)
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
pkt mustEqual string
}
}