From: <Ven...@us...> - 2009-01-10 07:30:54
|
Revision: 2850 http://planeshift.svn.sourceforge.net/planeshift/?rev=2850&view=rev Author: Vengeance2001 Date: 2009-01-10 07:30:48 +0000 (Sat, 10 Jan 2009) Log Message: ----------- Refactored two more managers to use functor messaging. Modified Paths: -------------- trunk/src/server/entitymanager.cpp trunk/src/server/psserverdr.cpp trunk/src/server/psserverdr.h trunk/src/server/questionmanager.cpp trunk/src/server/questionmanager.h trunk/src/server/questmanager.cpp Modified: trunk/src/server/entitymanager.cpp =================================================================== --- trunk/src/server/entitymanager.cpp 2009-01-10 07:15:06 UTC (rev 2849) +++ trunk/src/server/entitymanager.cpp 2009-01-10 07:30:48 UTC (rev 2850) @@ -146,7 +146,7 @@ gem = new GEMSupervisor(object_reg,psserver->GetDatabase()); serverdr = new psServerDR; - if (!serverdr->Initialize(this, clients)) + if (!serverdr->Initialize()) { delete serverdr; serverdr = NULL; Modified: trunk/src/server/psserverdr.cpp =================================================================== --- trunk/src/server/psserverdr.cpp 2009-01-10 07:15:06 UTC (rev 2849) +++ trunk/src/server/psserverdr.cpp 2009-01-10 07:30:48 UTC (rev 2850) @@ -60,10 +60,10 @@ #include "psproxlist.h" #include "globals.h" + + psServerDR::psServerDR() { - entitymanager = NULL; - clients = NULL; paladin = NULL; } @@ -71,16 +71,13 @@ { if (psserver->GetEventManager()) psserver->GetEventManager()->Unsubscribe(this,MSGTYPE_DEAD_RECKONING); - //delete paladin; + + delete paladin; } -bool psServerDR::Initialize(EntityManager* entitymanager, - ClientConnectionSet* clients) +bool psServerDR::Initialize() { - psServerDR::entitymanager = entitymanager; - psServerDR::clients = clients; - - if (!psserver->GetEventManager()->Subscribe(this,MSGTYPE_DEAD_RECKONING,REQUIRE_READY_CLIENT)) + if (!psserver->GetEventManager()->Subscribe(this,new NetMessageCallback<psServerDR>(this,&psServerDR::HandleDeadReckoning),MSGTYPE_DEAD_RECKONING,REQUIRE_READY_CLIENT)) return false; calc_damage = psserver->GetMathScriptEngine()->FindScript("Calculate Fall Damage"); @@ -90,13 +87,12 @@ return false; } - // Output var bindings here var_fall_height = calc_damage->GetVar("FallHeight"); var_fall_dmg = calc_damage->GetVar("Damage"); paladin = new PaladinJr; - paladin->Initialize(entitymanager); + paladin->Initialize(psserver->entitymanager); return true; } @@ -149,7 +145,7 @@ actor->MulticastDRUpdate(); } -void psServerDR::HandleMessage(MsgEntry* me,Client *client) +void psServerDR::HandleDeadReckoning(MsgEntry* me,Client *client) { psDRMessage drmsg(me,CacheManager::GetSingleton().GetMsgStrings(),EntityManager::GetSingleton().GetEngine() ); if (!drmsg.valid) Modified: trunk/src/server/psserverdr.h =================================================================== --- trunk/src/server/psserverdr.h 2009-01-10 07:15:06 UTC (rev 2849) +++ trunk/src/server/psserverdr.h 2009-01-10 07:30:48 UTC (rev 2850) @@ -32,14 +32,11 @@ #include "msgmanager.h" class psCelClient; -class ClientConnectionSet; class MsgEntry; class gemActor; class MathScript; class MathScriptVar; class PaladinJr; -class EntityManager; -class psServerDR; class psServerDR : public MessageManager { @@ -47,15 +44,16 @@ psServerDR(); virtual ~psServerDR(); - bool Initialize(EntityManager* celbase, - ClientConnectionSet* clients); + bool Initialize(); void SendPersist(); - virtual void HandleMessage(MsgEntry* me,Client *client); + virtual void HandleMessage(MsgEntry* me,Client *client) {} protected: + void HandleDeadReckoning(MsgEntry* me,Client *client); + /// If the entity was falling and stops falling, this is called. void HandleFallDamage(gemActor *actor,int clientnum, const csVector3& pos, iSector* sector); void ResetPos(gemActor* actor); @@ -65,8 +63,8 @@ MathScriptVar *var_fall_height; MathScriptVar *var_fall_dmg; - EntityManager *entitymanager; - ClientConnectionSet *clients; +// EntityManager *entitymanager; +// ClientConnectionSet *clients; PaladinJr *paladin; }; Modified: trunk/src/server/questionmanager.cpp =================================================================== --- trunk/src/server/questionmanager.cpp 2009-01-10 07:15:06 UTC (rev 2849) +++ trunk/src/server/questionmanager.cpp 2009-01-10 07:30:48 UTC (rev 2850) @@ -92,12 +92,12 @@ } /************************************************************** -* class QuestionManager +* class QuestionManager ***************************************************************/ QuestionManager::QuestionManager() { - psserver->GetEventManager()->Subscribe(this,MSGTYPE_QUESTIONRESPONSE,REQUIRE_READY_CLIENT); + psserver->GetEventManager()->Subscribe(this,new NetMessageCallback<QuestionManager>(this,&QuestionManager::HandleQuestionResponse),MSGTYPE_QUESTIONRESPONSE,REQUIRE_READY_CLIENT); } QuestionManager::~QuestionManager() @@ -105,7 +105,7 @@ psserver->GetEventManager()->Unsubscribe(this,MSGTYPE_QUESTIONRESPONSE); } -void QuestionManager::HandleMessage(MsgEntry *me,Client *client) +void QuestionManager::HandleQuestionResponse(MsgEntry *me,Client *client) { psQuestionResponseMsg msg(me); if (!msg.valid) Modified: trunk/src/server/questionmanager.h =================================================================== --- trunk/src/server/questionmanager.h 2009-01-10 07:15:06 UTC (rev 2849) +++ trunk/src/server/questionmanager.h 2009-01-10 07:30:48 UTC (rev 2850) @@ -116,7 +116,7 @@ QuestionManager(); virtual ~QuestionManager(); - virtual void HandleMessage(MsgEntry *pMsg,Client *client); + virtual void HandleMessage(MsgEntry *pMsg,Client *client) { } /** Sends a question to a client */ void SendQuestion(PendingQuestion *question); @@ -125,6 +125,8 @@ void CancelQuestion(PendingQuestion *question); protected: + + void HandleQuestionResponse(MsgEntry *pMsg,Client *client); BinaryRBTree<PendingQuestion> questions; /** questions indexed by IDs */ }; Modified: trunk/src/server/questmanager.cpp =================================================================== --- trunk/src/server/questmanager.cpp 2009-01-10 07:15:06 UTC (rev 2849) +++ trunk/src/server/questmanager.cpp 2009-01-10 07:30:48 UTC (rev 2850) @@ -1044,10 +1044,6 @@ } - - - - void QuestManager::HandleMessage(MsgEntry *me,Client *who) { if (me->GetType() == MSGTYPE_QUESTINFO) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |