added a refactored squad joining entrypoint; initial work and test on SquadWaypointEvent packet; initial work on SquadWaypointRequest packet; squad waypoints up to #5 (squad experience) should be working

This commit is contained in:
FateJH 2019-08-19 19:20:42 -04:00
parent 56d8748e99
commit 60d65e22d3
8 changed files with 343 additions and 147 deletions

View file

@ -3,7 +3,7 @@ package game
import org.specs2.mutable._
import net.psforever.packet._
import net.psforever.packet.game.{SquadWaypointEvent, WaypointEvent}
import net.psforever.packet.game.{SquadWaypointEvent, WaypointEventAction, WaypointEvent}
import net.psforever.types.Vector3
import scodec.bits._
@ -16,12 +16,12 @@ class SquadWaypointEventTest extends Specification {
"decode (1)" in {
PacketCoding.DecodePacket(string_1).require match {
case SquadWaypointEvent(unk1, unk2, unk3, unk4, unk5, unk6) =>
unk1 mustEqual 2
unk1 mustEqual WaypointEventAction.Remove
unk2 mustEqual 11
unk3 mustEqual 31155863L
unk4 mustEqual 0
unk5 mustEqual None
unk6 mustEqual None
unk5.isEmpty mustEqual true
unk6.isEmpty mustEqual true
case _ =>
ko
}
@ -30,12 +30,12 @@ class SquadWaypointEventTest extends Specification {
"decode (2)" in {
PacketCoding.DecodePacket(string_2).require match {
case SquadWaypointEvent(unk1, unk2, unk3, unk4, unk5, unk6) =>
unk1 mustEqual 2
unk1 mustEqual WaypointEventAction.Remove
unk2 mustEqual 10
unk3 mustEqual 0L
unk4 mustEqual 4
unk5 mustEqual None
unk6 mustEqual None
unk5.isEmpty mustEqual true
unk6.isEmpty mustEqual true
case _ =>
ko
}
@ -44,12 +44,12 @@ class SquadWaypointEventTest extends Specification {
"decode (3)" in {
PacketCoding.DecodePacket(string_3).require match {
case SquadWaypointEvent(unk1, unk2, unk3, unk4, unk5, unk6) =>
unk1 mustEqual 0
unk1 mustEqual WaypointEventAction.Add
unk2 mustEqual 3
unk3 mustEqual 41581052L
unk4 mustEqual 1
unk5 mustEqual None
unk6 mustEqual Some(WaypointEvent(10, Vector3(3457.9688f, 5514.4688f, 0.0f), 1))
unk5.isEmpty mustEqual true
unk6.contains( WaypointEvent(10, Vector3(3457.9688f, 5514.4688f, 0.0f), 1) ) mustEqual true
case _ =>
ko
}
@ -58,40 +58,40 @@ class SquadWaypointEventTest extends Specification {
"decode (4)" in {
PacketCoding.DecodePacket(string_4).require match {
case SquadWaypointEvent(unk1, unk2, unk3, unk4, unk5, unk6) =>
unk1 mustEqual 1
unk1 mustEqual WaypointEventAction.Unknown1
unk2 mustEqual 3
unk3 mustEqual 41581052L
unk4 mustEqual 1
unk5 mustEqual Some(4L)
unk6 mustEqual None
unk5.contains( 4L ) mustEqual true
unk6.isEmpty mustEqual true
case _ =>
ko
}
}
"encode (1)" in {
val msg = SquadWaypointEvent(2, 11, 31155863L, 0)
val msg = SquadWaypointEvent.Remove(11, 31155863L, 0)
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
pkt mustEqual string_1
}
"encode (2)" in {
val msg = SquadWaypointEvent(2, 10, 0L, 4)
val msg = SquadWaypointEvent.Remove(10, 0L, 4)
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
pkt mustEqual string_2
}
"encode (3)" in {
val msg = SquadWaypointEvent(0, 3, 41581052L, 1, 10, Vector3(3457.9688f, 5514.4688f, 0.0f), 1)
val msg = SquadWaypointEvent.Add(3, 41581052L, 1, WaypointEvent(10, Vector3(3457.9688f, 5514.4688f, 0.0f), 1))
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
pkt mustEqual string_3
}
"encode (4)" in {
val msg = SquadWaypointEvent(1, 3, 41581052L, 1, 4L)
val msg = SquadWaypointEvent.Unknown1(3, 41581052L, 1, 4L)
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
pkt mustEqual string_4