* Make CEngine keep a CSpriteManager.
[matthijs/ABM2.git] / ABM2 / main.cpp
index 1b136b120a345f89c062e9ea5326cc7e698a6128..e325647b86402a4ca002bcbea96218abba118c16 100755 (executable)
@@ -1,23 +1,41 @@
 // include the basic windows header files and the Direct3D header file\r
+#ifdef WIN32\r
 #include <windows.h>\r
 #include <windowsx.h>\r
+#endif\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
+#include "SchemeReader.h"\r
 \r
 // define the screen resolution and keyboard macros\r
 #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_NONE, NULL, 0, 0}\r
+};\r
+\r
+#ifdef WIN32\r
 HINSTANCE hInstance;\r
 HWND hWnd;\r
 \r
 // the WindowProc function prototype\r
 LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);\r
 \r
-\r
 class CPongTask : public ITask\r
 {\r
 public:\r
@@ -118,6 +136,7 @@ public:
        AUTO_SIZE;\r
 };\r
 \r
+#endif // WIN32\r
 void CApplication::Run(int argc, char *argv[])\r
 {\r
        //open logfiles\r
@@ -152,6 +171,9 @@ void CApplication::Run(int argc, char *argv[])
        globalTimer->priority=10;\r
        CKernel::GetSingleton().AddTask(CMMPointer<ITask>(globalTimer));\r
 \r
+       CSpriteManager *sm = new CSpriteManager(videoTask->getGraphics(), defaultSprites);\r
+       CKernel::GetSingleton().setSpriteManager(sm);\r
+\r
        Playground game;\r
        game.priority=100;\r
        CKernel::GetSingleton().AddTask(CMMPointer<ITask>(&game));\r
@@ -168,6 +190,7 @@ void CApplication::Run(int argc, char *argv[])
        delete CSettingsManager::GetSingletonPtr();\r
 }\r
 \r
+#ifdef WIN32\r
 \r
 // the entry point for any Windows program\r
 int WINAPI WinMain(HINSTANCE hInst,\r
@@ -215,7 +238,6 @@ int WINAPI WinMain(HINSTANCE hInst,
   return 0;\r
 }\r
 \r
-\r
 // this is the main message handler for the program\r
 LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)\r
 {\r
@@ -230,3 +252,17 @@ LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPara
 \r
     return DefWindowProc (hWnd, message, wParam, lParam);\r
 }\r
+#else // WIN32\r
+int main(int argc, char *argv[])\r
+{\r
+  new CApplication();\r
+  CApplication::GetSingleton().Run(argc,argv);\r
+  delete CApplication::GetSingletonPtr();\r
+\r
+  //clean up any remaining unreleased objects\r
+  IMMObject::CollectRemainingObjects(true);\r
+\r
+  return 0;\r
+}\r
+#endif //WIN32\r
+\r