25 #include "kgameio.moc"
28 #include "kgamemessage.h"
29 #include "kmessageio.h"
42 kdDebug(11001) << k_funcinfo <<
": this=" <<
this <<
", sizeof(this)" <<
sizeof(
KGameIO) << endl;
48 kdDebug(11001) << k_funcinfo <<
": this=" <<
this <<
", sizeof(this)" <<
sizeof(
KGameIO) << endl;
58 kdDebug(11001) << k_funcinfo <<
": this=" <<
this << endl;
75 kdWarning(11001) << k_funcinfo <<
": player() is NULL" << endl;
80 TQDataStream stream(buffer, IO_WriteOnly);
84 TQDataStream ostream(buffer,IO_ReadOnly);
86 kdDebug(11001) <<
"Prepare turn sendInput" << endl;
111 kdDebug(11001) <<
"------------------- KGAMEINPUT --------------------" << endl;
112 kdDebug(11001) <<
"this: " <<
this << endl;
113 kdDebug(11001) <<
"rtti : " <<
rtti() << endl;
114 kdDebug(11001) <<
"Player: " <<
player() << endl;
115 kdDebug(11001) <<
"---------------------------------------------------" << endl;
125 kdDebug(11001) <<
"Key Event filter installed" << endl;
126 parent->installEventFilter(
this);
130 KGameKeyIO::~KGameKeyIO()
134 parent()->removeEventFilter(
this);
148 if ( e->type() == TQEvent::KeyPress ||
149 e->type() == TQEvent::KeyRelease )
151 TQKeyEvent *k = (TQKeyEvent*)e;
154 TQDataStream stream(buffer,IO_WriteOnly);
157 TQDataStream msg(buffer,IO_ReadOnly);
175 kdDebug(11001) <<
"Mouse Event filter installed tracking=" << trackmouse << endl;
176 parent->installEventFilter(
this);
177 parent->setMouseTracking(trackmouse);
181 KGameMouseIO::~KGameMouseIO()
185 parent()->removeEventFilter(
this);
211 if ( e->type() == TQEvent::MouseButtonPress ||
212 e->type() == TQEvent::MouseButtonRelease ||
213 e->type() == TQEvent::MouseButtonDblClick ||
214 e->type() == TQEvent::Wheel ||
215 e->type() == TQEvent::MouseMove
218 TQMouseEvent *k = (TQMouseEvent*)e;
221 TQDataStream stream(buffer,IO_WriteOnly);
225 TQDataStream msg(buffer,IO_ReadOnly);
237 class KGameProcessIO::KGameProcessIOPrivate
240 KGameProcessIOPrivate()
248 KMessageProcess *mProcessIO;
255 kdDebug(11001) << k_funcinfo <<
": this=" <<
this <<
", sizeof(this)=" <<
sizeof(
KGameProcessIO) << endl;
256 d =
new KGameProcessIOPrivate;
262 kdDebug(11001) <<
"================= KMEssageProcessIO ==================== " << endl;
263 d->mProcessIO=
new KMessageProcess(
this,name);
264 kdDebug(11001) <<
"================= KMEssage Add client ==================== " << endl;
268 kdDebug(11001) <<
"================= KMEssage: Connect ==================== " << endl;
273 connect(d->mProcessIO, TQT_SIGNAL(received(
const TQByteArray&)),
280 kdDebug(11001) << k_funcinfo <<
": this=" <<
this << endl;
281 kdDebug(11001) <<
"player="<<
player() << endl;
288 delete d->mProcessIO;
304 TQDataStream stream(buffer, IO_WriteOnly);
305 TQ_INT16
id = p->
userId();
314 TQ_UINT32 sender = p->
id();
315 kdDebug(11001) <<
"Sending IOAdded to process player !!!!!!!!!!!!!! " << endl;
325 kdWarning(11001) << k_funcinfo <<
": player() is NULL" << endl;
330 TQDataStream stream(buffer,IO_WriteOnly);
331 stream << (TQ_INT8)b;
336 kdDebug(11001) <<
"Sending Turn to process player !!!!!!!!!!!!!! " << endl;
353 kdDebug(11001) <<
"==============> KGameProcessIO::sendMessage (usermsg="<<usermsg<<
")" << endl;
359 msgid+=KGameMessage::IdUser;
362 kdDebug(11001) <<
"=============* ProcessIO (" << msgid <<
"," << receiver <<
"," << sender <<
") ===========" << endl;
365 TQDataStream ostream(buffer,IO_WriteOnly);
366 TQBuffer *device=(TQBuffer *)stream.device();
367 TQByteArray data=device->buffer();;
369 KGameMessage::createHeader(ostream,sender,receiver,msgid);
371 ostream.writeRawBytes(data.data(),data.size());
372 kdDebug(11001) <<
" Adding user data from pos="<< device->at() <<
" amount= " << data.size() <<
" byte " << endl;
376 d->mProcessIO->send(buffer);
383 TQDataStream stream(receiveBuffer,IO_ReadOnly);
387 KGameMessage::extractHeader(stream,sender,receiver,msgid);
389 kdDebug(11001) <<
"************* Got process message sender =" << sender
390 <<
" receiver=" << receiver <<
" msgid=" << msgid << endl;
394 TQBuffer *buf=(TQBuffer *)stream.device();
395 TQByteArray newbuffer;
396 newbuffer.setRawData(buf->buffer().data()+buf->at(),buf->size()-buf->at());
397 TQDataStream ostream(newbuffer,IO_ReadOnly);
398 kdDebug(11001) <<
"Newbuffer size=" << newbuffer.size() << endl;
403 if (msgid==KGameMessage::IdProcessQuery)
410 if (msgid==KGameMessage::IdPlayerInput)
421 kdDebug(11001) << k_funcinfo <<
": Got message from process but no player defined!" << endl;
423 newbuffer.resetRawData(buf->buffer().data()+buf->at(),buf->size()-buf->at());
428 class KGameComputerIO::KGameComputerIOPrivate
432 KGameComputerIOPrivate()
446 TQTimer* mAdvanceTimer;
459 void KGameComputerIO::init()
461 d =
new KGameComputerIOPrivate;
464 KGameComputerIO::~KGameComputerIO()
466 if (d->mAdvanceTimer)
468 delete d->mAdvanceTimer;
480 d->mReactionPeriod = calls;
483 int KGameComputerIO::reactionPeriod()
const
485 return d->mReactionPeriod;
491 d->mAdvanceTimer =
new TQTimer(
this);
492 connect(d->mAdvanceTimer, TQT_SIGNAL(timeout()),
this, TQT_SLOT(
advance()));
493 d->mAdvanceTimer->start(ms);
496 void KGameComputerIO::stopAdvancePeriod()
498 if (d->mAdvanceTimer)
500 d->mAdvanceTimer->stop();
501 delete d->mAdvanceTimer;
507 d->mPauseCounter = calls;
517 if (d->mPauseCounter > 0)
522 else if (d->mPauseCounter < 0)
526 d->mAdvanceCounter++;
527 if (d->mAdvanceCounter >= d->mReactionPeriod)
529 d->mAdvanceCounter = 0;