Browse Source

Convert username in pyPlayer and pfKIMsg to a plString

Michael Hansen 11 years ago
parent
commit
a931c7ca33
  1. 4
      Sources/Plasma/FeatureLib/pfConsole/pfDispatchLog.cpp
  2. 15
      Sources/Plasma/FeatureLib/pfMessage/pfKIMsg.h
  3. 10
      Sources/Plasma/FeatureLib/pfPython/plPythonFileMod.cpp
  4. 10
      Sources/Plasma/FeatureLib/pfPython/pyPlayer.cpp
  5. 20
      Sources/Plasma/FeatureLib/pfPython/pyPlayer.h
  6. 8
      Sources/Plasma/FeatureLib/pfPython/pyPlayerGlue.cpp

4
Sources/Plasma/FeatureLib/pfConsole/pfDispatchLog.cpp

@ -259,8 +259,8 @@ static bool DumpSpecificMsgInfo(plMessage* msg, plString& info)
info = plString::Format("Type: %s Str: %s User: %s(%d) Delay: %f Int: %d", info = plString::Format("Type: %s Str: %s User: %s(%d) Delay: %f Int: %d",
typeName, typeName,
kiMsg->GetString() != "" ? kiMsg->GetString().c_str() : "(nil)", kiMsg->GetString().c_str("(nil)"),
kiMsg->GetUser() ? kiMsg->GetUser() : "(nil)", kiMsg->GetUser().c_str("(nil)"),
kiMsg->GetPlayerID(), kiMsg->GetPlayerID(),
kiMsg->GetDelay(), kiMsg->GetDelay(),
kiMsg->GetIntValue()); kiMsg->GetIntValue());

15
Sources/Plasma/FeatureLib/pfMessage/pfKIMsg.h

