]> git.jsancho.org Git - dungeon-master.git/blob - src/main.cpp
0384ba5d957ffb9cb2e78e0c426e97b3ce05c31d
[dungeon-master.git] / src / main.cpp
1 #include <irrlicht/irrlicht.h>
2 #include <libguile.h>
3
4 using namespace irr;
5 using namespace core;
6 using namespace video;
7 using namespace gui;
8
9 SCM register_generator(SCM name, SCM proc)
10 {
11   printf ("Register: %s\n", scm_to_locale_string(name));
12   scm_call_1(proc, scm_from_int(-1));
13   return SCM_UNSPECIFIED;
14 }
15
16 void init_dungeon_master_module(void *unused)
17 {
18   scm_c_define_gsubr("register-generator", 2, 0, 0, (scm_t_subr)register_generator);
19   scm_c_export("register-generator", NULL);
20 }
21
22 void scm_init_dungeon_master_module()
23 {
24   scm_c_define_module("dungeon-master", init_dungeon_master_module, NULL);
25 }
26
27 int main()
28 {
29   scm_init_guile();
30   scm_init_dungeon_master_module();
31   scm_primitive_load(scm_from_locale_string("plugins/default/main.scm"));
32
33   IrrlichtDevice* device =
34     createDevice(EDT_OPENGL,
35                  dimension2d<u32>(640, 480), 16,
36                  false, false, false, 0);
37   if (!device)
38     return 1;
39
40   device->setWindowCaption(L"Dungeon Master");
41
42   IVideoDriver* driver = device->getVideoDriver();
43   IGUIEnvironment* env = device->getGUIEnvironment();
44
45   env->addStaticText(L"Dungeon Master", rect<s32>(150,20,350,40), true);
46
47   while (device->run())
48     {
49       driver->beginScene(true, true, SColor(0, 200, 200, 200));
50       env->drawAll();
51       driver->endScene();
52     }
53
54   device->drop();
55
56   return 0;
57 }