gamepacket

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 19, 2023 License: Apache-2.0, BSD-3-Clause, ISC Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ChatMessageEvent = 0
	GameEndEvent     = 16
)
View Source
const (
	GameInitTypeFull    = 0
	GameInitTypeMinimal = 4
)
View Source
const CensusMaxUsers = 36

Variables

View Source
var ClientMessageTable = common.NewMessageTable(map[uint16]ClientMessage{
	0x0002: &ClientAuth{},
	0x0003: &ClientMessageSend{},
	0x0004: &ClientJoinChannel{},
	0x0006: &ClientGameEnd{},
	0x0007: &ClientGetUserOnlineStatus{},
	0x0008: &ClientRoomCreate{},
	0x0009: &ClientRoomJoin{},
	0x000A: &ClientRoomEdit{},
	0x000B: &ClientTutorialStart{},
	0x000C: &ClientRoomUserEquipmentChange{},
	0x000D: &ClientPlayerReady{},
	0x000E: &ClientPlayerStartGame{},
	0x000F: &ClientRoomLeave{},
	0x0011: &ClientReadyStartHole{},
	0x0012: &ClientShotCommit{},
	0x0013: &ClientShotRotate{},
	0x0014: &ClientShotMeterInput{},
	0x0015: &ClientShotPower{},
	0x0016: &ClientShotClubChange{},
	0x0017: &ClientShotItemUse{},
	0x0018: &ClientUserTypingIndicator{},
	0x0019: &ClientShotCometRelief{},
	0x001A: &Client001A{},
	0x001B: &ClientShotSync{},
	0x001C: &ClientRoomSync{},
	0x001D: &ClientBuyItem{},
	0x0020: &ClientEquipmentUpdate{},
	0x0022: &ClientShotActiveUserAcknowledge{},
	0x0026: &ClientRoomKick{},
	0x002D: &ClientRoomInfo{},
	0x002F: &ClientGetUserData{},
	0x0030: &ClientPauseGame{},
	0x0031: &ClientHoleEnd{},
	0x0032: &ClientSetIdleStatus{},
	0x0033: &ClientException{},
	0x0034: &ClientFirstShotReady{},
	0x0042: &ClientShotArrow{},
	0x0043: &ClientRequestServerList{},
	0x0048: &ClientLoadProgress{},
	0x0063: &ClientRoomLoungeAction{},
	0x0069: &ClientUserMacrosSet{},
	0x0081: &ClientMultiplayerJoin{},
	0x0082: &ClientMultiplayerLeave{},
	0x0088: &Client0088{},
	0x008B: &ClientRequestMessengerList{},
	0x009C: &ClientRequestPlayerHistory{},
	0x00AE: &ClientTutorialClear{},
	0x00FE: &Client00FE{},
	0x0140: &ClientShopJoin{},
	0x0143: &ClientRequestInboxList{},
	0x0144: &ClientRequestInboxMessage{},
	0x016E: &ClientRequestDailyReward{},
	0x0176: &ClientEventLobbyJoin{},
	0x0177: &ClientEventLobbyLeave{},
	0x0184: &ClientAssistModeToggle{},
})
View Source
var ServerMessageTable = common.NewMessageTable(map[uint16]ServerMessage{
	0x0040: &ServerEvent{},
	0x0044: &ServerUserData{},
	0x0046: &ServerUserCensus{},
	0x0047: &ServerRoomList{},
	0x0048: &ServerRoomCensus{},
	0x0049: &ServerRoomJoin{},
	0x004A: &ServerRoomStatus{},
	0x004B: &ServerRoomEquipmentData{},
	0x004C: &ServerRoomLeave{},
	0x004E: &Server004E{},
	0x0052: &ServerRoomGameData{},
	0x0053: &ServerRoomStartHole{},
	0x0055: &ServerRoomShotAnnounce{},
	0x0056: &ServerRoomShotRotateAnnounce{},
	0x0058: &ServerRoomShotPowerAnnounce{},
	0x0059: &ServerRoomClubChangeAnnounce{},
	0x005A: &ServerRoomItemUseAnnounce{},
	0x005B: &ServerRoomSetWind{},
	0x005D: &ServerRoomUserTypingAnnounce{},
	0x0060: &ServerRoomShotCometReliefAnnounce{},
	0x0063: &ServerRoomActiveUserAnnounce{},
	0x0064: &ServerRoomShotSync{},
	0x0065: &ServerRoomFinishHole{},
	0x0066: &ServerRoomFinishGame{},
	0x0070: &ServerCharData{},
	0x0076: &ServerGameInit{},
	0x0077: &Server0077{},
	0x0078: &ServerPlayerReady{},
	0x0086: &ServerRoomInfoResponse{},
	0x0090: &ServerPlayerFirstShotReady{},
	0x0092: &ServerOpponentQuit{},
	0x0095: &ServerMoneyUpdate{},
	0x009E: &ServerRoomSetWeather{},
	0x009F: &ServerChannelList{},
	0x00A1: &ServerUserInfo{},
	0x00A3: &ServerPlayerLoadProgress{},
	0x00C4: &ServerRoomAction{},
	0x00C8: &ServerPangPurchaseData{},
	0x00CC: &ServerRoomShotEnd{},
	0x00F1: &ServerMessageConnect{},
	0x00F5: &ServerMultiplayerJoined{},
	0x00F6: &ServerMultiplayerLeft{},
	0x010E: &ServerPlayerHistory{},
	0x011F: &ServerTutorialStatus{},
	0x0151: &Server0151{},
	0x0158: &ServerPlayerStats{},
	0x016A: &Server016A{},
	0x01F6: &Server01F6{},
	0x0210: &ServerInboxNotify{},
	0x0211: &ServerInboxList{},
	0x0212: &ServerMailMessage{},
	0x0216: &ServerUserStatusUpdate{},
	0x021D: &ServerAchievementProgress{},
	0x0230: &Server0230{},
	0x0231: &Server0231{},
	0x0248: &ServerLoginBonusStatus{},
	0x0250: &ServerEventLobbyJoined{},
	0x0251: &ServerEventLobbyLeft{},
	0x026A: &ServerAssistModeToggled{},
})

