28 #include "kgamemessage.h"
29 #include "kgamepropertyhandler.h"
39 #define KPLAYER_LOAD_COOKIE 7285
76 kdDebug(11001) << k_funcinfo <<
": this=" <<
this <<
", sizeof(this)="<<
sizeof(
KPlayer) << endl;
77 kdDebug(11001) <<
"sizeof(m_Group)="<<
sizeof(d->mGroup)<<endl;
78 d =
new KPlayerPrivate;
80 d->mProperties.registerHandler(KGameMessage::IdPlayerProperty,
91 mUserId.
registerData(KGamePropertyBase::IdUserId,
this, i18n(
"UserId"));
93 d->mGroup.registerData(KGamePropertyBase::IdGroup,
this, i18n(
"Group"));
94 d->mGroup.setLocal(i18n(
"default"));
95 d->mName.registerData(KGamePropertyBase::IdName,
this, i18n(
"Name"));
96 d->mName.setLocal(i18n(
"default"));
98 mAsyncInput.
registerData(KGamePropertyBase::IdAsyncInput,
this, i18n(
"AsyncInput"));
100 mMyTurn.
registerData(KGamePropertyBase::IdTurn,
this, i18n(
"myTurn"));
108 kdDebug(11001) << k_funcinfo <<
": this=" <<
this <<
", id=" << this->
id() << endl;
112 while((input=mInputList.first()))
123 d->mProperties.clear();
138 kdDebug(11001) << k_funcinfo <<
": to game sender="<<sender<<
"" <<
"recv="<<receiver <<
"msgid="<<msgid << endl;
153 kdDebug(11001) << k_funcinfo <<
": to game playerInput(sender="<<sender<<
")" << endl;
156 kdDebug(11001) << k_funcinfo <<
": rejected cause it is not our turn" << endl;
166 kdDebug(11001) <<
"indirect playerInput" << endl;
171 kdDebug(11001) <<
"direct playerInput" << endl;
176 void KPlayer::setId(TQ_UINT32 newid)
184 { d->mGroup =
group; }
187 {
return d->mGroup.value(); }
193 {
return d->mName.value(); }
199 {
return &d->mProperties; }
201 void KPlayer::setVirtual(
bool v)
205 {
return d->mVirtual;}
208 { d->mNetworkPlayer = p; }
211 {
return d->mNetworkPlayer; }
214 {
return d->mPriority; }
217 { d->mPriority = p; }
225 mInputList.append(input);
233 kdDebug(11001) << k_funcinfo <<
": " << targetinput <<
" delete=" << deleteit<< endl;
238 while((input=mInputList.first()))
253 result=mInputList.remove(targetinput);
261 TQPtrListIterator<KGameIO> it(mInputList);
264 if (it.current()->rtti() ==
rtti)
276 TQPtrListIterator<KGameIO> it(mInputList);
279 value|=it.current()->rtti();
287 kdDebug(11001) << k_funcinfo <<
": " <<
id() <<
" (" <<
this <<
") to " << b << endl;
294 if (exclusive && b &&
game())
298 for ( player=list->first(); player != 0; player=list->next() )
316 TQ_INT32
id,priority;
317 stream >>
id >> priority;
323 d->mProperties.load(stream);
327 if (cookie==KPLAYER_LOAD_COOKIE)
329 kdDebug(11001) <<
" Player loaded propertly"<<endl;
333 kdError(11001) <<
" Player loading error. probably format error"<<endl;
344 d->mProperties.save(stream);
346 stream << (TQ_INT16)KPLAYER_LOAD_COOKIE;
366 if (d->mProperties.processMessage(stream,msgid,issender))
372 case KGameMessage::IdPlayerInput:
374 kdDebug(11001) << k_funcinfo <<
": Got player move "
375 <<
"KPlayer (virtual) forwards it to the game object" << endl;
381 ((TQBuffer*)stream.device())->readAll(),sender,
this);
382 kdDebug(11001) << k_funcinfo <<
": "
383 <<
"User data msgid " << msgid << endl;
391 return d->mProperties.find(
id);
396 return d->mProperties.addProperty(data);
414 if (me->
id()==KGamePropertyBase::IdTurn)
417 TQPtrListIterator<KGameIO> it(mInputList);
420 it.current()->notifyTurn(mMyTurn.
value());
430 kdDebug(11001) <<
"------------------- KPLAYER -----------------------" << endl;
431 kdDebug(11001) <<
"this: " <<
this << endl;
432 kdDebug(11001) <<
"rtti: " <<
rtti() << endl;
433 kdDebug(11001) <<
"id : " <<
id() << endl;
434 kdDebug(11001) <<
"Name : " <<
name() << endl;
435 kdDebug(11001) <<
"Group: " <<
group() << endl;
436 kdDebug(11001) <<
"Async: " <<
asyncInput() << endl;
437 kdDebug(11001) <<
"myTurn: " <<
myTurn() << endl;
438 kdDebug(11001) <<
"Virtual: " <<
isVirtual() << endl;
439 kdDebug(11001) <<
"Active: " <<
isActive() << endl;
441 kdDebug(11001) <<
"Game : " <<
game() << endl;
442 kdDebug(11001) <<
"#IOs: " << mInputList.count() << endl;
443 kdDebug(11001) <<
"---------------------------------------------------" << endl;
446 #include "kplayer.moc"