Packet: ActionResultMessage

This commit is contained in:
Chord 2016-06-04 13:22:25 -04:00
parent f6d84791e6
commit 9f66602298
3 changed files with 54 additions and 1 deletions

View file

@ -361,7 +361,7 @@ object GamePacketOpcode extends Enumeration {
// OPCODE 30
case UnknownMessage30 => noDecoder(opcode)
case ActionResultMessage => noDecoder(opcode)
case ActionResultMessage => game.ActionResultMessage.decode
case UnknownMessage32 => noDecoder(opcode)
case ActionProgressMessage => noDecoder(opcode)
case ActionCancelMessage => noDecoder(opcode)

View file

@ -0,0 +1,27 @@
// Copyright (c) 2016 PSForever.net to present
package net.psforever.packet.game
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
import scodec.Codec
import scodec.codecs._
/**
* Is sent by the server when the client has performed an action from a menu item
* (i.e create character, delete character, etc...)
*/
final case class ActionResultMessage(successfull : Boolean, errorCode : Option[Long])
extends PlanetSideGamePacket {
type Packet = ActionResultMessage
def opcode = GamePacketOpcode.ActionResultMessage
def encode = ActionResultMessage.encode(this)
}
object ActionResultMessage extends Marshallable[ActionResultMessage] {
implicit val codec : Codec[ActionResultMessage] = (
("successful" | bool) >>:~ { res =>
// if not successful, look for an error code
conditional(!res, "error_code" | uint32L).hlist
}
).as[ActionResultMessage]
}