initial work on BeginZoningMessage; working tests (not like there's anything to test in the tests)

This commit is contained in:
FateJH 2017-04-21 00:24:44 -04:00
parent 68473dda45
commit 9f783572cd
4 changed files with 50 additions and 1 deletions

View file

@ -398,7 +398,7 @@ object GamePacketOpcode extends Enumeration {
case 0x40 => noDecoder(MountVehicleCargoMsg)
case 0x41 => noDecoder(DismountVehicleCargoMsg)
case 0x42 => noDecoder(CargoMountPointStatusMessage)
case 0x43 => noDecoder(BeginZoningMessage)
case 0x43 => game.BeginZoningMessage.decode
case 0x44 => game.ItemTransactionMessage.decode
case 0x45 => game.ItemTransactionResultMessage.decode
case 0x46 => game.ChangeFireModeMessage.decode

View file

@ -0,0 +1,19 @@
// Copyright (c) 2017 PSForever
package net.psforever.packet.game
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
import scodec.Codec
/**
* na
*/
final case class BeginZoningMessage()
extends PlanetSideGamePacket {
type Packet = BeginZoningMessage
def opcode = GamePacketOpcode.BeginZoningMessage
def encode = BeginZoningMessage.encode(this)
}
object BeginZoningMessage extends Marshallable[BeginZoningMessage] {
implicit val codec : Codec[BeginZoningMessage] = PacketHelpers.emptyCodec(BeginZoningMessage())
}

View file

@ -0,0 +1,27 @@
// Copyright (c) 2017 PSForever
package game
import org.specs2.mutable._
import net.psforever.packet._
import net.psforever.packet.game._
import scodec.bits._
class BeginZoningMessageTest extends Specification {
val string = hex"43" //yes, just the opcode
"decode" in {
PacketCoding.DecodePacket(string).require match {
case BeginZoningMessage() =>
ok
case _ =>
ko
}
}
"encode" in {
val msg = BeginZoningMessage()
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
pkt mustEqual string
}
}

View file

@ -235,6 +235,9 @@ class WorldSessionActor extends Actor with MDCContextAware {
case KeepAliveMessage(code) =>
sendResponse(PacketCoding.CreateGamePacket(0, KeepAliveMessage(0)))
case msg @ BeginZoningMessage() =>
log.info("Reticulating splines ...")
case msg @ PlayerStateMessageUpstream(avatar_guid, pos, vel, unk1, aim_pitch, unk2, seq_time, unk3, is_crouching, is_jumping, unk4, is_cloaking, unk5, unk6) =>
//log.info("PlayerState: " + msg)