* Make every ITask know about the Kernel in which the run.
[matthijs/ABM2.git] / ABM2 / main.cpp
index 210382e119bf86f02aeceb9219f0a31240361bbb..ed5e35f43ecc30fced089788e1c313be1ed07975 100755 (executable)
@@ -135,7 +135,7 @@ void CApplication::Run(int argc, char *argv[])
 \r
        //create a couple of singletons\r
        new CSettingsManager();\r
-       new CKernel();\r
+       CKernel *kernel = new CKernel();\r
 \r
        //parse the 'settings.eng' file\r
        CSettingsManager::GetSingleton().ParseFile("settings.esf");\r
@@ -146,28 +146,28 @@ void CApplication::Run(int argc, char *argv[])
                for(int i=1;i<argc;i++)\r
                        CSettingsManager::GetSingleton().ParseSetting(std::string(argv[i]));\r
        \r
-       videoTask = new CVideoUpdate();\r
+       videoTask = new CVideoUpdate(kernel);\r
        videoTask->priority=10000;\r
-       CKernel::GetSingleton().AddTask(CMMPointer<ITask>(videoTask));\r
+       kernel->AddTask(CMMPointer<ITask>(videoTask));\r
 \r
-       inputTask = new CInputTask();\r
+       inputTask = new CInputTask(kernel);\r
        inputTask->priority=20;\r
-       CKernel::GetSingleton().AddTask(CMMPointer<ITask>(inputTask));\r
+       kernel->AddTask(CMMPointer<ITask>(inputTask));\r
 \r
-       soundTask = new CSoundTask();\r
+       soundTask = new CSoundTask(kernel);\r
        soundTask->priority=50;\r
-       CKernel::GetSingleton().AddTask(CMMPointer<ITask>(soundTask));\r
+       kernel->AddTask(CMMPointer<ITask>(soundTask));\r
 \r
-       globalTimer=new CGlobalTimer();\r
+       globalTimer=new CGlobalTimer(kernel);\r
        globalTimer->priority=10;\r
-       CKernel::GetSingleton().AddTask(CMMPointer<ITask>(globalTimer));\r
+       kernel->AddTask(CMMPointer<ITask>(globalTimer));\r
 \r
        CSpriteManager *sm = new CSpriteManager(videoTask->getGraphics(), defaultSprites);\r
-       CKernel::GetSingleton().setSpriteManager(sm);\r
+       kernel->setSpriteManager(sm);\r
 \r
-       Playground game(&CKernel::GetSingleton());\r
+       Playground game(kernel);\r
        game.priority=100;\r
-       CKernel::GetSingleton().AddTask(CMMPointer<ITask>(&game));\r
+       kernel->AddTask(CMMPointer<ITask>(&game));\r
 \r
 \r
        //set up the profiler with an output handler\r
@@ -175,10 +175,10 @@ void CApplication::Run(int argc, char *argv[])
        CProfileSample::outputHandler=&profileLogHandler;\r
 \r
        //main game loop\r
-       CKernel::GetSingleton().Execute();\r
+       kernel->Execute();\r
        \r
        //clean up singletons\r
-       delete CKernel::GetSingletonPtr();\r
+       delete kernel;\r
        delete CSettingsManager::GetSingletonPtr();\r
 }\r
 \r