Functions

This section is empty.

Types

type AchievementProgress

type AchievementProgress struct {
	Unknown    byte
	StatusID   uint32
	StatusSlot uint32
	Value      uint32
}

type ChatMessage

type ChatMessage struct {
	Nickname common.PString
	Message  common.PString
}

ChatMessage contains a global chat message

type Client00FE

type Client00FE struct {
	ClientMessage_
}

type Client001A

type Client001A struct {
	ClientMessage_
}

type Client0088

type Client0088 struct {
	ClientMessage_
}

Client0088 is an unknown message.

type ClientAssistModeToggle

type ClientAssistModeToggle struct {
	ClientMessage_
}

ClientAssistModeToggle is sent when assist mode is toggled.

type ClientAuth

type ClientAuth struct {
	ClientMessage_
	Username common.PString
	Unknown1 uint32
	Unknown2 uint32
	Unknown3 uint16
	LoginKey common.PString
	Version  common.PString
}

ClientAuth is a message sent to authenticate a session.

type ClientBuyItem

type ClientBuyItem struct {
	ClientMessage_
	Unknown1 byte
	NumItems uint16 `struct:"sizeof=Items"`
	Items    []PurchaseItem
}

ClientBuyItem is sent by the client to buy an item from the shop.

type ClientEquipmentUpdate

type ClientEquipmentUpdate struct {
	ClientMessage_
	Type        uint8
	Caddie      *UpdateCaddie      `struct-if:"Type == 1"`
	Consumables *UpdateConsumables `struct-if:"Type == 2"`
	Comet       *UpdateComet       `struct-if:"Type == 3"`
	Decoration  *UpdateDecoration  `struct-if:"Type == 4"`
	Character   *UpdateCharacter   `struct-if:"Type == 5"`
	Unknown1    *UpdateUnknown1    `struct-if:"Type == 8"`
	Unknown2    *UpdateUnknown2    `struct-if:"Type == 9"`
}

ClientEquipmentUpdate updates the user's equipment.

type ClientEventLobbyJoin

type ClientEventLobbyJoin struct {
	ClientMessage_
}

ClientEventLobbyJoin is the message sent when joining the event lobby.

type ClientEventLobbyLeave

type ClientEventLobbyLeave struct {
	ClientMessage_
}

ClientEventLobbyLeave is sent when the client exits the event lobby.

type ClientException

type ClientException struct {
	ClientMessage_
	Empty   byte
	Message common.PString
}

ClientException is a message sent when the client encounters an error.

type ClientFirstShotReady

type ClientFirstShotReady struct {
	ClientMessage_
}

type ClientGameEnd

type ClientGameEnd struct {
	ClientMessage_
}

ClientGameEnd contains information after the end of a game.

type ClientGetUserData

type ClientGetUserData struct {
	ClientMessage_
	UserID  uint32
	Request byte
}

ClientGetUserData is a message sent by the client to request the client state.

type ClientGetUserOnlineStatus

type ClientGetUserOnlineStatus struct {
	ClientMessage_
	Unknown  uint8
	Username common.PString
}

ClientGetUserOnlineStatus is sent to get information of a user.

type ClientHoleEnd

type ClientHoleEnd struct {
	ClientMessage_
}

type ClientJoinChannel

type ClientJoinChannel struct {
	ClientMessage_
	ChannelID byte
}

ClientJoinChannel is a message sent when the client joins a channel.

type ClientLoadProgress

type ClientLoadProgress struct {
	ClientMessage_
	Progress uint8
}

type ClientMessage

type ClientMessage interface {
	common.Message
	// contains filtered or unexported methods
}

type ClientMessageSend

type ClientMessageSend struct {
	ClientMessage_
	Nickname common.PString
	Message  common.PString
}

ClientMessageSend is sent when the client sends a public chat message.

type ClientMessage_

type ClientMessage_ struct{}

type ClientMultiplayerJoin

type ClientMultiplayerJoin struct {
	ClientMessage_
}

ClientMultiplayerJoin is the message sent when joining multiplayer.

type ClientMultiplayerLeave

type ClientMultiplayerLeave struct {
	ClientMessage_
}

ClientMultiplayerLeave is sent when the client exits multiplayer mode.

type ClientPauseGame

type ClientPauseGame struct {
	ClientMessage_
	Pause bool `struct:"byte"`
}

type ClientPlayerReady

type ClientPlayerReady struct {
	ClientMessage_
	State byte
}

ClientPlayerReady is sent by the client when they are ready/to start the game.

type ClientPlayerStartGame

type ClientPlayerStartGame struct {
	ClientMessage_
	Unknown uint32
}

ClientPlayerStartGame

type ClientReadyStartHole

type ClientReadyStartHole struct {
	ClientMessage_
}

type ClientRequestDailyReward

type ClientRequestDailyReward struct {
	ClientMessage_
}

ClientRequestDailyReward is the message sent to request the daily reward.

type ClientRequestInboxList

type ClientRequestInboxList struct {
	ClientMessage_
	PageNum uint32
}

ClientRequestInboxList is the message sent to request the inbox.

type ClientRequestInboxMessage

type ClientRequestInboxMessage struct {
	ClientMessage_
	MessageID uint32
}

ClientRequestInboxMessage is sent by the client to retrieve a message from the inbox.

type ClientRequestMessengerList

type ClientRequestMessengerList struct {
	ClientMessage_
}

ClientRequestMessengerList is a message sent to request the current list of message servers.

type ClientRequestPlayerHistory

type ClientRequestPlayerHistory struct {
	ClientMessage_
}

ClientRequestPlayerHistory is an unknown message.

type ClientRequestServerList

type ClientRequestServerList struct {
	ClientMessage_
}

ClientRequestServerList is a message sent to request the current list of game servers.

type ClientRoomCreate

type ClientRoomCreate struct {
	ClientMessage_
	Unknown     byte
	ShotTimerMS uint32
	GameTimerMS uint32
	MaxUsers    uint8
	RoomType    byte
	NumHoles    byte
	Course      byte
	Unknown2    [5]byte
	RoomName    common.PString
	Password    common.PString
	Unknown3    [4]byte
}

ClientRoomCreate is sent by the client when creating a room.

type ClientRoomEdit

type ClientRoomEdit struct {
	ClientMessage_
	Unknown    uint16
	NumChanges uint8 `struct:"sizeof=Changes"`
	Changes    []gamemodel.RoomSettingsChange
}

ClientRoomEdit is sent when the client changes room settings.

type ClientRoomInfo

type ClientRoomInfo struct {
	ClientMessage_
	RoomNumber uint16
}

type ClientRoomJoin

type ClientRoomJoin struct {
	ClientMessage_
	RoomNumber   int16
	RoomPassword common.PString
}

ClientRoomJoin is sent by the client when joining a room.

type ClientRoomKick

type ClientRoomKick struct {
	ClientMessage_
	ConnID uint32
}

type ClientRoomLeave

