bool EntityManager::Initialize(iObjectRegistry* object_reg, ClientConnectionSet* clients, UserManager* umanager, GEMSupervisor* gemsupervisor, psServerDR* psserverdr, CacheManager* cachemanager) { cacheManager = cachemanager; csRef<iEngine> engine2 = csQueryRegistry<iEngine> (psserver->GetObjectReg()); engine = engine2; // get out of csRef; usermanager = umanager; Subscribe(&EntityManager::HandleUserAction, MSGTYPE_USERACTION, REQUIRE_READY_CLIENT | REQUIRE_ALIVE); Subscribe(&EntityManager::HandleWorld, MSGTYPE_PERSIST_WORLD_REQUEST, REQUIRE_ANY_CLIENT ); Subscribe(&EntityManager::HandleActor, MSGTYPE_PERSIST_ACTOR_REQUEST, REQUIRE_ANY_CLIENT ); Subscribe(&EntityManager::HandleAllRequest, MSGTYPE_PERSIST_ALL, REQUIRE_ANY_CLIENT); Subscribe(&EntityManager::SendMovementInfo, MSGTYPE_REQUESTMOVEMENTS, REQUIRE_ANY_CLIENT); EntityManager::clients = clients; gem = gemsupervisor; serverdr = psserverdr; if (!serverdr->Initialize()) { delete serverdr; serverdr = NULL; return false; } LoadFamiliarAffinityAttributes(); LoadFamiliarTypes(); CreateMovementInfoMsg(); gameWorld = new psWorld(); gameWorld->Initialize( object_reg ); return true; }
bool EntityManager::Initialize(iObjectRegistry* object_reg, ClientConnectionSet* clients, UserManager* umanager) { csRef<iEngine> engine2 = csQueryRegistry<iEngine> (psserver->GetObjectReg()); engine = engine2; // get out of csRef; usermanager = umanager; psserver->GetEventManager()->Subscribe(this, new NetMessageCallback<EntityManager>(this,&EntityManager::HandleUserAction), MSGTYPE_USERACTION,REQUIRE_READY_CLIENT|REQUIRE_ALIVE); psserver->GetEventManager()->Subscribe(this, new NetMessageCallback<EntityManager>(this,&EntityManager::HandleWorld) , MSGTYPE_PERSIST_WORLD_REQUEST,REQUIRE_ANY_CLIENT ); psserver->GetEventManager()->Subscribe(this, new NetMessageCallback<EntityManager>(this,&EntityManager::HandleActor) , MSGTYPE_PERSIST_ACTOR_REQUEST,REQUIRE_ANY_CLIENT ); psserver->GetEventManager()->Subscribe(this, new NetMessageCallback<EntityManager>(this,&EntityManager::HandleAllRequest), MSGTYPE_PERSIST_ALL,REQUIRE_ANY_CLIENT); psserver->GetEventManager()->Subscribe(this, new NetMessageCallback<EntityManager>(this,&EntityManager::SendMovementInfo), MSGTYPE_REQUESTMOVEMENTS,REQUIRE_ANY_CLIENT); EntityManager::clients = clients; gem = new GEMSupervisor(object_reg,psserver->GetDatabase()); serverdr = new psServerDR; if (!serverdr->Initialize()) { delete serverdr; serverdr = NULL; return false; } LoadFamiliarAffinityAttributes(); LoadFamiliarTypes(); CreateMovementInfoMsg(); gameWorld = new psWorld(); gameWorld->Initialize( object_reg ); return true; }