]> git.jsancho.org Git - dungeon-master.git/blobdiff - src/main.cpp
Trying gui
[dungeon-master.git] / src / main.cpp
index 6c2e2a756dc856903df78a4bf80b0e0e3cb6decc..0384ba5d957ffb9cb2e78e0c426e97b3ce05c31d 100644 (file)
@@ -4,10 +4,30 @@
 using namespace irr;
 using namespace core;
 using namespace video;
+using namespace gui;
+
+SCM register_generator(SCM name, SCM proc)
+{
+  printf ("Register: %s\n", scm_to_locale_string(name));
+  scm_call_1(proc, scm_from_int(-1));
+  return SCM_UNSPECIFIED;
+}
+
+void init_dungeon_master_module(void *unused)
+{
+  scm_c_define_gsubr("register-generator", 2, 0, 0, (scm_t_subr)register_generator);
+  scm_c_export("register-generator", NULL);
+}
+
+void scm_init_dungeon_master_module()
+{
+  scm_c_define_module("dungeon-master", init_dungeon_master_module, NULL);
+}
 
 int main()
 {
   scm_init_guile();
+  scm_init_dungeon_master_module();
   scm_primitive_load(scm_from_locale_string("plugins/default/main.scm"));
 
   IrrlichtDevice* device =
@@ -17,47 +37,17 @@ int main()
   if (!device)
     return 1;
 
-  IVideoDriver* driver = device->getVideoDriver();
-
-  f32 bg_r = 255.0f;
-  f32 bg_g = 255.0f;
-  f32 bg_b = 255.0f;
-
-  bool fadeOut = -1;
+  device->setWindowCaption(L"Dungeon Master");
 
-  u32 then = device->getTimer()->getTime();
+  IVideoDriver* driver = device->getVideoDriver();
+  IGUIEnvironment* env = device->getGUIEnvironment();
 
-  const f32 fadeRate = 0.1f;
+  env->addStaticText(L"Dungeon Master", rect<s32>(150,20,350,40), true);
 
   while (device->run())
     {
-      const u32 now = device->getTimer()->getTime();
-      const f32 frameDeltaTime = (f32)(now - then);
-      then  = now;
-
-      if (bg_r <= 0.0f) fadeOut = false;
-      else if (bg_r >= 255.0f) fadeOut = true;
-
-      if (fadeOut)
-        {
-          bg_r -= fadeRate * frameDeltaTime;
-          bg_g -= fadeRate * frameDeltaTime;
-          bg_b -= fadeRate * frameDeltaTime;
-        }
-      else
-        {
-          bg_r += fadeRate * frameDeltaTime;
-          bg_g += fadeRate * frameDeltaTime;
-          bg_b += fadeRate * frameDeltaTime;
-        }
-          
-      if (bg_r <= 0.0f)
-        bg_r = bg_b = bg_g = 0.0f;
-      else if (bg_r >= 255.0f)
-        bg_r = bg_b = bg_g = 255.0f;
-      
-      driver->beginScene(true, true, SColor(255, (u32)bg_r,
-                                            (u32)bg_g, (u32)bg_b));
+      driver->beginScene(true, true, SColor(0, 200, 200, 200));
+      env->drawAll();
       driver->endScene();
     }