Mods library
authorJavier Sancho <jsf@jsancho.org>
Sun, 28 Apr 2019 17:33:39 +0000 (19:33 +0200)
committerJavier Sancho <jsf@jsancho.org>
Sun, 28 Apr 2019 17:33:39 +0000 (19:33 +0200)
src/Makefile.am
src/main.cpp

index 20ec91a3388e786f187d9712532468700219c044..a15f108dde95d18a91a8b85396038ee55dc726ca 100644 (file)
@@ -1,4 +1,4 @@
 bin_PROGRAMS = $(top_builddir)/DungeonMaster
-__top_builddir__DungeonMaster_SOURCES = main.cpp
+__top_builddir__DungeonMaster_SOURCES = main.cpp mods.cpp
 __top_builddir__DungeonMaster_CPPFLAGS = @GUILE_CFLAGS@
 __top_builddir__DungeonMaster_LDFLAGS = @GUILE_LIBS@
index 9f3ad6d745d6ffed83a65bcc9ace6a4e54723529..c79468b89e06cbaff2b016492a64d7f5188770eb 100644 (file)
@@ -1,34 +1,14 @@
 #include <irrlicht/irrlicht.h>
-#include <libguile.h>
+#include "mods.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)
-{
-  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("mods/default/main.scm"));
+  load_mods();
 
   IrrlichtDevice* device =
     createDevice(EDT_OPENGL,