]> git.jsancho.org Git - dungeon-master.git/commitdiff
Mods library
authorJavier Sancho <jsf@jsancho.org>
Tue, 30 Apr 2019 15:11:11 +0000 (17:11 +0200)
committerJavier Sancho <jsf@jsancho.org>
Tue, 30 Apr 2019 15:11:11 +0000 (17:11 +0200)
src/mods.cpp [new file with mode: 0644]
src/mods.h [new file with mode: 0644]

diff --git a/src/mods.cpp b/src/mods.cpp
new file mode 100644 (file)
index 0000000..a1dccfa
--- /dev/null
@@ -0,0 +1,27 @@
+#include <libguile.h>
+#include "mods.h"
+
+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);
+}
+
+void load_mods()
+{
+  scm_init_guile();
+  scm_init_dungeon_master_module();
+  scm_primitive_load(scm_from_locale_string("mods/default/main.scm"));
+}
diff --git a/src/mods.h b/src/mods.h
new file mode 100644 (file)
index 0000000..aed4811
--- /dev/null
@@ -0,0 +1 @@
+void load_mods();