X-Git-Url: https://git.jsancho.org/?p=dungeon-master.git;a=blobdiff_plain;f=src%2Fmain.cpp;h=c9aa0f9b9131cd6a085f4e8b80dfaa5ff3622fbf;hp=3b1787ebd14ce10c950f6e537df70d7d5a1b7c6d;hb=8f36ecdca1766ddd2a177fa46dc885c7f8e14130;hpb=d5019db1298fc13fe68ec4d4f48b583a0148b88c diff --git a/src/main.cpp b/src/main.cpp index 3b1787e..c9aa0f9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,86 +1,53 @@ +/* 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 +#include "modules.h" 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) +int +main () { - 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")); + load_dmaster_modules (); 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(); - - 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* guienv = device->getGUIEnvironment (); - u32 then = device->getTimer()->getTime(); + guienv->addStaticText (L"Aqui va el texto", rect (10, 10, 260, 22)); - 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; }