#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_PLAYER, "Data/POWBOMB.png", FIELD_UNIT_WIDTH, FIELD_UNIT_HEIGHT},\r
{SPR_NONE, NULL, 0, 0}\r
};\r
\r
\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
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;\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