type ClientRoomLeave struct {
	ClientMessage_
	Unknown    byte
	RoomNumber int16
	Unknown2   uint32
	Unknown3   uint32
	Unknown4   uint32
	Unknown5   uint32
}

ClientRoomLeave is sent by the client when leaving a room back to lobby

type ClientRoomLoungeAction

type ClientRoomLoungeAction struct {
	ClientMessage_
	gamemodel.RoomAction
}

ClientRoomLoungeAction

type ClientRoomSync

type ClientRoomSync struct {
	ClientMessage_
	Unknown1   uint8
	EntryCount uint8
	Entries    []SyncEntry
}

type ClientRoomUserEquipmentChange

type ClientRoomUserEquipmentChange struct {
	ClientMessage_
}

ClientRoomUserEquipmentChange is sent when a user's equipment changes in a room.

type ClientSetIdleStatus

type ClientSetIdleStatus struct {
	ClientMessage_
	Idle bool `struct:"byte"`
}

ClientSetIdleStatus sets whether or not the client is idle in a room.

type ClientShopJoin

type ClientShopJoin struct {
	ClientMessage_
}

ClientShopJoin is an unknown message.

type ClientShotActiveUserAcknowledge

type ClientShotActiveUserAcknowledge struct {
	ClientMessage_
}

type ClientShotArrow

type ClientShotArrow struct {
	ClientMessage_
}

type ClientShotClubChange

type ClientShotClubChange struct {
	ClientMessage_
	Club uint8
}

type ClientShotCometRelief

type ClientShotCometRelief struct {
	ClientMessage_
	X, Y, Z float32
}

type ClientShotCommit

type ClientShotCommit struct {
	ClientMessage_
	UnknownFlag      bool    `struct:"uint16"`
	Unknown          [9]byte `struct-if:"UnknownFlag"`
	ShotStrength     float32
	ShotAccuracy     float32
	ShotEnglishCurve float32
	ShotEnglishSpin  float32
	Unknown2         [30]byte
	Unknown3         [4]float32
}

type ClientShotItemUse

type ClientShotItemUse struct {
	ClientMessage_
	ItemTypeID uint32
}

type ClientShotMeterInput

type ClientShotMeterInput struct {
	ClientMessage_
	Sequence uint8
	Value    float32
}

type ClientShotPower

type ClientShotPower struct {
	ClientMessage_
	Level uint8
}

type ClientShotRotate

type ClientShotRotate struct {
	ClientMessage_
	Angle float32
}

type ClientShotSync

type ClientShotSync struct {
	ClientMessage_
	Data    gamemodel.ShotSyncData
	Unknown [16]byte
}

type ClientTutorialClear

type ClientTutorialClear struct {
	ClientMessage_
}

ClientTutorialClear is an unknown message.

type ClientTutorialStart

type ClientTutorialStart struct {
	ClientMessage_
}

ClientTutorialStart is sent when starting a tutorial.

type ClientUserMacrosSet

type ClientUserMacrosSet struct {
	ClientMessage_
	MacroList pangya.MacroList
}

ClientUserMacrosSet is a message sent to set the user's macros.

type ClientUserTypingIndicator

type ClientUserTypingIndicator struct {
	ClientMessage_
	Status int16 // 1 = started, -1 = stopped
}

type ConnectMessage

type ConnectMessage struct {
	Unknown [8]byte
	Key     byte
}

ConnectMessage is the message sent upon connecting.

func (*ConnectMessage) SetKey

func (c *ConnectMessage) SetKey(key uint8)

type EventType

type EventType byte

EventType enumerates message data event types.

type GameEnd

type GameEnd struct {
	Score   int32
	Pang    uint64
	Unknown uint8
}

type GameInitFull

type GameInitFull struct {
	NumPlayers byte `struct:"sizeof=Players"`
	Players    []GamePlayer
}

type GameInitMinimal

type GameInitMinimal struct {
	Unknown uint32
	Time    pangya.SystemTime
}

type GameInitType

type GameInitType byte

type GamePlayer

type GamePlayer struct {
	Number     uint16
	PlayerData pangya.PlayerData
	StartTime  pangya.SystemTime
	NumCards   uint8
}

type HoleInfo

type HoleInfo struct {
	HoleID uint32
	Pin    uint8
	Course uint8
	Num    uint8
}

type InboxMessage

type InboxMessage struct {
	ID              uint32
	SenderNickname  string `struct:"[30]byte"`
	Message         string `struct:"[80]byte"`
	Unknown         [18]byte
	Unknown2        uint32
	Unknown3        byte
	AttachmentCount uint32 `struct:"sizeof=Attachments"`
	Attachments     []MessageAttachment
}

