2017-10-06 23:34:37 -05:00
|
|
|
// Copyright (c) 2017 PSForever
|
|
|
|
|
package game
|
|
|
|
|
|
|
|
|
|
import org.specs2.mutable._
|
|
|
|
|
import net.psforever.packet._
|
|
|
|
|
import net.psforever.packet.game._
|
2020-01-06 08:45:55 -05:00
|
|
|
import net.psforever.types.PlanetSideGUID
|
2017-10-06 23:34:37 -05:00
|
|
|
import scodec.bits._
|
|
|
|
|
|
|
|
|
|
class HackMessageTest extends Specification {
|
|
|
|
|
// Record 62 in PSCap-hack-door-tower.gcap
|
|
|
|
|
val string = hex"54 000105c3800000202fc04200000000"
|
|
|
|
|
|
|
|
|
|
"decode" in {
|
|
|
|
|
PacketCoding.DecodePacket(string).require match {
|
2017-10-13 14:57:28 -04:00
|
|
|
case HackMessage(unk1, target_guid, player_guid, progress, unk5, hack_state, unk7) =>
|
2017-10-06 23:34:37 -05:00
|
|
|
unk1 mustEqual 0
|
2017-10-13 14:57:28 -04:00
|
|
|
target_guid mustEqual PlanetSideGUID(1024)
|
|
|
|
|
player_guid mustEqual PlanetSideGUID(3607)
|
|
|
|
|
progress mustEqual 0
|
2017-10-06 23:34:37 -05:00
|
|
|
unk5 mustEqual 3212836864L
|
2017-10-13 14:57:28 -04:00
|
|
|
hack_state mustEqual HackState.Start
|
2017-10-06 23:34:37 -05:00
|
|
|
unk7 mustEqual 8L
|
|
|
|
|
case _ =>
|
|
|
|
|
ko
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"encode" in {
|
2017-10-13 14:57:28 -04:00
|
|
|
val msg = HackMessage(0, PlanetSideGUID(1024), PlanetSideGUID(3607), 0, 3212836864L, HackState.Start, 8L)
|
2017-10-06 23:34:37 -05:00
|
|
|
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
|
|
|
|
pkt mustEqual string
|
|
|
|
|
}
|
|
|
|
|
}
|