]> git.jsancho.org Git - dungeon-master.git/blobdiff - src/main.cpp
Load mods from selected paths
[dungeon-master.git] / src / main.cpp
index 3b1787ebd14ce10c950f6e537df70d7d5a1b7c6d..c79468b89e06cbaff2b016492a64d7f5188770eb 100644 (file)
@@ -1,33 +1,14 @@
 #include <irrlicht/irrlicht.h>
-#include <libguile.h>
+#include "mods.h"
 
 using namespace irr;
 using namespace core;
 using namespace video;
-
-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);
-}
+using namespace gui;
 
 int main()
 {
-  scm_init_guile();
-  scm_init_dungeon_master_module();
-  scm_primitive_load(scm_from_locale_string("plugins/default/main.scm"));
+  load_mods();
 
   IrrlichtDevice* device =
     createDevice(EDT_OPENGL,
@@ -36,47 +17,22 @@ 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;
+  device->setWindowCaption(L"Dungeon Master");
 
-  bool fadeOut = -1;
+  IVideoDriver* driver = device->getVideoDriver();
+  IGUIEnvironment* env = device->getGUIEnvironment();
 
-  u32 then = device->getTimer()->getTime();
+  env->addStaticText(L"Dungeon Master", rect<s32>(150,20,350,40), true);
 
-  const f32 fadeRate = 0.1f;
+  IGUITabControl* tab = env->addTabControl(rect<s32>(50, 60, 850, 600));
+  tab->addTab(L"First");
+  tab->addTab(L"Second");
+  tab->addTab(L"Third");
 
   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();
     }