type ListType

type ListType byte

ListType enumerates the types of room list messages.

const (
	ListSet    ListType = 0
	ListAdd    ListType = 1
	ListRemove ListType = 2
	ListChange ListType = 3

	// Only valid for lounge mode rooms
	ListLounge ListType = 7
)

type MailMessage

type MailMessage struct {
	ID              uint32
	SenderNickname  common.PString
	DateTime        common.PString
	Message         common.PString
	Unknown         byte
	AttachmentCount uint32 `struct:"sizeof=Attachments"`
	Attachments     []MessageAttachment
}

type MessageAttachment

type MessageAttachment struct {
	ID           uint32
	ItemID       uint32
	Unknown      byte
	ItemQuantity uint32
	Unknown2     uint32
	Unknown3     uint64
	Unknown5     uint64
	Unknown6     uint32
	Unknown7     uint32
	Unknown8     [12]byte
	Unknown10    uint16
}

type MoneyUpdateType

type MoneyUpdateType uint16
const (
	MoneyUpdateRewardUnknown MoneyUpdateType = 2
	MoneyUpdatePangBalance   MoneyUpdateType = 273
)

type PlayerGameResult

type PlayerGameResult struct {
	ConnID    uint32
	Place     uint8
	Score     int8
	Unknown   uint8
	Unknown2  uint16
	Pang      uint64
	BonusPang uint64
	Unknown3  uint64
}

type PlayerMainData

type PlayerMainData struct {
	ClientVersion common.PString
	ServerVersion common.PString
	Game          uint16
	PlayerData    pangya.PlayerData
	Unknown2      [321]byte
}

PlayerMainData contains the main player information, sent after logging in.

type PurchaseItem

type PurchaseItem struct {
	Unknown        uint32
	ItemID         uint32
	Unknown2       uint16
	Unknown3       uint16
	Quantity       uint32
	ItemCostPang   uint32
	ItemCostCookie uint32
}

type RecentPlayer

type RecentPlayer struct {
	Unknown  uint32
	Nickname string `struct:"[22]byte"`
	Username string `struct:"[22]byte"`
	PlayerID uint32
}

type RoomCensusListAdd

type RoomCensusListAdd struct {
	User gamemodel.RoomPlayerEntry
}

type RoomCensusListChange

type RoomCensusListChange struct {
	ConnID uint32
	User   gamemodel.RoomPlayerEntry
}

type RoomCensusListRemove

type RoomCensusListRemove struct {
	ConnID uint32
}

type RoomCensusListSet

type RoomCensusListSet struct {
	PlayerCount uint8 `struct:"sizeof=PlayerList"`
	PlayerList  []gamemodel.RoomPlayerEntry
}

type RoomListRoom

type RoomListRoom struct {
	Name             string `struct:"[64]byte"`
	Public           bool   `struct:"byte"`
	Open             bool   `struct:"uint16"`
	UserMax          uint8
	UserCount        uint8
	Key              [16]byte // Known thanks to SuperSS; XOR pad for shot sync data
	Unknown3         uint8
	Unknown4         uint8
	NumHoles         uint8
	HoleProgression  uint8
	Number           int16
	Unknown5         uint8
	Course           uint8
	ShotTimerMS      uint32
	GameTimerMS      uint32
	Flags            uint32
	Unknown6         [68]byte
	Unknown7         uint32
	Unknown8         uint32
	OwnerID          uint32
	Class            byte
	ArtifactID       uint32
	Unknown9         uint32
	EventNum         uint32
	EventNumTop      uint32
	EventShotTimerMS uint32
	Unknown10        uint32
}

type Server01F6

type Server01F6 struct {
	ServerMessage_
	Unknown []byte
}

type Server004E

type Server004E struct {
	ServerMessage_
	Unknown []byte
}

type Server016A

type Server016A struct {
	ServerMessage_
	Unknown  byte
	Unknown2 uint32
}

type Server0077

type Server0077 struct {
	ServerMessage_
	Unknown uint32
}

type Server0151

type Server0151 struct {
	ServerMessage_
	Unknown []byte
}

type Server0230

type Server0230 struct {
	ServerMessage_
}

type Server0231

type Server0231 struct {
	ServerMessage_
}

type ServerAchievementProgress

