From: <ke...@us...> - 2007-11-18 00:21:28
|
Revision: 282 http://planeshift.svn.sourceforge.net/planeshift/?rev=282&view=rev Author: kemedes Date: 2007-11-17 16:21:32 -0800 (Sat, 17 Nov 2007) Log Message: ----------- More work on the introduction manager. Chatbubbles now show when unknown player speaks, but name isn't shown in chat window. Modified Paths: -------------- trunk/src/client/gui/chatwindow.cpp trunk/src/client/pscelclient.cpp trunk/src/client/pscelclient.h trunk/src/server/introductionmanager.cpp Modified: trunk/src/client/gui/chatwindow.cpp =================================================================== --- trunk/src/client/gui/chatwindow.cpp 2007-11-17 22:07:45 UTC (rev 281) +++ trunk/src/client/gui/chatwindow.cpp 2007-11-18 00:21:32 UTC (rev 282) @@ -1158,6 +1158,9 @@ psChatMessage msg(me); + if (psengine->GetCelClient()->GetActorByName(msg.sPerson, false) == NULL) + msg.sPerson = "Someone"; + if (msg.translate) msg.sText = PawsManager::GetSingleton().Translate(msg.sText); Modified: trunk/src/client/pscelclient.cpp =================================================================== --- trunk/src/client/pscelclient.cpp 2007-11-17 22:07:45 UTC (rev 281) +++ trunk/src/client/pscelclient.cpp 2007-11-18 00:21:32 UTC (rev 282) @@ -498,7 +498,7 @@ return false; } -GEMClientActor * psCelClient::GetActorByName(const char * name) const +GEMClientActor * psCelClient::GetActorByName(const char * name, bool trueName) const { size_t len = entities.GetSize(); csString testName, firstName; @@ -508,7 +508,7 @@ if (!actor) continue; - testName = actor->GetName(); + testName = actor->GetName(trueName); firstName = testName.Slice(0, testName.FindFirst(' ')); if (firstName == name) return actor; @@ -549,7 +549,10 @@ // If object is targeted update the target information. if (psengine->GetCharManager()->GetTarget() == object) { - PawsManager::GetSingleton().Publish("sTargetName",object->GetName() ); + if (object->GetType() == GEM_ACTOR) + PawsManager::GetSingleton().Publish("sTargetName",((GEMClientActor*)object)->GetName(false) ); + else + PawsManager::GetSingleton().Publish("sTargetName",object->GetName() ); } } @@ -1511,10 +1514,10 @@ return chatBubbleID; } -const char* GEMClientActor::GetName() +const char* GEMClientActor::GetName(bool trueName) { static const char* strUnknown = "[Unknown]"; - if ((Flags() & psPersistActor::NAMEKNOWN) || (Flags() & psPersistActor::NPC)) + if (trueName || ((Flags() & psPersistActor::NAMEKNOWN) || (Flags() & psPersistActor::NPC)) || name == psengine->GetCelClient()->GetMainActor()->GetName()) return name; return strUnknown; } Modified: trunk/src/client/pscelclient.h =================================================================== --- trunk/src/client/pscelclient.h 2007-11-17 22:07:45 UTC (rev 281) +++ trunk/src/client/pscelclient.h 2007-11-18 00:21:32 UTC (rev 282) @@ -124,7 +124,7 @@ psClientDR* GetClientDR() { return clientdr; } const csPDelArray<GEMClientObject>& GetEntities () const { return entities; } bool IsMeshSubjectToAction(const char* sector,const char* mesh); - GEMClientActor * GetActorByName(const char * name) const; + GEMClientActor * GetActorByName(const char * name, bool trueName = true) const; virtual void HandleMessage(MsgEntry* me); @@ -328,7 +328,7 @@ csVector3 Rot(); iSector *GetSector(); - virtual const char* GetName(); + virtual const char* GetName(bool realName = true); const char* GetGuildName() { return guildName; } void SetGuildName(const char* guild) { guildName = guild; } Modified: trunk/src/server/introductionmanager.cpp =================================================================== --- trunk/src/server/introductionmanager.cpp 2007-11-17 22:07:45 UTC (rev 281) +++ trunk/src/server/introductionmanager.cpp 2007-11-18 00:21:32 UTC (rev 282) @@ -33,7 +33,7 @@ #include "util/eventmanager.h" #include "introductionmanager.h" -IntroductionManager::IntroductionManager() +IntroductionManager::IntroductionManager() : introMap(10000, 10000, 2000000) { Result r = db->Select("select * from introductions"); if (r.IsValid()) @@ -43,7 +43,7 @@ unsigned int charid = r[i].GetUInt32("charid"); unsigned int charintroid = r[i].GetUInt32("introcharid"); if (!introMap.Contains(charid)) - introMap.Put(charid, *(new csSet<unsigned int>)); + introMap.Put(charid, *(new csSet<unsigned int>(10000, 10000, 2000000))); introMap[charid]->Add(charintroid); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |