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 =
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();
}