type ServerAchievementProgress struct {
	ServerMessage_
	Status       uint32
	Remaining    uint32
	Count        uint32 `struct:"sizeof=Achievements"`
	Achievements []AchievementProgress
}

type ServerAssistModeToggled

type ServerAssistModeToggled struct {
	ServerMessage_
	Unknown uint32
}

type ServerChannelList

type ServerChannelList struct {
	ServerMessage_
	Count   byte `struct:"sizeof=Servers"`
	Servers []pangya.ServerEntry
}

ServerChannelList is a message that contains a list of all of the channels for a given server. Channels are isolated game zones within a region.

type ServerCharData

type ServerCharData struct {
	ServerMessage_
	Count1     uint16 `struct:"sizeof=Characters"`
	Count2     uint16 `struct:"sizeof=Characters"`
	Characters []pangya.PlayerCharacterData
}

ServerCharData contains the user's characters.

type ServerEvent

type ServerEvent struct {
	ServerMessage_
	Type    byte
	Data    ChatMessage
	GameEnd *GameEnd `struct-if:"Type == 16"`
}

ServerEvent is a message that contains events.

type ServerEventLobbyJoined

type ServerEventLobbyJoined struct {
	ServerMessage_
}

type ServerEventLobbyLeft

type ServerEventLobbyLeft struct {
	ServerMessage_
}

type ServerGameInit

type ServerGameInit struct {
	ServerMessage_
	SubType byte
	Full    *GameInitFull    `struct-if:"SubType == 0"`
	Minimal *GameInitMinimal `struct-if:"SubType == 4"`
}

type ServerInboxList

type ServerInboxList struct {
	ServerMessage_
	Status      uint32
	PageNum     uint32
	NumPages    uint32
	NumMessages uint32 `struct:"sizeof=Messages"`
	Messages    []InboxMessage
}

type ServerInboxNotify

type ServerInboxNotify struct {
	ServerMessage_
	Unknown []byte
}

ServerInboxNotify is unimplemented.

type ServerLoginBonusStatus

type ServerLoginBonusStatus struct {
	ServerMessage_
	Unknown []byte
}

type ServerMailMessage

type ServerMailMessage struct {
	ServerMessage_
	Status  uint32
	Message MailMessage
}

type ServerMessage

type ServerMessage interface {
	common.Message
	// contains filtered or unexported methods
}

type ServerMessageConnect

type ServerMessageConnect struct {
	ServerMessage_
	Unknown byte
}

ServerMessageConnect seems to make the client connect to the message server. TODO: need to do more reverse engineering effort

type ServerMessage_

type ServerMessage_ struct{}

type ServerMoneyUpdate

type ServerMoneyUpdate struct {
	ServerMessage_
	Type uint16

	RewardUnknown *UpdateRewardUnknownData `struct-if:"Type == 2"`
	PangBalance   *UpdatePangBalanceData   `struct-if:"Type == 273"`
}

type ServerMultiplayerJoined

type ServerMultiplayerJoined struct {
	ServerMessage_
}

type ServerMultiplayerLeft

type ServerMultiplayerLeft struct {
	ServerMessage_
}

type ServerOpponentQuit

type ServerOpponentQuit struct {
	ServerMessage_
}

type ServerPangPurchaseData

type ServerPangPurchaseData struct {
	ServerMessage_
	PangsRemaining uint64
	PangsSpent     uint64
}

ServerPangPurchaseData is sent after a pang purchase succeeds.

type ServerPlayerFirstShotReady

type ServerPlayerFirstShotReady struct {
	ServerMessage_
}

type ServerPlayerHistory

type ServerPlayerHistory struct {
	ServerMessage_
	RecentPlayers [5]RecentPlayer
}

type ServerPlayerID

type ServerPlayerID struct {
	ServerMessage_
	Empty    byte
	PlayerID uint32
	Unknown  [239]byte
}

ServerPlayerID is a message that contains the PlayerID and some other unknown data.

type ServerPlayerLoadProgress

type ServerPlayerLoadProgress struct {
	ServerMessage_
	ConnID   uint32
	Progress uint8
}

type ServerPlayerReady

type ServerPlayerReady struct {
	ServerMessage_
	ConnID uint32
	State  byte
}

type ServerPlayerStats

type ServerPlayerStats struct {
	ServerMessage_

	SessionID uint32
	Unknown   byte
	Stats     pangya.PlayerStats
}

type ServerRoomAction

