X-Git-Url: https://git.jsancho.org/?p=dungeon-master.git;a=blobdiff_plain;f=src%2Fmain.cpp;h=9f3ad6d745d6ffed83a65bcc9ace6a4e54723529;hp=bb5a5f96f707dd19e8cccc676bb69603210382fe;hb=1d17d59eac87eaf5095ef852045224cc77e4d8ce;hpb=770a848889b174dd4a1dc6422c699cd5640fe318 diff --git a/src/main.cpp b/src/main.cpp index bb5a5f9..9f3ad6d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4,18 +4,31 @@ using namespace irr; using namespace core; using namespace video; +using namespace gui; -SCM register_generator(SCM name, SCM proc) { +SCM register_generator(SCM name, SCM proc) +{ printf ("Register: %s\n", scm_to_locale_string(name)); - scm_call_0(proc); + 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_c_define_gsubr("register-generator", 2, 0, 0, (scm_t_subr)register_generator); - scm_primitive_load(scm_from_locale_string("plugins/default/main.scm")); + scm_init_dungeon_master_module(); + scm_primitive_load(scm_from_locale_string("mods/default/main.scm")); IrrlichtDevice* device = createDevice(EDT_OPENGL, @@ -24,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(); }