2017-03-06 19:30:45 -05:00
|
|
|
// Copyright (c) 2017 PSForever
|
2017-03-04 10:06:10 -05:00
|
|
|
package game
|
|
|
|
|
|
|
|
|
|
import org.specs2.mutable._
|
|
|
|
|
import net.psforever.packet._
|
|
|
|
|
import net.psforever.packet.game._
|
|
|
|
|
import net.psforever.types.Vector3
|
|
|
|
|
import scodec.bits._
|
|
|
|
|
|
|
|
|
|
class PlayerStateMessageUpstreamTest extends Specification {
|
|
|
|
|
val string = hex"BD 4B000 E377BA575B616C640A70004014060110007000000"
|
|
|
|
|
|
|
|
|
|
"decode" in {
|
|
|
|
|
PacketCoding.DecodePacket(string).require match {
|
|
|
|
|
case PlayerStateMessageUpstream(avatar_guid, pos, vel, unk1, aim_pitch, unk2, seq_time, unk3, is_crouching, unk4, unk5, is_cloaking, unk6, unk7) =>
|
|
|
|
|
avatar_guid mustEqual PlanetSideGUID(75)
|
|
|
|
|
pos mustEqual Vector3(3694.1094f, 2735.4531f, 90.84375f)
|
|
|
|
|
vel mustEqual Some(Vector3(4.375f, 2.59375f, 0.0f))
|
|
|
|
|
unk1 mustEqual 10
|
|
|
|
|
aim_pitch mustEqual 3
|
|
|
|
|
unk2 mustEqual 0
|
|
|
|
|
seq_time mustEqual 136
|
|
|
|
|
unk3 mustEqual 0
|
|
|
|
|
is_crouching mustEqual false
|
|
|
|
|
unk4 mustEqual false
|
|
|
|
|
unk5 mustEqual false
|
|
|
|
|
is_cloaking mustEqual false
|
|
|
|
|
unk6 mustEqual 112
|
|
|
|
|
unk7 mustEqual 0
|
|
|
|
|
case _ =>
|
|
|
|
|
ko
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"encode" in {
|
|
|
|
|
val msg = PlayerStateMessageUpstream(PlanetSideGUID(75), Vector3(3694.1094f, 2735.4531f, 90.84375f), Some(Vector3(4.375f, 2.59375f, 0.0f)), 10, 3, 0, 136, 0, false, false, false, false, 112, 0)
|
|
|
|
|
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
|
|
|
|
|
|
|
|
|
pkt mustEqual string
|
|
|
|
|
}
|
|
|
|
|
}
|