Files
pokerth/docs/pokerth.asn1
T

719 lines
18 KiB
Plaintext
Raw Normal View History

--**************************************************************************
-- Copyright (C) 2009-2010 by Lothar May *
-- *
-- This program is free software; you can redistribute it and/or modify *
-- it under the terms of the GNU General Public License as published by *
-- the Free Software Foundation; either version 2 of the License, or *
-- (at your option) any later version. *
-- *
-- This program is distributed in the hope that it will be useful, *
-- but WITHOUT ANY WARRANTY; without even the implied warranty of *
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-- GNU General Public License for more details. *
-- *
-- You should have received a copy of the GNU General Public License *
-- along with this program; if not, write to the *
-- Free Software Foundation, Inc., *
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
--**************************************************************************
POKERTH-PROTOCOL DEFINITIONS
IMPLICIT TAGS
EXTENSIBILITY IMPLIED ::=
BEGIN
PokerTHMessage ::= CHOICE {
announceMessage AnnounceMessage,
initMessage InitMessage,
authMessage AuthMessage,
initAckMessage InitAckMessage,
avatarRequestMessage AvatarRequestMessage,
avatarReplyMessage AvatarReplyMessage,
playerListMessage PlayerListMessage,
gameListMessage GameListMessage,
playerInfoRequestMessage PlayerInfoRequestMessage,
playerInfoReplyMessage PlayerInfoReplyMessage,
2009-07-11 22:04:46 +00:00
subscriptionRequestMessage SubscriptionRequestMessage,
joinGameRequestMessage JoinGameRequestMessage,
2009-07-11 22:04:46 +00:00
joinGameReplyMessage JoinGameReplyMessage,
gamePlayerMessage GamePlayerMessage,
kickPlayerRequestMessage KickPlayerRequestMessage,
leaveGameRequestMessage LeaveGameRequestMessage,
invitePlayerToGameMessage InvitePlayerToGameMessage,
2010-03-30 10:59:20 +00:00
inviteNotifyMessage InviteNotifyMessage,
rejectGameInvitationMessage RejectGameInvitationMessage,
2010-03-30 10:59:20 +00:00
rejectInvNotifyMessage RejectInvNotifyMessage,
2009-07-11 22:04:46 +00:00
startEventMessage StartEventMessage,
startEventAckMessage StartEventAckMessage,
gameStartMessage GameStartMessage,
handStartMessage HandStartMessage,
playersTurnMessage PlayersTurnMessage,
myActionRequestMessage MyActionRequestMessage,
yourActionRejectedMessage YourActionRejectedMessage,
2009-07-12 23:07:20 +00:00
playersActionDoneMessage PlayersActionDoneMessage,
dealFlopCardsMessage DealFlopCardsMessage,
dealTurnCardMessage DealTurnCardMessage,
dealRiverCardMessage DealRiverCardMessage,
allInShowCardsMessage AllInShowCardsMessage,
endOfHandMessage EndOfHandMessage,
endOfGameMessage EndOfGameMessage,
askKickPlayerMessage AskKickPlayerMessage,
askKickDeniedMessage AskKickDeniedMessage,
startKickPetitionMessage StartKickPetitionMessage,
voteKickRequestMessage VoteKickRequestMessage,
voteKickReplyMessage VoteKickReplyMessage,
kickPetitionUpdateMessage KickPetitionUpdateMessage,
endKickPetitionMessage EndKickPetitionMessage,
2009-07-12 23:07:20 +00:00
statisticsMessage StatisticsMessage,
chatRequestMessage ChatRequestMessage,
chatMessage ChatMessage,
dialogMessage DialogMessage,
2009-07-19 22:40:12 +00:00
timeoutWarningMessage TimeoutWarningMessage,
resetTimeoutMessage ResetTimeoutMessage,
2009-07-12 23:07:20 +00:00
errorMessage ErrorMessage
}
AnnounceMessage ::= [APPLICATION 0] SEQUENCE {
protocolVersion Version,
latestGameVersion Version,
latestBetaRevision INTEGER(0..65535),
serverType ENUMERATED {
serverTypeLAN (0),
serverTypeInternetNoAuth (1),
serverTypeInternetAuth (2)
},
numPlayersOnServer INTEGER(0..65535)
}
2009-10-23 22:11:01 +00:00
-- buildId contains a constant build id (specific for Windows/Linux/Mac builds)
InitMessage ::= [APPLICATION 1] SEQUENCE {
requestedVersion Version,
2009-10-23 22:11:01 +00:00
buildId INTEGER,
login CHOICE {
2009-10-23 22:11:01 +00:00
guestLogin [0] GuestLogin,
authenticatedLogin [1] AuthenticatedLogin,
unauthenticatedLogin [2] UnauthenticatedLogin
}
}
2009-07-11 22:04:46 +00:00
Version ::= SEQUENCE {
major INTEGER(0..65535),
minor INTEGER(0..65535)
}
2009-10-23 22:11:01 +00:00
GuestLogin ::= SEQUENCE {
nickName UTF8String (SIZE(1..64))
}
-- Login data is according to SCRAM SHA-1
AuthenticatedLogin ::= SEQUENCE {
clientUserData OCTET STRING (SIZE(1..256)),
2009-07-18 12:05:55 +00:00
avatar AvatarHash OPTIONAL
}
UnauthenticatedLogin ::= SEQUENCE {
nickName UTF8String (SIZE(1..64)),
avatar AvatarHash OPTIONAL
}
AuthMessage ::= [APPLICATION 2] CHOICE {
authServerChallenge [0] AuthServerChallenge,
authClientResponse [1] AuthClientResponse,
authServerVerification [2] AuthServerVerification
}
AuthServerChallenge ::= SEQUENCE {
serverChallenge OCTET STRING (SIZE(1..256))
}
AuthClientResponse ::= SEQUENCE {
clientResponse OCTET STRING (SIZE(1..256))
}
AuthServerVerification ::= SEQUENCE {
serverVerification OCTET STRING (SIZE(1..256))
2009-07-18 12:05:55 +00:00
}
InitAckMessage ::= [APPLICATION 3] SEQUENCE {
yourSessionId Guid,
yourPlayerId NonZeroId
}
AvatarRequestMessage ::= [APPLICATION 4] SEQUENCE {
requestId NonZeroId,
avatar AvatarHash
}
AvatarReplyMessage ::= [APPLICATION 5] SEQUENCE {
requestId NonZeroId,
avatarResult CHOICE {
2009-07-18 12:05:55 +00:00
avatarHeader [0] AvatarHeader,
avatarData [1] AvatarData,
avatarEnd [2] AvatarEnd,
unknownAvatar [3] UnknownAvatar
}
}
2009-07-18 12:05:55 +00:00
AvatarHeader ::= SEQUENCE {
2009-07-19 22:40:12 +00:00
avatarType NetAvatarType,
2009-07-18 12:05:55 +00:00
avatarSize INTEGER(32..30720)
}
AvatarData ::= SEQUENCE {
avatarBlock OCTET STRING (SIZE(1..256))
}
AvatarEnd ::= SEQUENCE {
}
UnknownAvatar ::= SEQUENCE {
}
2009-08-01 20:53:54 +00:00
AvatarHash ::= OCTET STRING (SIZE(16)) -- md5 hash value
2009-07-11 22:04:46 +00:00
2009-07-19 22:40:12 +00:00
NetAvatarType ::= ENUMERATED {
avatarImagePng (1),
avatarImageJpg (2),
avatarImageGif (3)
2009-07-11 22:04:46 +00:00
}
PlayerListMessage ::= [APPLICATION 6] SEQUENCE {
playerId NonZeroId,
playerListNotification ENUMERATED {
playerListNew (0),
playerListLeft (1)
}
}
GameListMessage ::= [APPLICATION 7] SEQUENCE {
gameId NonZeroId,
gameListNotification CHOICE {
gameListNew [0] GameListNew,
gameListUpdate [1] GameListUpdate,
gameListPlayerJoined [2] GameListPlayerJoined,
gameListPlayerLeft [3] GameListPlayerLeft,
gameListAdminChanged [4] GameListAdminChanged
}
}
GameListNew ::= SEQUENCE {
2009-07-19 22:40:12 +00:00
gameMode NetGameMode,
isPrivate BOOLEAN,
2009-08-04 06:59:58 +00:00
playerIds SEQUENCE SIZE(0..10) OF NonZeroId,
adminPlayerId NonZeroId,
2009-07-19 22:40:12 +00:00
gameInfo NetGameInfo
}
GameListUpdate ::= SEQUENCE {
2009-07-19 22:40:12 +00:00
gameMode NetGameMode
}
GameListPlayerJoined ::= SEQUENCE {
playerId NonZeroId
}
GameListPlayerLeft ::= SEQUENCE {
playerId NonZeroId
}
GameListAdminChanged ::= SEQUENCE {
newAdminPlayerId NonZeroId
}
2009-07-19 22:40:12 +00:00
NetGameMode ::= ENUMERATED {
2009-07-11 22:04:46 +00:00
gameCreated (1),
gameStarted (2),
gameClosed (3)
}
PlayerInfoRequestMessage ::= [APPLICATION 8] SEQUENCE {
playerId NonZeroId
}
PlayerInfoReplyMessage ::= [APPLICATION 9] SEQUENCE {
playerId NonZeroId,
playerInfoResult CHOICE {
playerInfoData [0] PlayerInfoData,
unknownPlayerInfo [1] UnknownPlayerInfo
}
}
PlayerInfoRights ::= ENUMERATED {
playerRightsGuest (1),
playerRightsNormal (2),
playerRightsAdmin (3)
}
PlayerInfoData ::= SEQUENCE {
2009-08-04 21:41:10 +00:00
playerName UTF8String (SIZE(1..32)),
isHuman BOOLEAN,
playerRights PlayerInfoRights,
countryCode UTF8String (SIZE(2)) OPTIONAL,
avatarData SEQUENCE {
2009-07-19 22:40:12 +00:00
avatarType NetAvatarType,
avatar AvatarHash
} OPTIONAL
}
UnknownPlayerInfo ::= SEQUENCE {
}
2009-07-11 22:04:46 +00:00
-- The following request will not be confirmed by the server. It is used,
-- optionally, to reduce server traffic. The server might ignore it.
SubscriptionRequestMessage ::= [APPLICATION 10] SEQUENCE {
subscriptionAction ENUMERATED {
unsubscribeGameList (1),
resubscribeGameList (2)
}
}
JoinGameRequestMessage ::= [APPLICATION 11] SEQUENCE {
joinGameAction CHOICE {
joinExistingGame [0] JoinExistingGame,
joinNewGame [1] JoinNewGame
},
2009-07-31 23:28:37 +00:00
password UTF8String (SIZE(1..64)) OPTIONAL
}
JoinExistingGame ::= SEQUENCE {
gameId NonZeroId
}
JoinNewGame ::= SEQUENCE {
2009-07-19 22:40:12 +00:00
gameInfo NetGameInfo
}
JoinGameReplyMessage ::= [APPLICATION 12] SEQUENCE {
gameId NonZeroId,
joinGameResult CHOICE {
joinGameAck [0] JoinGameAck,
joinGameFailed [1] JoinGameFailed
}
}
JoinGameAck ::= SEQUENCE {
2010-03-26 20:47:26 +00:00
areYouGameAdmin BOOLEAN,
2009-07-19 22:40:12 +00:00
gameInfo NetGameInfo
}
JoinGameFailed ::= SEQUENCE {
joinGameFailureReason ENUMERATED {
invalidGame (1),
gameIsFull (2),
gameIsRunning (3),
invalidPassword (4),
notAllowedAsGuest (5),
notInvited (6)
}
}
2009-07-19 22:40:12 +00:00
NetGameInfo ::= SEQUENCE {
2009-07-31 23:28:37 +00:00
gameName UTF8String (SIZE(1..64)),
netGameType ENUMERATED {
normalGame (1),
registeredOnlyGame (2),
inviteOnlyGame (3),
rankingGame (4)
},
2009-07-11 22:04:46 +00:00
maxNumPlayers INTEGER(2..10),
raiseIntervalMode CHOICE {
raiseEveryHands [0] INTEGER(1..1000),
raiseEveryMinutes [1] INTEGER(1..1000)
},
endRaiseMode ENUMERATED {
doubleBlinds (1),
raiseByEndValue (2),
keepLastBlind (3)
},
proposedGuiSpeed INTEGER(1..11),
delayBetweenHands INTEGER(5..20), -- These are seconds
playerActionTimeout INTEGER(5..60), -- These are seconds
firstSmallBlind INTEGER(1..20000),
2009-08-04 21:41:10 +00:00
endRaiseSmallBlindValue INTEGER(0..20000),
startMoney INTEGER(1..1000000),
manualBlinds SEQUENCE SIZE(0..30) OF INTEGER(1..20001)
}
GamePlayerMessage ::= [APPLICATION 13] SEQUENCE {
2009-07-11 22:04:46 +00:00
gameId NonZeroId,
gamePlayerNotification CHOICE {
gamePlayerJoined [0] GamePlayerJoined,
gamePlayerLeft [1] GamePlayerLeft,
gameAdminChanged [2] GameAdminChanged,
removedFromGame [3] RemovedFromGame
}
}
2009-07-11 22:04:46 +00:00
GamePlayerJoined ::= SEQUENCE {
2009-07-31 21:10:21 +00:00
playerId NonZeroId,
2010-03-26 20:47:26 +00:00
isGameAdmin BOOLEAN
}
2009-07-11 22:04:46 +00:00
GamePlayerLeft ::= SEQUENCE {
2009-07-19 22:40:12 +00:00
playerId NonZeroId,
gamePlayerLeftReason ENUMERATED {
leftOnRequest (0),
leftKicked (1),
leftError (2)
}
2009-07-11 22:04:46 +00:00
}
GameAdminChanged ::= SEQUENCE {
newAdminPlayerId NonZeroId
}
RemovedFromGame ::= SEQUENCE {
removedFromGameReason ENUMERATED {
removedOnRequest (0), -- No error, client wished to leave.
kickedFromGame (1),
gameIsFull (2),
gameIsRunning (3),
gameTimeout (4),
removedStartFailed (5)
2009-07-11 22:04:46 +00:00
}
}
KickPlayerRequestMessage ::= [APPLICATION 14] SEQUENCE {
2009-07-11 22:04:46 +00:00
gameId NonZeroId,
playerId NonZeroId
}
LeaveGameRequestMessage ::= [APPLICATION 15] SEQUENCE {
2009-07-11 22:04:46 +00:00
gameId NonZeroId
}
InvitePlayerToGameMessage ::= [APPLICATION 16] SEQUENCE {
gameId NonZeroId,
playerId NonZeroId
}
2010-03-30 10:59:20 +00:00
InviteNotifyMessage ::= [APPLICATION 17] SEQUENCE {
gameId NonZeroId,
2010-03-30 10:59:20 +00:00
playerIdWho NonZeroId,
playerIdByWhom NonZeroId
}
2010-03-30 10:59:20 +00:00
RejectGameInvReason ::= ENUMERATED {
no (0),
busy (1)
}
RejectGameInvitationMessage ::= [APPLICATION 18] SEQUENCE {
gameId NonZeroId,
myRejectReason RejectGameInvReason
}
RejectInvNotifyMessage ::= [APPLICATION 19] SEQUENCE {
gameId NonZeroId,
playerId NonZeroId,
playerRejectReason RejectGameInvReason
}
StartEventMessage ::= [APPLICATION 20] SEQUENCE {
2009-07-11 22:04:46 +00:00
gameId NonZeroId,
fillWithComputerPlayers BOOLEAN
}
2010-03-30 10:59:20 +00:00
StartEventAckMessage ::= [APPLICATION 21] SEQUENCE {
2009-07-11 22:04:46 +00:00
gameId NonZeroId
}
2010-03-30 10:59:20 +00:00
GameStartMessage ::= [APPLICATION 22] SEQUENCE {
2009-07-11 22:04:46 +00:00
gameId NonZeroId,
startDealerPlayerId NonZeroId,
playerSeats SEQUENCE SIZE(2..10) OF NonZeroId
}
2010-03-30 10:59:20 +00:00
HandStartMessage ::= [APPLICATION 23] SEQUENCE {
2009-07-11 22:04:46 +00:00
gameId NonZeroId,
yourCard1 Card,
yourCard2 Card,
2009-07-11 22:04:46 +00:00
smallBlind INTEGER(1..20001)
}
2010-03-30 10:59:20 +00:00
PlayersTurnMessage ::= [APPLICATION 24] SEQUENCE {
2009-07-11 22:04:46 +00:00
gameId NonZeroId,
playerId NonZeroId,
2009-07-19 22:40:12 +00:00
gameState NetGameState
2009-07-11 22:04:46 +00:00
}
2010-03-30 10:59:20 +00:00
MyActionRequestMessage ::= [APPLICATION 25] SEQUENCE {
2009-07-11 22:04:46 +00:00
gameId NonZeroId,
2009-07-19 22:40:12 +00:00
gameState NetGameState,
myAction NetPlayerAction,
2009-07-11 22:04:46 +00:00
myRelativeBet INTEGER(0..10000000)
}
2010-03-30 10:59:20 +00:00
YourActionRejectedMessage ::= [APPLICATION 26] SEQUENCE {
2009-07-11 22:04:46 +00:00
gameId NonZeroId,
2009-07-19 22:40:12 +00:00
gameState NetGameState,
yourAction NetPlayerAction,
2009-07-11 22:04:46 +00:00
yourRelativeBet INTEGER(0..10000000),
rejectionReason ENUMERATED {
rejectedInvalidGameState (1),
rejectedNotYourTurn (2),
rejectedActionNotAllowed (3)
}
}
2010-03-30 10:59:20 +00:00
PlayersActionDoneMessage ::= [APPLICATION 27] SEQUENCE {
2009-07-11 22:04:46 +00:00
gameId NonZeroId,
playerId NonZeroId,
2009-07-19 22:40:12 +00:00
gameState NetGameState,
playerAction NetPlayerAction,
2009-07-11 22:04:46 +00:00
totalPlayerBet INTEGER(0..10000000),
playerMoney INTEGER(0..10000000),
highestSet INTEGER(0..10000000),
minimumRaise INTEGER(0..10000000) -- TODO
}
2010-03-30 10:59:20 +00:00
DealFlopCardsMessage ::= [APPLICATION 28] SEQUENCE {
2009-07-12 23:07:20 +00:00
gameId NonZeroId,
flopCard1 Card,
flopCard2 Card,
flopCard3 Card
2009-07-12 23:07:20 +00:00
}
2010-03-30 10:59:20 +00:00
DealTurnCardMessage ::= [APPLICATION 29] SEQUENCE {
2009-07-12 23:07:20 +00:00
gameId NonZeroId,
turnCard Card
}
2010-03-30 10:59:20 +00:00
DealRiverCardMessage ::= [APPLICATION 30] SEQUENCE {
2009-07-12 23:07:20 +00:00
gameId NonZeroId,
riverCard Card
}
2010-03-30 10:59:20 +00:00
AllInShowCardsMessage ::= [APPLICATION 31] SEQUENCE {
2009-07-12 23:07:20 +00:00
gameId NonZeroId,
playersAllIn SEQUENCE SIZE(1..10) OF PlayerAllIn
}
PlayerAllIn ::= SEQUENCE {
playerId NonZeroId,
allInCard1 Card,
allInCard2 Card
2009-07-12 23:07:20 +00:00
}
2010-03-30 10:59:20 +00:00
EndOfHandMessage ::= [APPLICATION 32] SEQUENCE {
2009-07-12 23:07:20 +00:00
gameId NonZeroId,
endOfHandType CHOICE {
endOfHandShowCards [0] EndOfHandShowCards,
endOfHandHideCards [1] EndOfHandHideCards
}
}
EndOfHandShowCards ::= SEQUENCE {
playerResults SEQUENCE SIZE(1..10) OF PlayerResult
}
PlayerResult ::= SEQUENCE {
playerId NonZeroId,
resultCard1 Card,
resultCard2 Card,
2009-07-12 23:07:20 +00:00
bestHandPosition SEQUENCE SIZE(5) OF INTEGER, -- TODO size restrictions
cardsValue INTEGER,
moneyWon INTEGER(0..10000000),
playerMoney INTEGER(0..10000000)
}
EndOfHandHideCards ::= SEQUENCE {
playerId NonZeroId,
moneyWon INTEGER(0..10000000),
playerMoney INTEGER(0..10000000)
}
2010-03-30 10:59:20 +00:00
EndOfGameMessage ::= [APPLICATION 33] SEQUENCE {
2009-07-12 23:07:20 +00:00
gameId NonZeroId,
winnerPlayerId NonZeroId
}
AskKickPlayerMessage ::= [APPLICATION 64] SEQUENCE {
2009-08-03 21:56:20 +00:00
gameId NonZeroId,
playerId NonZeroId
}
AskKickDeniedMessage ::= [APPLICATION 65] SEQUENCE {
2009-08-03 21:56:20 +00:00
gameId NonZeroId,
playerId NonZeroId,
kickDeniedReason ENUMERATED {
kickDeniedInvalidGameState (0),
kickDeniedNotPossible (1),
kickDeniedTryAgainLater (2),
kickDeniedAlreadyInProgress (3),
kickDeniedInvalidPlayerId (4)
}
}
StartKickPetitionMessage ::= [APPLICATION 66] SEQUENCE {
2009-08-03 21:56:20 +00:00
gameId NonZeroId,
petitionId NonZeroId,
proposingPlayerId NonZeroId,
kickPlayerId NonZeroId,
kickTimeoutSec INTEGER(1..120),
numVotesNeededToKick INTEGER(1..9)
}
VoteKickRequestMessage ::= [APPLICATION 67] SEQUENCE {
2009-08-03 21:56:20 +00:00
gameId NonZeroId,
petitionId NonZeroId,
voteKick BOOLEAN
}
VoteKickReplyMessage ::= [APPLICATION 68] SEQUENCE {
2009-08-03 21:56:20 +00:00
gameId NonZeroId,
petitionId NonZeroId,
voteKickReplyType CHOICE {
voteKickAck [0] VoteKickAck,
voteKickDenied [1] VoteKickDenied
}
}
VoteKickAck ::= SEQUENCE {
}
VoteKickDenied ::= SEQUENCE {
voteKickDeniedReason ENUMERATED {
voteKickDeniedInvalid (0),
voteKickDeniedAlreadyVoted (1)
}
}
KickPetitionUpdateMessage ::= [APPLICATION 69] SEQUENCE {
2009-08-03 21:56:20 +00:00
gameId NonZeroId,
petitionId NonZeroId,
numVotesAgainstKicking INTEGER(0..9),
numVotesInFavourOfKicking INTEGER(1..9),
numVotesNeededToKick INTEGER(1..9)
}
EndKickPetitionMessage ::= [APPLICATION 70] SEQUENCE {
2009-08-03 21:56:20 +00:00
gameId NonZeroId,
petitionId NonZeroId,
numVotesAgainstKicking INTEGER(0..9),
numVotesInFavourOfKicking INTEGER(1..9),
resultPlayerKicked BOOLEAN,
petitionEndReason ENUMERATED {
petitionEndEnoughVotes (0),
petitionEndTooFewPlayers (1),
petitionEndPlayerLeft (2),
petitionEndTimeout (3)
}
}
2009-07-12 23:07:20 +00:00
StatisticsMessage ::= [APPLICATION 128] SEQUENCE {
statisticsData SEQUENCE SIZE(1..32) OF StatisticsData
}
StatisticsData ::= SEQUENCE {
statisticsType ENUMERATED {
statNumberOfPlayers (1)
},
statisticsValue INTEGER
}
ChatRequestMessage ::= [APPLICATION 129] SEQUENCE {
chatRequestType CHOICE {
chatRequestTypeLobby [0] ChatRequestTypeLobby,
chatRequestTypeGame [1] ChatRequestTypeGame
},
2009-07-31 23:28:37 +00:00
chatText UTF8String (SIZE(1..128))
2009-07-12 23:07:20 +00:00
}
ChatRequestTypeLobby ::= SEQUENCE {
}
ChatRequestTypeGame ::= SEQUENCE {
gameId NonZeroId
}
2009-07-12 23:07:20 +00:00
ChatMessage ::= [APPLICATION 130] SEQUENCE {
chatType CHOICE {
chatTypeLobby [0] ChatTypeLobby,
chatTypeGame [1] ChatTypeGame,
2009-08-17 09:45:06 +00:00
chatTypeBot [2] ChatTypeBot,
chatTypeBroadcast [3] ChatTypeBroadcast
},
2009-07-31 23:28:37 +00:00
chatText UTF8String (SIZE(1..128))
2009-07-12 23:07:20 +00:00
}
ChatTypeLobby ::= SEQUENCE {
playerId NonZeroId
}
ChatTypeGame ::= SEQUENCE {
gameId NonZeroId,
playerId NonZeroId
}
ChatTypeBroadcast ::= SEQUENCE {
}
2009-08-17 09:45:06 +00:00
ChatTypeBot ::= SEQUENCE {
}
2009-07-12 23:07:20 +00:00
DialogMessage ::= [APPLICATION 131] SEQUENCE {
2009-07-31 23:28:37 +00:00
notificationText UTF8String (SIZE(1..128))
2009-07-12 23:07:20 +00:00
}
2009-07-19 22:40:12 +00:00
TimeoutWarningMessage ::= [APPLICATION 132] SEQUENCE {
timeoutReason ENUMERATED {
timeoutNoDataReceived (0),
timeoutInactiveGame (1)
},
remainingSeconds INTEGER
}
ResetTimeoutMessage ::= [APPLICATION 133] SEQUENCE {
}
2009-07-12 23:07:20 +00:00
ErrorMessage ::= [APPLICATION 255] SEQUENCE {
errorReason ENUMERATED {
errorReserved (0),
errorInitVersionNotSupported (1),
errorInitServerFull (2),
errorInitAuthFailure (3),
errorInitPlayerNameInUse (4),
errorInitInvalidPlayerName (5),
errorInitServerMaintenance (6),
errorInitBlocked (7),
errorAvatarTooLarge (8),
2009-07-12 23:07:20 +00:00
errorInvalidPacket (256),
errorInvalidState (257),
errorKickedFromServer (258),
errorBannedFromServer (259),
errorSessionTimeout (260)
}
}
2009-07-19 22:40:12 +00:00
NetGameState ::= ENUMERATED {
2009-07-11 22:04:46 +00:00
statePreflop (0),
stateFlop (1),
stateTurn (2),
stateRiver (3),
statePreflopSmallBlind (4),
statePreflopBigBlind (5)
}
2009-07-19 22:40:12 +00:00
NetPlayerAction ::= ENUMERATED {
2009-07-11 22:04:46 +00:00
actionNone (0),
actionFold (1),
actionCheck (2),
actionCall (3),
actionBet (4),
actionRaise (5),
actionAllIn (6)
}
NonZeroId ::= INTEGER(1..4294967295)
2009-07-12 23:07:20 +00:00
Id ::= INTEGER(0..4294967295)
2009-08-04 07:17:46 +00:00
Guid ::= INTEGER(0..4294967295) -- TODO
2009-07-11 22:04:46 +00:00
Card ::= INTEGER(0..51)
END