X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=ABM2%2Fmain.cpp;h=66f44f96f44e538283b34931bdd5b7e29fc0bffd;hb=a49c1b9c48808463eded779d895f5112ad84583a;hp=48dcd73f664a1692542a03fd47e7b3546c122ccc;hpb=c0066ee748d25faed654973d09fab4d90ed5cc51;p=matthijs%2FABM2.git diff --git a/ABM2/main.cpp b/ABM2/main.cpp index 48dcd73..66f44f9 100755 --- a/ABM2/main.cpp +++ b/ABM2/main.cpp @@ -6,6 +6,7 @@ #include "Engine/engine.h" #include "Engine/game.h" +#include "Engine/SpriteManager.h" #include "Playground.h" #include "SchemeReader.h" @@ -13,6 +14,12 @@ #define SCREEN_WIDTH 640 #define SCREEN_HEIGHT 480 +SpriteData defaultSprites[] = { + {SPR_FIELD, "Data/FIELD0.png", SCREEN_WIDTH, SCREEN_HEIGHT}, + {SPR_TILE, "Data/Tiles0.png", FIELD_UNIT_WIDTH, FIELD_UNIT_HEIGHT}, + {SPR_NONE, NULL, 0, 0} +}; + #ifdef WIN32 HINSTANCE hInstance; HWND hWnd; @@ -128,7 +135,7 @@ void CApplication::Run(int argc, char *argv[]) //create a couple of singletons new CSettingsManager(); - new CKernel(); + CKernel *kernel = new CKernel(); //parse the 'settings.eng' file CSettingsManager::GetSingleton().ParseFile("settings.esf"); @@ -139,35 +146,39 @@ void CApplication::Run(int argc, char *argv[]) for(int i=1;ipriority=10000; - CKernel::GetSingleton().AddTask(CMMPointer(videoTask)); + kernel->AddTask(CMMPointer(videoTask)); - inputTask = new CInputTask(); + inputTask = new CInputTask(kernel); inputTask->priority=20; - CKernel::GetSingleton().AddTask(CMMPointer(inputTask)); + kernel->AddTask(CMMPointer(inputTask)); - soundTask = new CSoundTask(); + soundTask = new CSoundTask(kernel); soundTask->priority=50; - CKernel::GetSingleton().AddTask(CMMPointer(soundTask)); + kernel->AddTask(CMMPointer(soundTask)); - globalTimer=new CGlobalTimer(); + globalTimer=new CGlobalTimer(kernel); globalTimer->priority=10; - CKernel::GetSingleton().AddTask(CMMPointer(globalTimer)); + kernel->AddTask(CMMPointer(globalTimer)); - Playground game; + CSpriteManager *sm = new CSpriteManager(videoTask->getGraphics(), defaultSprites); + kernel->setSpriteManager(sm); + + Playground game(kernel); game.priority=100; - CKernel::GetSingleton().AddTask(CMMPointer(&game)); + kernel->AddTask(CMMPointer(&game)); + //set up the profiler with an output handler CProfileLogHandler profileLogHandler; CProfileSample::outputHandler=&profileLogHandler; //main game loop - CKernel::GetSingleton().Execute(); + kernel->Execute(); //clean up singletons - delete CKernel::GetSingletonPtr(); + delete kernel; delete CSettingsManager::GetSingletonPtr(); }