• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • libtdegames
 

libtdegames

  • libtdegames
  • kgame
kgamemessage.cpp
1 /*
2  This file is part of the TDE games library
3  Copyright (C) 2001 Martin Heni (martin@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  $Id$
22 */
23 
24 #include "kgamemessage.h"
25 
26 #include <tdelocale.h>
27 
28 #define MESSAGE_VERSION 2
29 
30 TQ_UINT32 KGameMessage::createPlayerId(int oldplayerid,TQ_UINT32 gameid)
31 {
32  int p;
33  p = oldplayerid & 0x3ff; // remove game id
34  p |= (gameid << 10);
35  return p;
36 }
37 
38 int KGameMessage::rawPlayerId(TQ_UINT32 playerid)
39 {
40  return playerid & 0x03ff;
41 }
42 
43 TQ_UINT32 KGameMessage::rawGameId(TQ_UINT32 playerid)
44 {
45  return (playerid & 0xfc00) >> 10;
46 }
47 
48 bool KGameMessage::isPlayer(TQ_UINT32 msgid)
49 {
50  if (msgid & 0xfc00) {
51  return true;
52  } else {
53  return false;
54  }
55 }
56 
57 bool KGameMessage::isGame(TQ_UINT32 msgid)
58 {
59  return !isPlayer(msgid);
60 }
61 
62 
63 void KGameMessage::createHeader(TQDataStream &msg,TQ_UINT32 sender,TQ_UINT32 receiver,int msgid)
64 {
65  msg << (TQ_INT16)sender << (TQ_INT16)receiver << (TQ_INT16)msgid;
66 }
67 
68 void KGameMessage::extractHeader(TQDataStream &msg,TQ_UINT32 &sender,TQ_UINT32 &receiver,int &msgid)
69 {
70  TQ_INT16 d3,d4,d5;
71  msg >> d3 >> d4 >> d5;
72  sender=d3;receiver=d4;msgid=d5;
73 }
74 
75 void KGameMessage::createPropertyHeader(TQDataStream &msg,int id)
76 {
77  msg << (TQ_INT16)id;
78 }
79 
80 void KGameMessage::extractPropertyHeader(TQDataStream &msg,int &id)
81 {
82  TQ_INT16 d1;
83  msg >> d1;
84  id=d1;
85 }
86 
87 void KGameMessage::createPropertyCommand(TQDataStream &msg,int cmdid,int pid,int cmd)
88 {
89  createPropertyHeader(msg,cmdid);
90  msg << (TQ_INT16)pid ;
91  msg << (TQ_INT8)cmd ;
92 }
93 
94 void KGameMessage::extractPropertyCommand(TQDataStream &msg,int &pid,int &cmd)
95 {
96  TQ_INT16 d1;
97  TQ_INT8 d2;
98  msg >> d1 >> d2;
99  pid=d1;
100  cmd=d2;
101 }
102 
103 int KGameMessage::version()
104 {
105  return MESSAGE_VERSION;
106 }
107 
108 TQString KGameMessage::messageId2Text(int msgid)
109 {
110 // this should contain all KGameMessage::GameMessageIds
111 // feel free to add missing ones, to remove obsolete one and even feel free to
112 // let it be ;-)
113  switch (msgid) {
114  case KGameMessage::IdSetupGame:
115  return i18n("Setup Game");
116  case KGameMessage::IdSetupGameContinue:
117  return i18n("Setup Game Continue");
118  case KGameMessage::IdGameLoad:
119  return i18n("Load Game");
120  case KGameMessage::IdGameConnected:
121  return i18n("Client game connected");
122  case KGameMessage::IdGameSetupDone:
123  return i18n("Game setup done");
124  case KGameMessage::IdSyncRandom:
125  return i18n("Synchronize Random");
126  case KGameMessage::IdDisconnect:
127  return i18n("Disconnect");
128  case KGameMessage::IdPlayerProperty:
129  return i18n("Player Property");
130  case KGameMessage::IdGameProperty:
131  return i18n("Game Property");
132  case KGameMessage::IdAddPlayer:
133  return i18n("Add Player");
134  case KGameMessage::IdRemovePlayer:
135  return i18n("Remove Player");
136  case KGameMessage::IdActivatePlayer:
137  return i18n("Activate Player");
138  case KGameMessage::IdInactivatePlayer:
139  return i18n("Inactivate Player");
140  case KGameMessage::IdTurn:
141  return i18n("Id Turn");
142  case KGameMessage::IdError:
143  return i18n("Error Message");
144  case KGameMessage::IdPlayerInput:
145  return i18n("Player Input");
146  case KGameMessage::IdIOAdded:
147  return i18n("An IO was added");
148  case KGameMessage::IdProcessQuery:
149  return i18n("Process Query");
150  case KGameMessage::IdPlayerId:
151  return i18n("Player ID");
152  case KGameMessage::IdUser: // IdUser must be unknown for use, too!
153  default:
154  return TQString();
155  }
156 }

libtdegames

Skip menu "libtdegames"
  • Main Page
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

libtdegames

Skip menu "libtdegames"
  • libtdegames
Generated for libtdegames by doxygen 1.8.13
This website is maintained by Timothy Pearson.