libkdegames Library API Documentation

kgamemessage.cpp

00001 /* 00002 This file is part of the KDE games library 00003 Copyright (C) 2001 Martin Heni (martin@heni-online.de) 00004 Copyright (C) 2001 Andreas Beckermann (b_mann@gmx.de) 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Library General Public 00008 License version 2 as published by the Free Software Foundation. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Library General Public License for more details. 00014 00015 You should have received a copy of the GNU Library General Public License 00016 along with this library; see the file COPYING.LIB. If not, write to 00017 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00018 Boston, MA 02111-1307, USA. 00019 */ 00020 /* 00021 $Id: kgamemessage.cpp,v 1.13 2003/02/28 23:29:45 andreas Exp $ 00022 */ 00023 00024 #include "kgamemessage.h" 00025 00026 #include <klocale.h> 00027 00028 #define MESSAGE_VERSION 2 00029 00030 Q_UINT32 KGameMessage::createPlayerId(int oldplayerid,Q_UINT32 gameid) 00031 { 00032 int p; 00033 p = oldplayerid & 0x3ff; // remove game id 00034 p |= (gameid << 10); 00035 return p; 00036 } 00037 00038 int KGameMessage::rawPlayerId(Q_UINT32 playerid) 00039 { 00040 return playerid & 0x03ff; 00041 } 00042 00043 Q_UINT32 KGameMessage::rawGameId(Q_UINT32 playerid) 00044 { 00045 return (playerid & 0xfc00) >> 10; 00046 } 00047 00048 bool KGameMessage::isPlayer(Q_UINT32 msgid) 00049 { 00050 if (msgid & 0xfc00) { 00051 return true; 00052 } else { 00053 return false; 00054 } 00055 } 00056 00057 bool KGameMessage::isGame(Q_UINT32 msgid) 00058 { 00059 return !isPlayer(msgid); 00060 } 00061 00062 00063 void KGameMessage::createHeader(QDataStream &msg,Q_UINT32 sender,Q_UINT32 receiver,int msgid) 00064 { 00065 msg << (Q_INT16)sender << (Q_INT16)receiver << (Q_INT16)msgid; 00066 } 00067 00068 void KGameMessage::extractHeader(QDataStream &msg,Q_UINT32 &sender,Q_UINT32 &receiver,int &msgid) 00069 { 00070 Q_INT16 d3,d4,d5; 00071 msg >> d3 >> d4 >> d5; 00072 sender=d3;receiver=d4;msgid=d5; 00073 } 00074 00075 void KGameMessage::createPropertyHeader(QDataStream &msg,int id) 00076 { 00077 msg << (Q_INT16)id; 00078 } 00079 00080 void KGameMessage::extractPropertyHeader(QDataStream &msg,int &id) 00081 { 00082 Q_INT16 d1; 00083 msg >> d1; 00084 id=d1; 00085 } 00086 00087 void KGameMessage::createPropertyCommand(QDataStream &msg,int cmdid,int pid,int cmd) 00088 { 00089 createPropertyHeader(msg,cmdid); 00090 msg << (Q_INT16)pid ; 00091 msg << (Q_INT8)cmd ; 00092 } 00093 00094 void KGameMessage::extractPropertyCommand(QDataStream &msg,int &pid,int &cmd) 00095 { 00096 Q_INT16 d1; 00097 Q_INT8 d2; 00098 msg >> d1 >> d2; 00099 pid=d1; 00100 cmd=d2; 00101 } 00102 00103 int KGameMessage::version() 00104 { 00105 return MESSAGE_VERSION; 00106 } 00107 00108 QString KGameMessage::messageId2Text(int msgid) 00109 { 00110 // this should contain all KGameMessage::GameMessageIds 00111 // feel free to add missing ones, to remove obsolete one and even feel free to 00112 // let it be ;-) 00113 switch (msgid) { 00114 case KGameMessage::IdSetupGame: 00115 return i18n("Setup Game"); 00116 case KGameMessage::IdSetupGameContinue: 00117 return i18n("Setup Game Continue"); 00118 case KGameMessage::IdGameLoad: 00119 return i18n("Load Game"); 00120 case KGameMessage::IdGameConnected: 00121 return i18n("Client game connected"); 00122 case KGameMessage::IdGameSetupDone: 00123 return i18n("Game setup done"); 00124 case KGameMessage::IdSyncRandom: 00125 return i18n("Synchronize Random"); 00126 case KGameMessage::IdDisconnect: 00127 return i18n("Disconnect"); 00128 case KGameMessage::IdPlayerProperty: 00129 return i18n("Player Property"); 00130 case KGameMessage::IdGameProperty: 00131 return i18n("Game Property"); 00132 case KGameMessage::IdAddPlayer: 00133 return i18n("Add Player"); 00134 case KGameMessage::IdRemovePlayer: 00135 return i18n("Remove Player"); 00136 case KGameMessage::IdActivatePlayer: 00137 return i18n("Activate Player"); 00138 case KGameMessage::IdInactivatePlayer: 00139 return i18n("Inactivate Player"); 00140 case KGameMessage::IdTurn: 00141 return i18n("Id Turn"); 00142 case KGameMessage::IdError: 00143 return i18n("Error Message"); 00144 case KGameMessage::IdPlayerInput: 00145 return i18n("Player Input"); 00146 case KGameMessage::IdIOAdded: 00147 return i18n("An IO was added"); 00148 case KGameMessage::IdProcessQuery: 00149 return i18n("Process Query"); 00150 case KGameMessage::IdPlayerId: 00151 return i18n("Player ID"); 00152 case KGameMessage::IdUser: // IdUser must be unknown for use, too! 00153 default: 00154 return QString::null; 00155 } 00156 }
KDE Logo
This file is part of the documentation for libkdegames Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Aug 26 00:21:40 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003