type ServerRoomAction struct {
	ServerMessage_
	ConnID uint32
	gamemodel.RoomAction
}

type ServerRoomActiveUserAnnounce

type ServerRoomActiveUserAnnounce struct {
	ServerMessage_
	ConnID uint32
}

type ServerRoomCensus

type ServerRoomCensus struct {
	ServerMessage_
	Type       byte
	Unknown    int16
	ListSet    *RoomCensusListSet    `struct-if:"Type == 0"`
	ListAdd    *RoomCensusListAdd    `struct-if:"Type == 1"`
	ListRemove *RoomCensusListRemove `struct-if:"Type == 2"`
	ListChange *RoomCensusListChange `struct-if:"Type == 3"`
}

ServerRoomCensus reports on the users in a game room.

type ServerRoomClubChangeAnnounce

type ServerRoomClubChangeAnnounce struct {
	ServerMessage_
	ConnID uint32
	Club   uint8
}

type ServerRoomEquipmentData

type ServerRoomEquipmentData struct {
	ServerMessage_
	Unknown []byte
}

type ServerRoomFinishGame

type ServerRoomFinishGame struct {
	ServerMessage_
	NumPlayers uint8
	Results    []PlayerGameResult `struct:"sizefrom=NumPlayers"`
}

type ServerRoomFinishHole

type ServerRoomFinishHole struct {
	ServerMessage_
}

type ServerRoomGameData

type ServerRoomGameData struct {
	ServerMessage_
	Course          byte
	Unknown         byte
	HoleProgression byte
	NumHoles        uint8
	Unknown2        uint32
	ShotTimerMS     uint32
	GameTimerMS     uint32
	Holes           [18]HoleInfo // `struct:"sizefrom=NumHoles"`
	RandomSeed      uint32
	Unknown3        [18]byte
}

type ServerRoomInfoResponse

type ServerRoomInfoResponse struct {
	ServerMessage_
	RoomInfo gamemodel.RoomInfo
}

type ServerRoomItemUseAnnounce

type ServerRoomItemUseAnnounce struct {
	ServerMessage_
	ItemTypeID uint32
	Unknown    uint32
	ConnID     uint32
}

type ServerRoomJoin

type ServerRoomJoin struct {
	ServerMessage_
	Status      uint16
	RoomName    string `struct:"[64]byte"`
	Unknown2    [25]byte
	RoomNumber  int16
	Unknown3    [111]byte
	EventNumber uint32
	Unknown4    uint32
}

ServerRoomJoin is sent when a room is joined.

type ServerRoomLeave

type ServerRoomLeave struct {
	ServerMessage_
	RoomNumber int16
}

type ServerRoomList

type ServerRoomList struct {
	ServerMessage_
	Count    uint8 `struct:"sizeof=RoomList"`
	Type     ListType
	Unknown  uint16
	RoomList []RoomListRoom
}

ServerRoomList contains information about rooms currently open in multiplayer.

type ServerRoomSetWeather

type ServerRoomSetWeather struct {
	ServerMessage_
	Weather uint16
	Unknown uint8
}

type ServerRoomSetWind

type ServerRoomSetWind struct {
	ServerMessage_
	Wind     uint8
	Unknown  uint8
	Unknown2 uint16
	Reset    bool `struct:"bool"`
}

type ServerRoomShotAnnounce

type ServerRoomShotAnnounce struct {
	ServerMessage_
	ConnID           uint32
	ShotStrength     float32
	ShotAccuracy     float32
	ShotEnglishCurve float32
	ShotEnglishSpin  float32
	Unknown2         [30]byte
	Unknown3         [4]float32
}

type ServerRoomShotCometReliefAnnounce

type ServerRoomShotCometReliefAnnounce struct {
	ServerMessage_
	ConnID  uint32
	X, Y, Z float32
}

type ServerRoomShotEnd

type ServerRoomShotEnd struct {
	ServerMessage_
	ConnID uint32
}

type ServerRoomShotPowerAnnounce

type ServerRoomShotPowerAnnounce struct {
	ServerMessage_
	ConnID uint32
	Level  uint8
}

type ServerRoomShotRotateAnnounce

type ServerRoomShotRotateAnnounce struct {
	ServerMessage_
	ConnID uint32
	Angle  float32
}

type ServerRoomShotSync

type ServerRoomShotSync struct {
	ServerMessage_
	Data gamemodel.ShotSyncData
}

type ServerRoomStartHole

type ServerRoomStartHole struct {
	ServerMessage_
	ConnID uint32
}