@ -64,7 +64,7 @@ class pfKIMsg : public plMessage
uint32_t fFlags; uint32_t fFlags;
// for the hack chat message thingy // for the hack chat message thingy
char *fUser; plString fUser;
uint32_t fPlayerID; uint32_t fPlayerID;
plString fString; plString fString;
@ -77,8 +77,8 @@ class pfKIMsg : public plMessage
void IInit() void IInit()
{ {
fCommand = kNoCommand; fCommand = kNoCommand;
fString = ""; fString = plString::Null;
fUser = nil; fUser = plString::Null;
fPlayerID = 0; fPlayerID = 0;
fFlags = 0; fFlags = 0;
fDelay = 0.0; fDelay = 0.0;
@ -180,7 +180,6 @@ class pfKIMsg : public plMessage
pfKIMsg() : plMessage( nil, nil, nil ) { SetBCastFlag( kBCastByExactType ); IInit(); } pfKIMsg() : plMessage( nil, nil, nil ) { SetBCastFlag( kBCastByExactType ); IInit(); }
pfKIMsg( uint8_t command ) : plMessage( nil, nil, nil ) { SetBCastFlag( kBCastByExactType ); IInit(); fCommand = command; } pfKIMsg( uint8_t command ) : plMessage( nil, nil, nil ) { SetBCastFlag( kBCastByExactType ); IInit(); fCommand = command; }
pfKIMsg( plKey &receiver, uint8_t command ) : plMessage( nil, nil, nil ) { AddReceiver( receiver ); IInit(); fCommand = command; } pfKIMsg( plKey &receiver, uint8_t command ) : plMessage( nil, nil, nil ) { AddReceiver( receiver ); IInit(); fCommand = command; }
~pfKIMsg() { delete [] fUser; }
CLASSNAME_REGISTER( pfKIMsg ); CLASSNAME_REGISTER( pfKIMsg );
GETINTERFACE_ANY( pfKIMsg, plMessage ); GETINTERFACE_ANY( pfKIMsg, plMessage );
@ -189,7 +188,7 @@ class pfKIMsg : public plMessage
{ {
plMessage::IMsgRead( s, mgr ); plMessage::IMsgRead( s, mgr );
s->ReadLE( &fCommand ); s->ReadLE( &fCommand );
fUser = s->ReadSafeString(); fUser = s->ReadSafeString_TEMP();
fPlayerID = s->ReadLE32(); fPlayerID = s->ReadLE32();
fString = s->ReadSafeWString_TEMP(); fString = s->ReadSafeWString_TEMP();
fFlags = s->ReadLE32(); fFlags = s->ReadLE32();
@ -214,9 +213,9 @@ class pfKIMsg : public plMessage
void SetString( const plString &str ) { fString = str; } void SetString( const plString &str ) { fString = str; }
plString GetString( void ) { return fString; } plString GetString( void ) { return fString; }
void SetUser( const char *str, uint32_t pid=0 ) { fUser = hsStrcpy( str ); fPlayerID = pid; } void SetUser(const plString &str, uint32_t pid=0) { fUser = str; fPlayerID = pid; }
const char *GetUser( void ) { return fUser; } plString GetUser() const { return fUser; }
uint32_t GetPlayerID( void ) { return fPlayerID; } uint32_t GetPlayerID() const { return fPlayerID; }
void SetFlags( uint32_t flags ) { fFlags = flags; } void SetFlags( uint32_t flags ) { fFlags = flags; }
uint32_t GetFlags( void ) const { return fFlags; } uint32_t GetFlags( void ) const { return fFlags; }

10
Sources/Plasma/FeatureLib/pfPython/plPythonFileMod.cpp

@ -647,7 +647,7 @@ void plPythonFileMod::AddTarget(plSceneObject* sobj)
// if it wasn't a named string then must be normal string type // if it wasn't a named string then must be normal string type
if ( isNamedAttr == 0 ) if ( isNamedAttr == 0 )
if ( !parameter.fString.IsNull() ) if ( !parameter.fString.IsNull() )
value = PyString_FromString(parameter.fString.c_str()); value = PyString_FromPlString(parameter.fString);
break; break;
case plPythonParameter::kSceneObject: case plPythonParameter::kSceneObject:
case plPythonParameter::kSceneObjectList: case plPythonParameter::kSceneObjectList:
@ -1882,7 +1882,7 @@ bool plPythonFileMod::MsgReceive(plMessage* msg)
case pfKIMsg::kRateIt: case pfKIMsg::kRateIt:
value = PyTuple_New(3); value = PyTuple_New(3);
str = pkimsg->GetString().ToWchar(); str = pkimsg->GetString().ToWchar();
PyTuple_SetItem(value,0,PyString_FromString(pkimsg->GetUser())); PyTuple_SetItem(value,0,PyString_FromPlString(pkimsg->GetUser()));
PyTuple_SetItem(value,1,PyUnicode_FromWideChar(str, str.GetSize())); PyTuple_SetItem(value,1,PyUnicode_FromWideChar(str, str.GetSize()));
PyTuple_SetItem(value,2,PyLong_FromLong(pkimsg->GetIntValue())); PyTuple_SetItem(value,2,PyLong_FromLong(pkimsg->GetIntValue()));
break; break;
@ -1999,7 +1999,7 @@ bool plPythonFileMod::MsgReceive(plMessage* msg)
if ( mbrIndex != -1 ) if ( mbrIndex != -1 )
{ {
plNetTransportMember *mbr = plNetClientMgr::GetInstance()->TransportMgr().GetMember( mbrIndex ); plNetTransportMember *mbr = plNetClientMgr::GetInstance()->TransportMgr().GetMember( mbrIndex );
player = pyPlayer::New(mbr->GetAvatarKey(), mbr->GetPlayerName().c_str(), mbr->GetPlayerID(), mbr->GetDistSq()); player = pyPlayer::New(mbr->GetAvatarKey(), mbr->GetPlayerName(), mbr->GetPlayerID(), mbr->GetDistSq());
} }
else else
{ {
@ -2155,8 +2155,8 @@ bool plPythonFileMod::MsgReceive(plMessage* msg)
else else
{ {
// else if we could not find the player in our list, then just return a string of the user's name // else if we could not find the player in our list, then just return a string of the user's name
const char * fromName = pkimsg->GetUser(); plString fromName = pkimsg->GetUser();
if (!fromName) if (fromName.IsEmpty())
fromName = "Anonymous Coward"; fromName = "Anonymous Coward";
player = pyPlayer::New(plNetClientMgr::GetInstance()->GetLocalPlayerKey(), fromName, pkimsg->GetPlayerID(), 0.0); player = pyPlayer::New(plNetClientMgr::GetInstance()->GetLocalPlayerKey(), fromName, pkimsg->GetPlayerID(), 0.0);
} }

10
Sources/Plasma/FeatureLib/pfPython/pyPlayer.cpp

@ -48,14 +48,14 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
pyPlayer::pyPlayer() // only used by python glue, do NOT call pyPlayer::pyPlayer() // only used by python glue, do NOT call
{ {
fAvatarKey = nil; fAvatarKey = nil;
fPlayerName = ""; fPlayerName = plString::Null;
fPlayerID = 0; fPlayerID = 0;
fDistSq = -1; fDistSq = -1;
fIsCCR = false; fIsCCR = false;
fIsServer = false; fIsServer = false;
} }
pyPlayer::pyPlayer(pyKey& avKey, const char* pname, uint32_t pid, float distsq) pyPlayer::pyPlayer(pyKey& avKey, const plString& pname, uint32_t pid, float distsq)
{ {
fAvatarKey = avKey.getKey(); fAvatarKey = avKey.getKey();
fPlayerName = pname; fPlayerName = pname;
@ -65,7 +65,7 @@ pyPlayer::pyPlayer(pyKey& avKey, const char* pname, uint32_t pid, float distsq)
fIsServer = false; fIsServer = false;
} }
pyPlayer::pyPlayer(plKey avKey, const char* pname, uint32_t pid, float distsq) pyPlayer::pyPlayer(plKey avKey, const plString& pname, uint32_t pid, float distsq)
{ {
fAvatarKey = avKey; fAvatarKey = avKey;
fPlayerName = pname; fPlayerName = pname;
@ -76,7 +76,7 @@ pyPlayer::pyPlayer(plKey avKey, const char* pname, uint32_t pid, float distsq)
} }
// another way to create a player with just a name and number // another way to create a player with just a name and number
pyPlayer::pyPlayer(const char* pname, uint32_t pid) pyPlayer::pyPlayer(const plString& pname, uint32_t pid)
{ {
fAvatarKey = nil; fAvatarKey = nil;
fPlayerName = pname; fPlayerName = pname;
@ -86,7 +86,7 @@ pyPlayer::pyPlayer(const char* pname, uint32_t pid)
fIsServer = false; fIsServer = false;
} }
void pyPlayer::Init(plKey avKey, const char* pname, uint32_t pid, float distsq) // used by python glue, do NOT call void pyPlayer::Init(plKey avKey, const plString& pname, uint32_t pid, float distsq) // used by python glue, do NOT call
{ {
fAvatarKey = avKey; fAvatarKey = avKey;
fPlayerName = pname; fPlayerName = pname;

20
Sources/Plasma/FeatureLib/pfPython/pyPlayer.h

@ -51,31 +51,31 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pyGlueHelpers.h" #include "pyGlueHelpers.h"
#include "pnKeyedObject/plKey.h" #include "pnKeyedObject/plKey.h"
#include <string> #include "plString.h"
class pyPlayer class pyPlayer
{ {
protected: protected:
plKey fAvatarKey; plKey fAvatarKey;
std::string fPlayerName; plString fPlayerName;
uint32_t fPlayerID; uint32_t fPlayerID;
float fDistSq; // from local player, temp float fDistSq; // from local player, temp
bool fIsCCR; bool fIsCCR;
bool fIsServer; bool fIsServer;
pyPlayer(); // only used by python glue, do NOT call pyPlayer(); // only used by python glue, do NOT call
pyPlayer(pyKey& avKey, const char* pname, uint32_t pid, float distsq); pyPlayer(pyKey& avKey, const plString& pname, uint32_t pid, float distsq);
pyPlayer(plKey avKey, const char* pname, uint32_t pid, float distsq); pyPlayer(plKey avKey, const plString& pname, uint32_t pid, float distsq);
// another way to create a player with just a name and number // another way to create a player with just a name and number
pyPlayer(const char* pname, uint32_t pid); pyPlayer(const plString& pname, uint32_t pid);
public: public:
void Init(plKey avKey, const char* pname, uint32_t pid, float distsq); // used by python glue, do NOT call void Init(plKey avKey, const plString& pname, uint32_t pid, float distsq); // used by python glue, do NOT call
// required functions for PyObject interoperability // required functions for PyObject interoperability
PYTHON_CLASS_NEW_FRIEND(ptPlayer); PYTHON_CLASS_NEW_FRIEND(ptPlayer);
static PyObject *New(pyKey& avKey, const char* pname, uint32_t pid, float distsq); static PyObject *New(pyKey& avKey, const plString& pname, uint32_t pid, float distsq);
static PyObject *New(plKey avKey, const char* pname, uint32_t pid, float distsq); static PyObject *New(plKey avKey, const plString& pname, uint32_t pid, float distsq);
static PyObject *New(const char* pname, uint32_t pid); static PyObject *New(const plString& pname, uint32_t pid);
PYTHON_CLASS_CHECK_DEFINITION; // returns true if the PyObject is a pyPlayer object PYTHON_CLASS_CHECK_DEFINITION; // returns true if the PyObject is a pyPlayer object
PYTHON_CLASS_CONVERT_FROM_DEFINITION(pyPlayer); // converts a PyObject to a pyPlayer (throws error if not correct type) PYTHON_CLASS_CONVERT_FROM_DEFINITION(pyPlayer); // converts a PyObject to a pyPlayer (throws error if not correct type)
@ -96,7 +96,7 @@ public:
plKey GetKey() const { return fAvatarKey; } plKey GetKey() const { return fAvatarKey; }
// for python access // for python access
const char * GetPlayerName() const { return fPlayerName.c_str();} plString GetPlayerName() const { return fPlayerName; }
uint32_t GetPlayerID() const { return fPlayerID; } uint32_t GetPlayerID() const { return fPlayerID; }
float GetDistSq() const { return fDistSq; } float GetDistSq() const { return fDistSq; }

8
Sources/Plasma/FeatureLib/pfPython/pyPlayerGlue.cpp

@ -137,7 +137,7 @@ PYTHON_RICH_COMPARE_DEFINITION(ptPlayer, obj1, obj2, compareType)
PYTHON_METHOD_DEFINITION_NOARGS(ptPlayer, getPlayerName) PYTHON_METHOD_DEFINITION_NOARGS(ptPlayer, getPlayerName)
{ {
return PyString_FromString(self->fThis->GetPlayerName()); return PyString_FromPlString(self->fThis->GetPlayerName());
} }
PYTHON_METHOD_DEFINITION_NOARGS(ptPlayer, getPlayerID) PYTHON_METHOD_DEFINITION_NOARGS(ptPlayer, getPlayerID)
@ -180,21 +180,21 @@ PYTHON_END_METHODS_TABLE;
PLASMA_CUSTOM_TYPE(ptPlayer, "Params: avkey,name,playerID,distanceSq\nAnd optionally __init__(name,playerID)"); PLASMA_CUSTOM_TYPE(ptPlayer, "Params: avkey,name,playerID,distanceSq\nAnd optionally __init__(name,playerID)");
// required functions for PyObject interoperability // required functions for PyObject interoperability
PyObject *pyPlayer::New(pyKey& avKey, const char* pname, uint32_t pid, float distsq) PyObject *pyPlayer::New(pyKey& avKey, const plString& pname, uint32_t pid, float distsq)
{ {
ptPlayer *newObj = (ptPlayer*)ptPlayer_type.tp_new(&ptPlayer_type, NULL, NULL); ptPlayer *newObj = (ptPlayer*)ptPlayer_type.tp_new(&ptPlayer_type, NULL, NULL);
newObj->fThis->Init(avKey.getKey(), pname, pid, distsq); newObj->fThis->Init(avKey.getKey(), pname, pid, distsq);
return (PyObject*)newObj; return (PyObject*)newObj;
} }
PyObject *pyPlayer::New(plKey avKey, const char* pname, uint32_t pid, float distsq) PyObject *pyPlayer::New(plKey avKey, const plString& pname, uint32_t pid, float distsq)
{ {
ptPlayer *newObj = (ptPlayer*)ptPlayer_type.tp_new(&ptPlayer_type, NULL, NULL); ptPlayer *newObj = (ptPlayer*)ptPlayer_type.tp_new(&ptPlayer_type, NULL, NULL);
newObj->fThis->Init(avKey, pname, pid, distsq); newObj->fThis->Init(avKey, pname, pid, distsq);
return (PyObject*)newObj; return (PyObject*)newObj;
} }
PyObject *pyPlayer::New(const char* pname, uint32_t pid) PyObject *pyPlayer::New(const plString& pname, uint32_t pid)
{ {
ptPlayer *newObj = (ptPlayer*)ptPlayer_type.tp_new(&ptPlayer_type, NULL, NULL); ptPlayer *newObj = (ptPlayer*)ptPlayer_type.tp_new(&ptPlayer_type, NULL, NULL);
newObj->fThis->Init(nil, pname, pid, -1); newObj->fThis->Init(nil, pname, pid, -1);

Loading…
Cancel
Save