mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-01-28 22:30:59 +00:00
comments in the main packet file and working tests
This commit is contained in:
parent
749d2d2c50
commit
941b1f01bb
|
|
@ -6,16 +6,26 @@ import scodec.Codec
|
|||
import scodec.codecs._
|
||||
|
||||
/**
|
||||
* na
|
||||
* Dispatched from a client when its user is controlling a secondary object whose state must be updated.<br>
|
||||
* <br>
|
||||
* When `ChildObjectStateMessage` is being sent to the server, it replaces `PlayerStateMessage`.
|
||||
* The packet frequently gets hidden in a `MultiPacket`, though it is not functionally essential to do that.<br>
|
||||
* <br>
|
||||
* Note the lack of position data.
|
||||
* The secondary object in question is updated in position through another means or is stationary.
|
||||
* The only concern is the direction the object is facing.
|
||||
* The angles are relative to the object's normal forward-facing and typically begin tracking at 0, 0 (forward-facing).
|
||||
* @param object_guid the object being manipulated (controlled)
|
||||
* @param pitch the angle with respect to the sky and the ground towards which the object is directed;
|
||||
* an 8-bit unsigned value;
|
||||
* 0 is perfectly level and forward-facing, wrapping around at 255;
|
||||
* positive rotation is occurs by rotating downwards from forward-facing
|
||||
* 0 is perfectly level and forward-facing and mapped to 255;
|
||||
* positive rotation is downwards from forward-facing;
|
||||
* between 7 (down) and 231 (up), for 32 angles
|
||||
* @param yaw the angle with respect to the horizon towards which the object is directed;
|
||||
* an 8-bit unsigned value;
|
||||
* 0 is forward-facing, wrapping around at 255;
|
||||
* positive rotation is clockwise of forward-facing
|
||||
* an 8-bit unsigned value;
|
||||
* 0 is forward-facing, wrapping around at 127;
|
||||
* positive rotation is counter-clockwise of forward-facing;
|
||||
* full rotation
|
||||
*/
|
||||
final case class ChildObjectStateMessage(object_guid : PlanetSideGUID,
|
||||
pitch : Int,
|
||||
|
|
|
|||
29
common/src/test/scala/game/ChildObjectStateMessageTest.scala
Normal file
29
common/src/test/scala/game/ChildObjectStateMessageTest.scala
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
// Copyright (c) 2017 PSForever
|
||||
package game
|
||||
|
||||
import org.specs2.mutable._
|
||||
import net.psforever.packet._
|
||||
import net.psforever.packet.game._
|
||||
import scodec.bits._
|
||||
|
||||
class ChildObjectStateMessageTest extends Specification {
|
||||
val string = hex"1E 640B 06 47"
|
||||
|
||||
"decode" in {
|
||||
PacketCoding.DecodePacket(string).require match {
|
||||
case ChildObjectStateMessage(object_guid, pitch, yaw) =>
|
||||
object_guid mustEqual PlanetSideGUID(2916)
|
||||
pitch mustEqual 6
|
||||
yaw mustEqual 71
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
}
|
||||
|
||||
"encode" in {
|
||||
val msg = ChildObjectStateMessage(PlanetSideGUID(2916), 6, 71)
|
||||
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||
|
||||
pkt mustEqual string
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue