Commit 34dafd95 authored by Chunchi Che's avatar Chunchi Che

handle StocUpdateDeck

parent 03aa9094
......@@ -21,6 +21,7 @@ const (
)
const (
CtosUpdateDeck = 2
CtosProtoPlayerInfo = 16
CtosProtoJoinGame = 18
......@@ -106,6 +107,8 @@ func Transform(src []byte, tranformType int, ctx *util.Context) ([]byte, error)
packet = (*pCtosPlayerInfo)(message.GetCtosPlayerInfo()).Pb2Packet()
case *(ygopropb.YgoCtosMsg_CtosJoinGame):
packet = (*pCtosJoinGame)(message.GetCtosJoinGame()).Pb2Packet()
case *(ygopropb.YgoCtosMsg_CtosUpdateDeck):
packet = (*pCtosUpdateDeck)(message.GetCtosUpdateDeck()).Pb2Packet()
default:
return nil, errors.New(COMPONENT + "Unhandled YgoCtosMsg type")
}
......@@ -182,6 +185,29 @@ func (pb *pCtosJoinGame) Pb2Packet() YgoPacket {
}
}
type pCtosUpdateDeck ygopropb.CtosUpdateDeck
// @main: []int32
// @extra: []int32
// @size: []int32
func (pb *pCtosUpdateDeck) Pb2Packet() YgoPacket {
v := make([]int32, 0)
v = append(v, int32(len(pb.Main)+len(pb.Extra)))
v = append(v, int32(len(pb.Side)))
v = append(v, pb.Main...)
v = append(v, pb.Extra...)
v = append(v, pb.Side...)
exdata := util.Int32ArrayToByteArray(v)
return YgoPacket{
PacketLen: uint16(len(exdata)) + 1,
Proto: CtosUpdateDeck,
Exdata: exdata,
}
}
// +++++ Server To Client +++++
type server2Client interface {
......
......@@ -49,6 +49,16 @@ func Uint16BufToByteBuf(u16_b []uint16) []byte {
return b
}
func Int32ArrayToByteArray(v []int32) []byte {
b := make([]byte, 0, len(v)*4)
for _, i := range v {
b = append(b, byte(i), byte(i>>8), byte(i>>16), byte(i>>24))
}
return b
}
func chunkBytesToUint16s(items []byte) []uint16 {
const chunkSize = 2
var chunks []uint16
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment