00001
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 }