#include <windowsx.h>\r
#endif\r
\r
-//#ifndef WIN32\r
- /* HACKS */\r
-#define max(a,b) (a>b?a:b)\r
-#define min(a,b) (a<b?a:b)\r
-#define GetTickCount() 0\r
-//#endif // !WIN32\r
-\r
#include "Engine/engine.h"\r
#include "Engine/game.h"\r
+#include "Engine/SpriteManager.h"\r
#include "Playground.h"\r
#include "SchemeReader.h"\r
\r
#define SCREEN_WIDTH 640\r
#define SCREEN_HEIGHT 480\r
\r
+SpriteData defaultSprites[] = {\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
#ifdef WIN32\r
HINSTANCE hInstance;\r
HWND hWnd;\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
- Playground game;\r
+ CSpriteManager *sm = new CSpriteManager(videoTask->getGraphics(), defaultSprites);\r
+ kernel->setSpriteManager(sm);\r
+\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