* Use some more constants instead of literals.
[matthijs/ABM2.git] / ABM2 / main.cpp
index 5e1a52ac19125ccf5f86576fbdae4a52557badd5..66f44f96f44e538283b34931bdd5b7e29fc0bffd 100755 (executable)
 #define SCREEN_WIDTH  640\r
 #define SCREEN_HEIGHT 480\r
 \r
-enum SpriteID {\r
-       SPR_NONE = 0,\r
-       SPR_FIELD,\r
-       SPR_SOLID,\r
-       SPR_BRICK,\r
-       SPR_BLANK,\r
-       SPR_PLAYER,\r
-};\r
-\r
 SpriteData defaultSprites[] = {\r
-       {SPR_FIELD, "FIELD0.png", 640, 480},\r
-       {SPR_BLANK, "FIELD0.png", 640, 480},\r
+       {SPR_FIELD, "Data/FIELD0.png", SCREEN_WIDTH, SCREEN_HEIGHT},\r
+       {SPR_TILE, "Data/Tiles0.png", FIELD_UNIT_WIDTH, FIELD_UNIT_HEIGHT},\r
        {SPR_NONE, NULL, 0, 0}\r
 };\r
 \r
@@ -144,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
@@ -155,38 +146,39 @@ 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
        CProfileLogHandler profileLogHandler;\r
        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