• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdegames API Reference
  • KDE Home
  • Contact Us
 

libkdegames/libkdegamesprivate/kgame

  • sources
  • kde-4.14
  • kdegames
  • libkdegames
  • libkdegamesprivate
  • kgame
kgamemessage.cpp
Go to the documentation of this file.
1 /*
2  This file is part of the KDE games library
3  Copyright (C) 2001 Martin Heni (kde at heni-online.de)
4  Copyright (C) 2001 Andreas Beckermann (b_mann@gmx.de)
5 
6  This library is free software; you can redistribute it and/or
7  modify it under the terms of the GNU Library General Public
8  License version 2 as published by the Free Software Foundation.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Library General Public License for more details.
14 
15  You should have received a copy of the GNU Library General Public License
16  along with this library; see the file COPYING.LIB. If not, write to
17  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  Boston, MA 02110-1301, USA.
19 */
20 
21 #include "kgamemessage.h"
22 
23 #include <klocale.h>
24 
25 #define MESSAGE_VERSION 2
26 
27 quint32 KGameMessage::createPlayerId(int oldplayerid,quint32 gameid)
28 {
29  int p;
30  p = oldplayerid & 0x3ff; // remove game id
31  p |= (gameid << 10);
32  return p;
33 }
34 
35 int KGameMessage::rawPlayerId(quint32 playerid)
36 {
37  return playerid & 0x03ff;
38 }
39 
40 quint32 KGameMessage::rawGameId(quint32 playerid)
41 {
42  return (playerid & 0xfc00) >> 10;
43 }
44 
45 bool KGameMessage::isPlayer(quint32 msgid)
46 {
47  if (msgid & 0xfc00) {
48  return true;
49  } else {
50  return false;
51  }
52 }
53 
54 bool KGameMessage::isGame(quint32 msgid)
55 {
56  return !isPlayer(msgid);
57 }
58 
59 
60 void KGameMessage::createHeader(QDataStream &msg,quint32 sender,quint32 receiver,int msgid)
61 {
62  msg << (qint16)sender << (qint16)receiver << (qint16)msgid;
63 }
64 
65 void KGameMessage::extractHeader(QDataStream &msg,quint32 &sender,quint32 &receiver,int &msgid)
66 {
67  qint16 d3,d4,d5;
68  msg >> d3 >> d4 >> d5;
69  sender=d3;receiver=d4;msgid=d5;
70 }
71 
72 void KGameMessage::createPropertyHeader(QDataStream &msg,int id)
73 {
74  msg << (qint16)id;
75 }
76 
77 void KGameMessage::extractPropertyHeader(QDataStream &msg,int &id)
78 {
79  qint16 d1;
80  msg >> d1;
81  id=d1;
82 }
83 
84 void KGameMessage::createPropertyCommand(QDataStream &msg,int cmdid,int pid,int cmd)
85 {
86  createPropertyHeader(msg,cmdid);
87  msg << (qint16)pid ;
88  msg << (qint8)cmd ;
89 }
90 
91 void KGameMessage::extractPropertyCommand(QDataStream &msg,int &pid,int &cmd)
92 {
93  qint16 d1;
94  qint8 d2;
95  msg >> d1 >> d2;
96  pid=d1;
97  cmd=d2;
98 }
99 
100 int KGameMessage::version()
101 {
102  return MESSAGE_VERSION;
103 }
104 
105 QString KGameMessage::messageId2Text(int msgid)
106 {
107 // this should contain all KGameMessage::GameMessageIds
108 // feel free to add missing ones, to remove obsolete one and even feel free to
109 // let it be ;-)
110  switch (msgid) {
111  case KGameMessage::IdSetupGame:
112  return i18n("Setup Game");
113  case KGameMessage::IdSetupGameContinue:
114  return i18n("Setup Game Continue");
115  case KGameMessage::IdGameLoad:
116  return i18n("Load Game");
117  case KGameMessage::IdGameConnected:
118  return i18n("Client game connected");
119  case KGameMessage::IdGameSetupDone:
120  return i18n("Game setup done");
121  case KGameMessage::IdSyncRandom:
122  return i18n("Synchronize Random");
123  case KGameMessage::IdDisconnect:
124  return i18n("Disconnect");
125  case KGameMessage::IdPlayerProperty:
126  return i18n("Player Property");
127  case KGameMessage::IdGameProperty:
128  return i18n("Game Property");
129  case KGameMessage::IdAddPlayer:
130  return i18n("Add Player");
131  case KGameMessage::IdRemovePlayer:
132  return i18n("Remove Player");
133  case KGameMessage::IdActivatePlayer:
134  return i18n("Activate Player");
135  case KGameMessage::IdInactivatePlayer:
136  return i18n("Inactivate Player");
137  case KGameMessage::IdTurn:
138  return i18n("Id Turn");
139  case KGameMessage::IdError:
140  return i18n("Error Message");
141  case KGameMessage::IdPlayerInput:
142  return i18n("Player Input");
143  case KGameMessage::IdIOAdded:
144  return i18n("An IO was added");
145  case KGameMessage::IdProcessQuery:
146  return i18n("Process Query");
147  case KGameMessage::IdPlayerId:
148  return i18n("Player ID");
149  case KGameMessage::IdUser: // IdUser must be unknown for use, too!
150  default:
151  return QString();
152  }
153 }
KGameMessage::IdProcessQuery
Definition: kgamemessage.h:166
KGameMessage::IdTurn
Definition: kgamemessage.h:158
KGameMessage::IdPlayerProperty
Definition: kgamemessage.h:150
KGameMessage::createPlayerId
static quint32 createPlayerId(int player, quint32 game)
Creates a fully qualified player ID which contains the original player id in the lower bits and the g...
Definition: kgamemessage.cpp:27
KGameMessage::IdGameLoad
Definition: kgamemessage.h:143
KGameMessage::IdUser
Definition: kgamemessage.h:169
KGameMessage::IdPlayerId
Definition: kgamemessage.h:167
QDataStream
KGameMessage::isPlayer
static bool isPlayer(quint32 id)
Checks whether a message receiver/sender is a player.
Definition: kgamemessage.cpp:45
KGameMessage::IdRemovePlayer
Definition: kgamemessage.h:155
KGameMessage::IdDisconnect
Definition: kgamemessage.h:146
KGameMessage::IdGameSetupDone
Definition: kgamemessage.h:147
KGameMessage::createPropertyHeader
static void createPropertyHeader(QDataStream &msg, int id)
Creates a property header given the property id.
Definition: kgamemessage.cpp:72
KGameMessage::extractPropertyCommand
static void extractPropertyCommand(QDataStream &msg, int &pid, int &cmd)
Retrieves the property id from a property message header.
Definition: kgamemessage.cpp:91
KGameMessage::IdIOAdded
Definition: kgamemessage.h:163
KGameMessage::createHeader
static void createHeader(QDataStream &msg, quint32 sender, quint32 receiver, int msgid)
Creates a message header given cookie,sender,receiver,...
Definition: kgamemessage.cpp:60
KGameMessage::IdPlayerInput
Definition: kgamemessage.h:162
QString
kgamemessage.h
KGameMessage::IdSyncRandom
Definition: kgamemessage.h:145
KGameMessage::IdInactivatePlayer
Definition: kgamemessage.h:157
KGameMessage::isGame
static bool isGame(quint32 id)
Checks whether the sender/receiver of a message is a game.
Definition: kgamemessage.cpp:54
KGameMessage::IdActivatePlayer
Definition: kgamemessage.h:156
MESSAGE_VERSION
#define MESSAGE_VERSION
Definition: kgamemessage.cpp:25
KGameMessage::IdAddPlayer
Definition: kgamemessage.h:154
KGameMessage::messageId2Text
static QString messageId2Text(int msgid)
This function takes a GameMessageIds as argument and returns a suitable string for it...
Definition: kgamemessage.cpp:105
KGameMessage::IdSetupGame
Definition: kgamemessage.h:141
KGameMessage::IdError
Definition: kgamemessage.h:161
KGameMessage::IdGameProperty
Definition: kgamemessage.h:151
KGameMessage::rawGameId
static quint32 rawGameId(quint32 playerid)
Returns the raw game id, that is, the game id the player belongs to.
Definition: kgamemessage.cpp:40
KGameMessage::IdGameConnected
Definition: kgamemessage.h:144
KGameMessage::createPropertyCommand
static void createPropertyCommand(QDataStream &msg, int cmdid, int pid, int cmd)
Creates a property header given the property id.
Definition: kgamemessage.cpp:84
KGameMessage::extractPropertyHeader
static void extractPropertyHeader(QDataStream &msg, int &id)
Retrieves the property id from a property message header.
Definition: kgamemessage.cpp:77
KGameMessage::extractHeader
static void extractHeader(QDataStream &msg, quint32 &sender, quint32 &receiver, int &msgid)
Retrieves the information like cookie,sender,receiver,...
Definition: kgamemessage.cpp:65
KGameMessage::rawPlayerId
static int rawPlayerId(quint32 playerid)
Returns the raw playerid, that is, a id which does not contain the game number encoded in it...
Definition: kgamemessage.cpp:35
KGameMessage::version
static int version()
Definition: kgamemessage.cpp:100
KGameMessage::IdSetupGameContinue
Definition: kgamemessage.h:142
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:18:54 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

libkdegames/libkdegamesprivate/kgame

Skip menu "libkdegames/libkdegamesprivate/kgame"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdegames API Reference

Skip menu "kdegames API Reference"
  • granatier
  • kapman
  • kblackbox
  • kgoldrunner
  • kigo
  • kmahjongg
  • KShisen
  • ksquares
  • libkdegames
  •   highscore
  •   libkdegamesprivate
  •     kgame
  • libkmahjongg
  • palapeli
  •   libpala

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal