222 lines
6.3 KiB
Go
222 lines
6.3 KiB
Go
|
|
// Code generated by arpack. DO NOT EDIT.
|
||
|
|
|
||
|
|
package arpackmsg
|
||
|
|
|
||
|
|
import (
|
||
|
|
"encoding/binary"
|
||
|
|
"errors"
|
||
|
|
"math"
|
||
|
|
)
|
||
|
|
|
||
|
|
func (m *Vector3) Marshal(buf []byte) []byte {
|
||
|
|
_qm_X := uint16((m.X - (-500)) / (500 - (-500)) * 65535)
|
||
|
|
buf = binary.LittleEndian.AppendUint16(buf, _qm_X)
|
||
|
|
_qm_Y := uint16((m.Y - (-500)) / (500 - (-500)) * 65535)
|
||
|
|
buf = binary.LittleEndian.AppendUint16(buf, _qm_Y)
|
||
|
|
_qm_Z := uint16((m.Z - (-500)) / (500 - (-500)) * 65535)
|
||
|
|
buf = binary.LittleEndian.AppendUint16(buf, _qm_Z)
|
||
|
|
return buf
|
||
|
|
}
|
||
|
|
|
||
|
|
func (m *Vector3) Unmarshal(data []byte) (int, error) {
|
||
|
|
if len(data) < 6 {
|
||
|
|
return 0, errors.New("arpack: buffer too short for Vector3")
|
||
|
|
}
|
||
|
|
offset := 0
|
||
|
|
if len(data) < offset+2 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
_qm_X := binary.LittleEndian.Uint16(data[offset:])
|
||
|
|
offset += 2
|
||
|
|
m.X = float32(_qm_X)/65535*(500-(-500)) + (-500)
|
||
|
|
if len(data) < offset+2 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
_qm_Y := binary.LittleEndian.Uint16(data[offset:])
|
||
|
|
offset += 2
|
||
|
|
m.Y = float32(_qm_Y)/65535*(500-(-500)) + (-500)
|
||
|
|
if len(data) < offset+2 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
_qm_Z := binary.LittleEndian.Uint16(data[offset:])
|
||
|
|
offset += 2
|
||
|
|
m.Z = float32(_qm_Z)/65535*(500-(-500)) + (-500)
|
||
|
|
return offset, nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func (m *MoveMessage) Marshal(buf []byte) []byte {
|
||
|
|
buf = m.Position.Marshal(buf)
|
||
|
|
for _iVelocity := 0; _iVelocity < 3; _iVelocity++ {
|
||
|
|
buf = binary.LittleEndian.AppendUint32(buf, math.Float32bits(m.Velocity[_iVelocity]))
|
||
|
|
}
|
||
|
|
buf = binary.LittleEndian.AppendUint16(buf, uint16(len(m.Waypoints)))
|
||
|
|
for _iWaypoints := range m.Waypoints {
|
||
|
|
buf = m.Waypoints[_iWaypoints].Marshal(buf)
|
||
|
|
}
|
||
|
|
buf = binary.LittleEndian.AppendUint32(buf, m.PlayerID)
|
||
|
|
var _boolByte4 uint8
|
||
|
|
if m.Active {
|
||
|
|
_boolByte4 |= 1 << 0
|
||
|
|
}
|
||
|
|
if m.Visible {
|
||
|
|
_boolByte4 |= 1 << 1
|
||
|
|
}
|
||
|
|
if m.Ghost {
|
||
|
|
_boolByte4 |= 1 << 2
|
||
|
|
}
|
||
|
|
buf = append(buf, _boolByte4)
|
||
|
|
buf = binary.LittleEndian.AppendUint16(buf, uint16(len(m.Name)))
|
||
|
|
buf = append(buf, m.Name...)
|
||
|
|
return buf
|
||
|
|
}
|
||
|
|
|
||
|
|
func (m *MoveMessage) Unmarshal(data []byte) (int, error) {
|
||
|
|
if len(data) < 23 {
|
||
|
|
return 0, errors.New("arpack: buffer too short for MoveMessage")
|
||
|
|
}
|
||
|
|
offset := 0
|
||
|
|
_nPosition, _err := m.Position.Unmarshal(data[offset:])
|
||
|
|
if _err != nil {
|
||
|
|
return 0, _err
|
||
|
|
}
|
||
|
|
offset += _nPosition
|
||
|
|
for _iVelocity := 0; _iVelocity < 3; _iVelocity++ {
|
||
|
|
if len(data) < offset+4 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
m.Velocity[_iVelocity] = math.Float32frombits(binary.LittleEndian.Uint32(data[offset:]))
|
||
|
|
offset += 4
|
||
|
|
}
|
||
|
|
if len(data) < offset+2 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
_lenWaypoints := int(binary.LittleEndian.Uint16(data[offset:]))
|
||
|
|
offset += 2
|
||
|
|
m.Waypoints = make([]Vector3, _lenWaypoints)
|
||
|
|
for _iWaypoints := 0; _iWaypoints < _lenWaypoints; _iWaypoints++ {
|
||
|
|
_nWaypoints__iWaypoints_, _err := m.Waypoints[_iWaypoints].Unmarshal(data[offset:])
|
||
|
|
if _err != nil {
|
||
|
|
return 0, _err
|
||
|
|
}
|
||
|
|
offset += _nWaypoints__iWaypoints_
|
||
|
|
}
|
||
|
|
if len(data) < offset+4 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
m.PlayerID = binary.LittleEndian.Uint32(data[offset:])
|
||
|
|
offset += 4
|
||
|
|
if len(data) < offset+1 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
_boolByte4 := data[offset]
|
||
|
|
offset++
|
||
|
|
m.Active = _boolByte4&(1<<0) != 0
|
||
|
|
m.Visible = _boolByte4&(1<<1) != 0
|
||
|
|
m.Ghost = _boolByte4&(1<<2) != 0
|
||
|
|
if len(data) < offset+2 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
_slenm_Name := int(binary.LittleEndian.Uint16(data[offset:]))
|
||
|
|
offset += 2
|
||
|
|
if len(data) < offset+_slenm_Name {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
m.Name = string(data[offset : offset+_slenm_Name])
|
||
|
|
offset += _slenm_Name
|
||
|
|
return offset, nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func (m *SpawnMessage) Marshal(buf []byte) []byte {
|
||
|
|
buf = binary.LittleEndian.AppendUint64(buf, m.EntityID)
|
||
|
|
buf = m.Position.Marshal(buf)
|
||
|
|
buf = binary.LittleEndian.AppendUint16(buf, uint16(m.Health))
|
||
|
|
buf = binary.LittleEndian.AppendUint16(buf, uint16(len(m.Tags)))
|
||
|
|
for _iTags := range m.Tags {
|
||
|
|
buf = binary.LittleEndian.AppendUint16(buf, uint16(len(m.Tags[_iTags])))
|
||
|
|
buf = append(buf, m.Tags[_iTags]...)
|
||
|
|
}
|
||
|
|
buf = binary.LittleEndian.AppendUint16(buf, uint16(len(m.Data)))
|
||
|
|
for _iData := range m.Data {
|
||
|
|
buf = append(buf, m.Data[_iData])
|
||
|
|
}
|
||
|
|
return buf
|
||
|
|
}
|
||
|
|
|
||
|
|
func (m *SpawnMessage) Unmarshal(data []byte) (int, error) {
|
||
|
|
if len(data) < 16 {
|
||
|
|
return 0, errors.New("arpack: buffer too short for SpawnMessage")
|
||
|
|
}
|
||
|
|
offset := 0
|
||
|
|
if len(data) < offset+8 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
m.EntityID = binary.LittleEndian.Uint64(data[offset:])
|
||
|
|
offset += 8
|
||
|
|
_nPosition, _err := m.Position.Unmarshal(data[offset:])
|
||
|
|
if _err != nil {
|
||
|
|
return 0, _err
|
||
|
|
}
|
||
|
|
offset += _nPosition
|
||
|
|
if len(data) < offset+2 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
m.Health = int16(binary.LittleEndian.Uint16(data[offset:]))
|
||
|
|
offset += 2
|
||
|
|
if len(data) < offset+2 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
_lenTags := int(binary.LittleEndian.Uint16(data[offset:]))
|
||
|
|
offset += 2
|
||
|
|
m.Tags = make([]string, _lenTags)
|
||
|
|
for _iTags := 0; _iTags < _lenTags; _iTags++ {
|
||
|
|
if len(data) < offset+2 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
_slenm_Tags__iTags_ := int(binary.LittleEndian.Uint16(data[offset:]))
|
||
|
|
offset += 2
|
||
|
|
if len(data) < offset+_slenm_Tags__iTags_ {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
m.Tags[_iTags] = string(data[offset : offset+_slenm_Tags__iTags_])
|
||
|
|
offset += _slenm_Tags__iTags_
|
||
|
|
}
|
||
|
|
if len(data) < offset+2 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
_lenData := int(binary.LittleEndian.Uint16(data[offset:]))
|
||
|
|
offset += 2
|
||
|
|
m.Data = make([]uint8, _lenData)
|
||
|
|
for _iData := 0; _iData < _lenData; _iData++ {
|
||
|
|
if len(data) < offset+1 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
m.Data[_iData] = data[offset]
|
||
|
|
offset += 1
|
||
|
|
}
|
||
|
|
return offset, nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func (m *EnvelopeMessage) Marshal(buf []byte) []byte {
|
||
|
|
buf = binary.LittleEndian.AppendUint16(buf, uint16(m.Code))
|
||
|
|
buf = append(buf, m.Counter)
|
||
|
|
return buf
|
||
|
|
}
|
||
|
|
|
||
|
|
func (m *EnvelopeMessage) Unmarshal(data []byte) (int, error) {
|
||
|
|
if len(data) < 3 {
|
||
|
|
return 0, errors.New("arpack: buffer too short for EnvelopeMessage")
|
||
|
|
}
|
||
|
|
offset := 0
|
||
|
|
if len(data) < offset+2 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
m.Code = Opcode(binary.LittleEndian.Uint16(data[offset:]))
|
||
|
|
offset += 2
|
||
|
|
if len(data) < offset+1 {
|
||
|
|
return 0, errors.New("arpack: buffer too short")
|
||
|
|
}
|
||
|
|
m.Counter = data[offset]
|
||
|
|
offset += 1
|
||
|
|
return offset, nil
|
||
|
|
}
|