From: <vo...@us...> - 2008-08-31 14:13:38
|
Revision: 813 http://opde.svn.sourceforge.net/opde/?rev=813&view=rev Author: volca Date: 2008-08-31 14:13:39 +0000 (Sun, 31 Aug 2008) Log Message: ----------- * introducing static_pointer_cast (as seen in boost::shared_ptr), getting rid of .as<>() * fixing a few warnings Modified Paths: -------------- trunk/src/base/SharedPtr.h trunk/src/main/DTypeScriptCompiler.cpp trunk/src/main/GameLoadState.cpp trunk/src/main/GamePlayState.cpp trunk/src/main/GameStateManager.cpp trunk/src/main/PLDefScriptCompiler.cpp trunk/src/main/Root.cpp trunk/src/services/game/GameService.cpp trunk/src/services/gui/GUIService.cpp trunk/src/services/inherit/InheritService.cpp trunk/src/services/input/InputService.cpp trunk/src/services/link/LinkService.cpp trunk/src/services/loop/LoopService.cpp trunk/src/services/object/ObjectService.cpp trunk/src/services/property/PropertyGroup.cpp trunk/src/services/render/RenderService.cpp trunk/src/services/worldrep/WRCell.cpp trunk/src/services/worldrep/WorldRepService.cpp Modified: trunk/src/base/SharedPtr.h =================================================================== --- trunk/src/base/SharedPtr.h 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/base/SharedPtr.h 2008-08-31 14:13:39 UTC (rev 813) @@ -55,8 +55,14 @@ } public: + /** Helper ctor for shared_ptr casting with static_pointer_cast<U>(). + * @warning Do not use directly */ + shared_ptr(T* ptr, unsigned int *refs) : mPtr(ptr), mReferences(refs) { + ++(*mReferences); + } + /// conversion ctor - template<class U> shared_ptr(shared_ptr<U> const & a) : mPtr(a.mPtr), mReferences(a.mReferences) { + template<class U> shared_ptr(shared_ptr<U>& a) : mPtr(a.mPtr), mReferences(a.mReferences) { if (mReferences) ++(*mReferences); } @@ -76,7 +82,7 @@ mReferences = new unsigned int(1); } }; - + ~shared_ptr() { release(); } @@ -108,19 +114,7 @@ return (mPtr == NULL); } - /// static cast - template<class U> shared_ptr<U> as() { - // of course, Dynamic cast would be safer, then again, slower - U* ptr = static_cast<U*>(mPtr); - - ++(*mReferences); - - shared_ptr<U> n = shared_ptr<U>(ptr, mReferences); - - return n; - } - - unsigned int getRefCount() { + unsigned int getRefCount() const { return (*mReferences); } @@ -132,21 +126,27 @@ } - private: - /** Helper ctor for shared_ptr casting with as<U>() - */ - shared_ptr(T* ptr, unsigned int *refs) : mPtr(ptr), mReferences(refs) { + unsigned int* getRefCountPtr(void) const { + return mReferences; } + }; template<class A, class B> inline bool operator==(shared_ptr<A> const& a, shared_ptr<B> const& b) { return a.ptr() == b.ptr(); - } + } - template<class A, class B> inline bool operator!=(shared_ptr<A> const& a, shared_ptr<B> const& b) { - return a.ptr() != b.ptr(); - } + template<class A, class B> inline bool operator!=(shared_ptr<A> const& a, shared_ptr<B> const& b) { + return a.ptr() != b.ptr(); + } + /// static cast of the shared_ptr + template<class U, class V> shared_ptr<U> static_pointer_cast(const shared_ptr<V>& src) { + U* ptr = static_cast<U*>(src.ptr()); + + return shared_ptr<U>(ptr, src.getRefCountPtr()); + } + } // namespace Opde #endif Modified: trunk/src/main/DTypeScriptCompiler.cpp =================================================================== --- trunk/src/main/DTypeScriptCompiler.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/main/DTypeScriptCompiler.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -116,7 +116,7 @@ mGroupName = ""; ServiceManager* svcmgr = ServiceManager::getSingletonPtr(); - mBinaryService = svcmgr->getService("BinaryService").as<BinaryService>(); + mBinaryService = static_pointer_cast<BinaryService>(svcmgr->getService("BinaryService")); mCurrentState.state = CS_UNKNOWN; } Modified: trunk/src/main/GameLoadState.cpp =================================================================== --- trunk/src/main/GameLoadState.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/main/GameLoadState.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -46,7 +46,8 @@ mRoot = Root::getSingletonPtr(); mOverlayMgr = OverlayManager::getSingletonPtr(); mServiceMgr = ServiceManager::getSingletonPtr(); - mConfigService = ServiceManager::getSingleton().getService("ConfigService").as<ConfigService>(); + + mConfigService = static_pointer_cast<ConfigService>(ServiceManager::getSingleton().getService("ConfigService")); mFontTest = false; @@ -101,7 +102,7 @@ mSceneMgr->addSpecialCaseRenderQueue(RENDER_QUEUE_OVERLAY); mSceneMgr->setSpecialCaseRenderQueueMode(SceneManager::SCRQM_INCLUDE); - RenderServicePtr renderSrv = ServiceManager::getSingleton().getService("RenderService").as<RenderService>(); + RenderServicePtr renderSrv = static_pointer_cast<RenderService>(ServiceManager::getSingleton().getService("RenderService")); mCamera = renderSrv->getDefaultCamera(); mViewport = renderSrv->getDefaultViewport(); @@ -159,9 +160,9 @@ mRoot->renderOneFrame(); - GameServicePtr gsvc = mServiceMgr->getService("GameService").as<GameService>(); + GameServicePtr gsvc = static_pointer_cast<GameService>(mServiceMgr->getService("GameService")); - std::string misFile = mConfigService->getParam("mission"); + std::string misFile = mConfigService->getParam("mission"); gsvc->load(misFile); Modified: trunk/src/main/GamePlayState.cpp =================================================================== --- trunk/src/main/GamePlayState.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/main/GamePlayState.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -41,7 +41,7 @@ template<> GamePlayState* Singleton<GamePlayState>::ms_Singleton = 0; - GamePlayState::GamePlayState() : mSceneMgr(NULL), mDebugOverlay(NULL), mToLoadScreen(true) { + GamePlayState::GamePlayState() : mSceneMgr(NULL), mToLoadScreen(true), mDebugOverlay(NULL) { /// Register as a command listener, so we can load different levels Opde::ConsoleBackend::getSingleton().registerCommandListener("load", dynamic_cast<ConsoleCommandListener*>(this)); Opde::ConsoleBackend::getSingleton().setCommandHint("load", "Loads a specified mission file"); @@ -56,10 +56,8 @@ mSceneDisplay = false; // Try to remap the parameters with those listed in the configuration - mConfigService = ServiceManager::getSingleton().getService("ConfigService").as<ConfigService>(); - GameStateManager* gsm = GameStateManager::getSingletonPtr(); + mConfigService = static_pointer_cast<ConfigService>(ServiceManager::getSingleton().getService("ConfigService")); - if (mConfigService->hasParam("move_speed")) mMoveSpeed = mConfigService->getParam("move_speed").toFloat(); @@ -106,8 +104,7 @@ void GamePlayState::start() { LOG_INFO("GamePlayState: Starting"); - PropertyGroup* posPG = ServiceManager::getSingleton().getService("PropertyService"). - as<PropertyService>()->getPropertyGroup("Position"); + PropertyGroup* posPG = static_pointer_cast<PropertyService>(ServiceManager::getSingleton().getService("PropertyService"))->getPropertyGroup("Position"); if (posPG == NULL) OPDE_EXCEPT("Could not get Position property group. Not defined. Fatal", "GamePlayState::start"); @@ -126,7 +123,7 @@ // std::string tmp = PropertyGroup->get(StartingPointObjID, "SymName").toString(); mSceneMgr = mRoot->getSceneManager( "DarkSceneManager" ); - RenderServicePtr renderSrv = ServiceManager::getSingleton().getService("RenderService").as<RenderService>(); + RenderServicePtr renderSrv = static_pointer_cast<RenderService>(ServiceManager::getSingleton().getService("RenderService")); mCamera = renderSrv->getDefaultCamera(); mViewport = renderSrv->getDefaultViewport(); @@ -459,7 +456,7 @@ } void GamePlayState::bootstrapFinished() { - mLinkService = ServiceManager::getSingleton().getService("LinkService").as<LinkService>(); + mLinkService = static_pointer_cast<LinkService>(ServiceManager::getSingleton().getService("LinkService")); Relation::ListenerPtr metaPropCallback = new ClassCallback<LinkChangeMsg, GamePlayState>(this, &GamePlayState::onLinkPlayerFactoryMsg); Modified: trunk/src/main/GameStateManager.cpp =================================================================== --- trunk/src/main/GameStateManager.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/main/GameStateManager.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -176,13 +176,13 @@ // Register the worldrep service factory registerServiceFactories(); - mConfigService = ServiceManager::getSingleton().getService("ConfigService").as<ConfigService>(); + mConfigService = static_pointer_cast<ConfigService>(ServiceManager::getSingleton().getService("ConfigService")); mConfigService->loadParams("opde.cfg"); RenderServicePtr rends; - rends = ServiceManager::getSingleton().getService("RenderService").as<RenderService>(); + rends = static_pointer_cast<RenderService>(ServiceManager::getSingleton().getService("RenderService")); // Setup resources. setupResources(); @@ -312,7 +312,7 @@ } void GameStateManager::setupInputSystem() { - mInputService = ServiceManager::getSingleton().getService("InputService").as<InputService>(); + mInputService = static_pointer_cast<InputService>(ServiceManager::getSingleton().getService("InputService")); mInputService->createBindContext("game"); mInputService->setBindContext("game"); Modified: trunk/src/main/PLDefScriptCompiler.cpp =================================================================== --- trunk/src/main/PLDefScriptCompiler.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/main/PLDefScriptCompiler.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -97,9 +97,9 @@ // default to global definition group ServiceManager* svcmgr = ServiceManager::getSingletonPtr(); - mLinkService = svcmgr->getService("LinkService").as<LinkService>(); - mBinaryService = svcmgr->getService("BinaryService").as<BinaryService>(); - mPropertyService = svcmgr->getService("PropertyService").as<PropertyService>(); + mLinkService = static_pointer_cast<LinkService>(svcmgr->getService("LinkService")); + mBinaryService = static_pointer_cast<BinaryService>(svcmgr->getService("BinaryService")); + mPropertyService = static_pointer_cast<PropertyService>(svcmgr->getService("PropertyService")); mCurrentState.state = CS_UNKNOWN; } Modified: trunk/src/main/Root.cpp =================================================================== --- trunk/src/main/Root.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/main/Root.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -57,9 +57,9 @@ mServiceMgr(NULL), mOgreRoot(NULL), mOgreLogManager(NULL), + mConsoleBackend(NULL), mDTypeScriptCompiler(NULL), mPLDefScriptCompiler(NULL), - mConsoleBackend(NULL), mServiceMask(serviceMask), mDTypeScriptLdr(NULL), mPLDefScriptLdr(NULL) { @@ -153,7 +153,7 @@ // ------------------------------------------------------- void Root::loadConfigFile(const std::string& fileName) { - ConfigServicePtr cfp = mServiceMgr->getService("ConfigService").as<ConfigService>(); + ConfigServicePtr cfp = static_pointer_cast<ConfigService>(mServiceMgr->getService("ConfigService")); cfp->loadParams(fileName); } @@ -236,7 +236,7 @@ // Loop modes are only setup if not masked by global service mask if (mServiceMask & SERVICE_ENGINE) { // Loop modes are hardcoded - LoopServicePtr ls = ServiceManager::getSingleton().getService("LoopService").as<LoopService>(); + LoopServicePtr ls = static_pointer_cast<LoopService>(ServiceManager::getSingleton().getService("LoopService")); // Create all the required loop services LoopModeDefinition def; Modified: trunk/src/services/game/GameService.cpp =================================================================== --- trunk/src/services/game/GameService.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/services/game/GameService.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -32,7 +32,7 @@ /*-------------------- GameService -------------------*/ /*----------------------------------------------------*/ GameService::GameService(ServiceManager *manager, const std::string& name) : Service(manager, name) { - mDbService = ServiceManager::getSingleton().getService("DatabaseService").as<DatabaseService>(); + mDbService = static_pointer_cast<DatabaseService>(ServiceManager::getSingleton().getService("DatabaseService")); } //------------------------------------------------------ Modified: trunk/src/services/gui/GUIService.cpp =================================================================== --- trunk/src/services/gui/GUIService.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/services/gui/GUIService.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -185,7 +185,7 @@ // Nothing to do, we have to wait for RenderService to settle in init... Better do everything in bootstrapFinished thus // One thing happens here though - loading of the mapping file based on a config file value - ConfigServicePtr cfp = ServiceManager::getSingleton().getService("ConfigService").as<ConfigService>(); + ConfigServicePtr cfp = static_pointer_cast<ConfigService>(ServiceManager::getSingleton().getService("ConfigService")); // if we have a config value (and the specified file is loadable), load the mapping file DVariant val; @@ -212,8 +212,8 @@ // ----------------------------------- void GUIService::bootstrapFinished() { - mInputSrv = ServiceManager::getSingleton().getService("InputService").as<InputService>(); - mRenderSrv = ServiceManager::getSingleton().getService("RenderService").as<RenderService>(); + mInputSrv = static_pointer_cast<InputService>(ServiceManager::getSingleton().getService("InputService")); + mRenderSrv = static_pointer_cast<RenderService>(ServiceManager::getSingleton().getService("RenderService")); mRoot = new QuickGUI::Root(); Modified: trunk/src/services/inherit/InheritService.cpp =================================================================== --- trunk/src/services/inherit/InheritService.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/services/inherit/InheritService.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -126,7 +126,7 @@ bool InheritService::init() { // Link Service should have created us automatically through service masks. // So we can register as a link service listener - mLinkService = ServiceManager::getSingleton().getService("LinkService").as<LinkService>(); + mLinkService = static_pointer_cast<LinkService>(ServiceManager::getSingleton().getService("LinkService")); if (mLinkService.isNull()) { LOG_FATAL("InheritService::init: LinkService does not exist?"); Modified: trunk/src/services/input/InputService.cpp =================================================================== --- trunk/src/services/input/InputService.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/services/input/InputService.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -300,9 +300,9 @@ size_t windowHnd = 0; std::ostringstream windowHndStr; - mConfigService = ServiceManager::getSingleton().getService("ConfigService").as<ConfigService>(); - - mRenderService = ServiceManager::getSingleton().getService("RenderService").as<RenderService>(); + mConfigService = static_pointer_cast<ConfigService>(ServiceManager::getSingleton().getService("ConfigService")); + mRenderService = static_pointer_cast<RenderService>(ServiceManager::getSingleton().getService("RenderService")); + mRenderWindow = mRenderService->getRenderWindow(); // Get window handle @@ -368,7 +368,7 @@ // Last step: Get the loop service and register as a listener - mLoopService = ServiceManager::getSingleton().getService("LoopService").as<LoopService>(); + mLoopService = static_pointer_cast<LoopService>(ServiceManager::getSingleton().getService("LoopService")); mLoopService->addLoopClient(this); return true; Modified: trunk/src/services/link/LinkService.cpp =================================================================== --- trunk/src/services/link/LinkService.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/services/link/LinkService.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -80,7 +80,7 @@ // Ensure link listeners are created mServiceManager->createByMask(SERVICE_LINK_LISTENER); - mDatabaseService = ServiceManager::getSingleton().getService("DatabaseService").as<DatabaseService>(); + mDatabaseService = static_pointer_cast<DatabaseService>(ServiceManager::getSingleton().getService("DatabaseService")); } //------------------------------------------------------ @@ -92,7 +92,7 @@ The Relations chunk should be present, and the same for all File Groups As we do not know if something was already initialised or not, we just request mapping and see if it goes or not */ - BinaryServicePtr bs = ServiceManager::getSingleton().getService("BinaryService").as<BinaryService>(); + // BinaryServicePtr bs = static_pointer_cast<DatabaseService>(ServiceManager::getSingleton().getService("BinaryService")); FilePtr rels = db->getFile("Relations"); Modified: trunk/src/services/loop/LoopService.cpp =================================================================== --- trunk/src/services/loop/LoopService.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/services/loop/LoopService.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -233,8 +233,7 @@ //------------------------------------------------------ void LoopService::run() { - float deltaTime = 0.0; - + if (mNewModeRequested) { // See if there is a loop mode pending... mNewModeRequested = false; setLoopMode(mNewLoopMode); Modified: trunk/src/services/object/ObjectService.cpp =================================================================== --- trunk/src/services/object/ObjectService.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/services/object/ObjectService.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -218,7 +218,7 @@ //------------------------------------------------------ void ObjectService::createBuiltinResources() { - mPropertyService = ServiceManager::getSingleton().getService("PropertyService").as<PropertyService>(); + mPropertyService = static_pointer_cast<PropertyService>(ServiceManager::getSingleton().getService("PropertyService")); // DonorType property (single integer property): // mPropertyService->createPropertyGroup(); @@ -233,12 +233,12 @@ // Register as a database listener mDbCallback = new ClassCallback<DatabaseChangeMsg, ObjectService>(this, &ObjectService::onDBChange); - mDatabaseService = ServiceManager::getSingleton().getService("DatabaseService").as<DatabaseService>(); + mDatabaseService = static_pointer_cast<DatabaseService>(ServiceManager::getSingleton().getService("DatabaseService")); mDatabaseService->registerListener(mDbCallback, DBP_OBJECT); - mInheritService = ServiceManager::getSingleton().getService("InheritService").as<InheritService>(); - mLinkService = ServiceManager::getSingleton().getService("LinkService").as<LinkService>(); - mPropertyService = ServiceManager::getSingleton().getService("PropertyService").as<PropertyService>(); + mInheritService = static_pointer_cast<InheritService>(ServiceManager::getSingleton().getService("InheritService")); + mLinkService = static_pointer_cast<LinkService>(ServiceManager::getSingleton().getService("LinkService")); + mPropertyService = static_pointer_cast<PropertyService>(ServiceManager::getSingleton().getService("PropertyService")); // For SceneNodes mPropPosition = mPropertyService->getPropertyGroup("Position"); @@ -323,6 +323,9 @@ size_t bsize = f->size() - 2 * sizeof(int32_t); unsigned char* bitmap = new unsigned char[bsize + 1]; + + for (size_t idx = 0; idx <= bsize; idx++) // fill the whole buf with zeros, even the padding at the end + bitmap[idx] = 0; f->read(bitmap, bsize); @@ -571,7 +574,7 @@ //------------------------------------------------------ void ObjectService::resetMinMaxID() { - ConfigServicePtr cfp = ServiceManager::getSingleton().getService("ConfigService").as<ConfigService>(); + ConfigServicePtr cfp = static_pointer_cast<ConfigService>(ServiceManager::getSingleton().getService("ConfigService")); DVariant val; // Config Values: obj_min, obj_max Modified: trunk/src/services/property/PropertyGroup.cpp =================================================================== --- trunk/src/services/property/PropertyGroup.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/services/property/PropertyGroup.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -41,7 +41,7 @@ mBuiltin(false) { // Find the inheritor by the name, and assign too - InheritServicePtr inhs = ServiceManager::getSingleton().getService("InheritService").as<InheritService>(); + InheritServicePtr inhs = static_pointer_cast<InheritService>(ServiceManager::getSingleton().getService("InheritService")); mInheritor = inhs->createInheritor(inheritorName); // And as a final step, register as inheritor listener Modified: trunk/src/services/render/RenderService.cpp =================================================================== --- trunk/src/services/render/RenderService.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/services/render/RenderService.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -65,12 +65,12 @@ /*--------------------- RenderService --------------------*/ /*--------------------------------------------------------*/ RenderService::RenderService(ServiceManager *manager, const std::string& name) : Service(manager, name), + mRoot(NULL), mSceneMgr(NULL), - mRoot(NULL), mRenderWindow(NULL), mDarkSMFactory(NULL), + mDefaultCamera(NULL), mLoopService(NULL), - mDefaultCamera(NULL), mEditorMode(false) { // TODO: This is just plain wrong. This service should be the maintainer of the used scene manager, if any other service needs the direct handle, etc. // The fact is this service is probably game only, and should be the initialiser of graphics as the whole. This will be the @@ -167,7 +167,7 @@ mRenderWindow->addViewport( mDefaultCamera ); // Last step: Get the loop service and register as a listener - mLoopService = ServiceManager::getSingleton().getService("LoopService").as<LoopService>(); + mLoopService = static_pointer_cast<LoopService>(ServiceManager::getSingleton().getService("LoopService")); mLoopService->addLoopClient(this); // prepare the default models and textures @@ -256,7 +256,7 @@ // contact the config. service, and look for the inheritance link name // TODO: ConfigurationService::getKey("Core","InheritanceLinkName").toString(); - mPropertyService = ServiceManager::getSingleton().getService("PropertyService").as<PropertyService>(); + mPropertyService = static_pointer_cast<PropertyService>(ServiceManager::getSingleton().getService("PropertyService")); // TODO: hardcoded property name, but that's hopefully not a problem after all @@ -333,7 +333,7 @@ // to fix this, we should create a handler for that property // ===== OBJECT SERVICE LISTENER ===== - mObjectService = ServiceManager::getSingleton().getService("ObjectService").as<ObjectService>(); + mObjectService = static_pointer_cast<ObjectService>(ServiceManager::getSingleton().getService("ObjectService")); // Listener to object messages ObjectService::ListenerPtr objlist = Modified: trunk/src/services/worldrep/WRCell.cpp =================================================================== --- trunk/src/services/worldrep/WRCell.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/services/worldrep/WRCell.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -173,7 +173,7 @@ for (lmap = 0; lmap < lmcount; lmap++) { // 11. Read one lightmap lmaps[i][lmap] = new uint8_t[lmsize]; - chunk->read(&(lmaps[i][lmap][0]), lmsize); + chunk->read(lmaps[i][lmap], lmsize); } } Modified: trunk/src/services/worldrep/WorldRepService.cpp =================================================================== --- trunk/src/services/worldrep/WorldRepService.cpp 2008-08-31 14:03:34 UTC (rev 812) +++ trunk/src/services/worldrep/WorldRepService.cpp 2008-08-31 14:13:39 UTC (rev 813) @@ -53,7 +53,7 @@ } bool WorldRepService::init() { - mRenderService = ServiceManager::getSingleton().getService("RenderService").as<RenderService>(); + mRenderService = static_pointer_cast<RenderService>(ServiceManager::getSingleton().getService("RenderService")); if (mRenderService.isNull()) { LOG_ERROR("RenderService instance was not found. Fatal"); @@ -95,7 +95,7 @@ LOG_DEBUG("WorldRepService: Registering as a listener to the database messages"); mDbCallback = new ClassCallback<DatabaseChangeMsg, WorldRepService>(this, &WorldRepService::onDBChange); - mDatabaseService = ServiceManager::getSingleton().getService("DatabaseService").as<DatabaseService>(); + mDatabaseService = static_pointer_cast<DatabaseService>(ServiceManager::getSingleton().getService("DatabaseService")); mDatabaseService->registerListener(mDbCallback, DBP_WORLDREP); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |