kgamemessage.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
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;
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
00111
00112
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:
00153 default:
00154 return QString::null;
00155 }
00156 }
|