X-Git-Url: https://git.jsancho.org/?p=dungeon-master.git;a=blobdiff_plain;f=src%2Fmain.cpp;h=18007c215a26344ec62217f284087ad99de060ca;hp=6c2e2a756dc856903df78a4bf80b0e0e3cb6decc;hb=4f1840da0753c2e3e9d94cceb4127c7fee77dcb4;hpb=b201086ac53a63e010f23a7ec9128013fe3ac385 diff --git a/src/main.cpp b/src/main.cpp index 6c2e2a7..18007c2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -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,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(150,20,350,40), true); - const f32 fadeRate = 0.1f; + IGUITabControl* tab = env->addTabControl(rect(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(); }