X-Git-Url: https://git.jsancho.org/?p=dungeon-master.git;a=blobdiff_plain;f=src%2Fmain.cpp;h=b86ab1e2cb0b35a42886f4bc597e7e7c65d9472c;hp=3b1787ebd14ce10c950f6e537df70d7d5a1b7c6d;hb=602500ffe32004dc0437ed55ac2d25ec69fc9e25;hpb=d5019db1298fc13fe68ec4d4f48b583a0148b88c diff --git a/src/main.cpp b/src/main.cpp index 3b1787e..b86ab1e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,86 +1,49 @@ +/* Dungeon Master --- RPG Adventure Generator + Copyright © 2019 Javier Sancho + + Dungeon Master is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + Dungeon Master is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Dungeon Master. If not, see . +*/ + #include -#include 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() +int main () { - 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 = - createDevice(EDT_OPENGL, - dimension2d(640, 480), 16, - false, false, false, 0); + createDevice (video::EDT_OPENGL, core::dimension2d (640, 480)); + if (!device) return 1; - IVideoDriver* driver = device->getVideoDriver(); + device->setWindowCaption (L"Dungeon Master"); - f32 bg_r = 255.0f; - f32 bg_g = 255.0f; - f32 bg_b = 255.0f; + IVideoDriver* driver = device->getVideoDriver (); + IGUIEnvironment* guienv = device->getGUIEnvironment (); - bool fadeOut = -1; + guienv->addStaticText (L"Aqui va el texto", rect (10, 10, 260, 22)); - u32 then = device->getTimer()->getTime(); - - const f32 fadeRate = 0.1f; - - while (device->run()) + 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->endScene(); + driver->beginScene (true, true, SColor(255, 100, 101, 140)); + guienv->drawAll (); + driver->endScene (); } - device->drop(); - + device->drop (); return 0; }