type ServerRoomStatus

type ServerRoomStatus struct {
	ServerMessage_
	Unknown         uint16
	RoomType        byte
	Course          byte
	NumHoles        byte
	HoleProgression byte
	NaturalWind     uint32
	MaxUsers        byte
	Unknown2        uint16
	ShotTimerMS     uint32
	GameTimerMS     uint32
	Flags           uint32
	Owner           bool `struct:"byte"`
	RoomName        common.PString
}

ServerRoomStatus is sent when a room's settings or status changes.

type ServerRoomUserTypingAnnounce

type ServerRoomUserTypingAnnounce struct {
	ServerMessage_
	ConnID uint32
	Status int16
}

type ServerTutorialStatus

type ServerTutorialStatus struct {
	ServerMessage_
	Unknown [6]byte
}

type ServerUserCensus

type ServerUserCensus struct {
	ServerMessage_
	Type       UserCensusType
	Count      uint8 `struct:"sizeof=PlayerList"`
	PlayerList []gamemodel.LobbyPlayer
}

ServerUserCensus contains information about users currently online in multiplayer

type ServerUserData

type ServerUserData struct {
	ServerMessage_
	SubType  byte
	MainData *PlayerMainData `struct-if:"SubType == 0"`
}

ServerUserData contains important state information.

type ServerUserInfo

type ServerUserInfo struct {
	ServerMessage_
	ResponseCode uint8
	PlayerID     uint32
	UserInfo     pangya.PlayerInfo
}

ServerUserInfo contains requested user information.

type ServerUserStatusUpdate

type ServerUserStatusUpdate struct {
	ServerMessage_
	DateTimeUnix uint32
	Count        uint32
	Changes      []UserStatusChange
}

type SyncEntry

type SyncEntry struct {
	Unknown1 uint8
	Unknown2 uint32
}

type UpdateCaddie

type UpdateCaddie struct {
	CaddieID uint32
}

type UpdateCharacter

type UpdateCharacter struct {
	CharacterID uint32
}

type UpdateComet

type UpdateComet struct {
	ItemTypeID uint32
}

type UpdateConsumables

type UpdateConsumables struct {
	ItemTypeID [10]uint32
}

type UpdateDecoration

type UpdateDecoration struct {
	BackgroundTypeID uint32
	FrameTypeID      uint32
	StickerTypeID    uint32
	SlotTypeID       uint32
	CutInTypeID      uint32
	TitleTypeID      uint32
}

type UpdatePangBalanceData

type UpdatePangBalanceData struct {
	Unknown    uint32
	PangAmount uint32
	Unknown2   uint32
}

type UpdateRewardUnknownData

type UpdateRewardUnknownData struct {
	Unknown uint16
}

type UpdateUnknown1

type UpdateUnknown1 struct {
	Unknown uint32
}

type UpdateUnknown2

type UpdateUnknown2 struct {
	CharacterID uint32
	Unknown     [4]uint32
}

type UserCensusType

type UserCensusType byte

UserCensusType enumerates the types of census messages.

const (
	UserAdd        UserCensusType = 1
	UserChange     UserCensusType = 2
	UserRemove     UserCensusType = 3
	UserListSet    UserCensusType = 4
	UserListAppend UserCensusType = 5
)

type UserStatusChange

type UserStatusChange struct {
	StatusChangeType byte
	Value            *UserStatusChangeValue   `struct-if:"StatusChangeType == 2"`
	Mastery          *UserStatusChangeMastery `struct-if:"StatusChangeType == 201"`
	Unknown204       *UserStatusChange204     `struct-if:"StatusChangeType == 204"`
}

type UserStatusChange204

type UserStatusChange204 struct {
	Unknown [72]byte
}

type UserStatusChangeMastery

type UserStatusChangeMastery struct {
	CharacterID           uint32
	StatusSlot            uint32
	Unknown               [16]byte
	MasteryPowerUpCount   uint16
	MasteryControlUpCount uint16
	MasteryImpactUpCount  uint16
	MasterySpinUpCount    uint16
	MasteryCurveUpCount   uint16
	Unknown2              [16]byte
}

type UserStatusChangeValue

type UserStatusChangeValue struct {
	StatusID          uint32
	StatusSlot        uint32
	Unknown           uint32
	StatusAmountOld   uint32
	StatusAmountNew   uint32
	StatusAmountDelta int32
	Unknown2          [25]byte
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL