else if ( !strcmp( name, "version" ) ) { return QString2Python( self->pSock->version() ); }  else if ( !strcmp( name, "3dclient" ) ) { if (self->pSock->is3dClient()) { Py_RETURN_TRUE; } else { Py_RETURN_FALSE; } }  else if ( !strcmp( name, "flags" ) ) { return PyInt_FromLong(self->pSock->flags()); }  else if ( !strcmp( name, "rxbytes" ) ) { return PyInt_FromLong( self->pSock->rxBytes() ); }   else if ( !strcmp( name, "txbytes" ) ) { return PyInt_FromLong( self->pSock->txBytes() ); }   else if ( !strcmp( name, "txbytesraw" ) ) { return PyInt_FromLong( self->pSock->txBytesRaw() ); }
static PyObject* wpSocket_getAttr( wpSocket* self, char* name ){	/*		\rproperty socket.player The <object id="CHAR">char</object> object for the player played by this socket. May be None.	*/	if ( !strcmp( name, "player" ) )		return PyGetCharObject( self->pSock->player() );	/*		\rproperty socket.screenwidth The width of the game window in pixels as sent by the client.	*/	else if ( !strcmp( name, "screenwidth" ) )	{		return PyInt_FromLong( self->pSock->screenWidth() );	}	/*		\rproperty socket.screenheight The height of the game window in pixels as sent by the client.	*/	else if ( !strcmp( name, "screenheight" ) )	{		return PyInt_FromLong( self->pSock->screenHeight() );	}	else if ( !strcmp( name, "walksequence" ) )	{		return PyInt_FromLong( self->pSock->walkSequence() );	}	/*		\rproperty socket.account An <object id="account">account</object> object for the account used by this socket. Should not be None.	*/	else if ( !strcmp( name, "account" ) )	{		return PyGetAccountObject( self->pSock->account() );	}	/*		\rproperty socket.address A string containing the IP address this socket is connected to.	*/	else if ( !strcmp( name, "address" ) )	{		return QString2Python( self->pSock->ip() );	}	/*		\rproperty socket.id The unique socket identifier for this socket.	*/	else if ( !strcmp( name, "id" ) )	{		return PyInt_FromLong( self->pSock->uniqueId() );	}	else	{		return Py_FindMethod( wpSocketMethods, ( PyObject * ) self, name );	}}