]> git.jsancho.org Git - dungeon-master.git/blobdiff - src/mods.cpp
register scene generators
[dungeon-master.git] / src / mods.cpp
index dea09b633b0e40261e5d25c060b849e95bc3339b..7b9115e6320618ce749112f79ec9a15203e2c8a5 100644 (file)
 */
 
 #include <dirent.h>
-#include <iostream>
 #include <libguile.h>
 #include "generators.h"
 #include "mods.h"
 #include "paths.h"
 
-
-SCM register_scene_generator (SCM name, SCM type, SCM proc)
+SCM
+register_scene_generator (SCM name,
+                          SCM type,
+                          SCM proc)
 {
-  SceneGenerator generator {scm_to_locale_string (name), scm_to_locale_string (type), proc };
-  //register_generator (generator);
-  printf ("Register: %s (%s)\n", generator.name.c_str (), generator.type.c_str ());
-  scm_call_1 (proc, scm_from_int (-1));
+  SceneGenerator* generator =
+    register_generator (scm_to_utf8_string (name),
+                        scm_to_utf8_string (scm_symbol_to_string (type)),
+                        proc);
+  printf ("Register: %s (%s)\n", generator->name, generator->type);
+  scm_call_1 (generator->proc, scm_from_int (-1));
   return SCM_UNSPECIFIED;
 }
 
-void init_dungeon_master_module (void *unused)
+void
+init_dungeon_master_module (void *unused)
 {
   scm_c_define_gsubr ("register-scene-generator", 3, 0, 0, (scm_t_subr) register_scene_generator);
   scm_c_export ("register-scene-generator", NULL);
 }
 
-void scm_init_dungeon_master_module ()
+void
+scm_init_dungeon_master_module ()
 {
   scm_c_define_module ("dungeon-master", init_dungeon_master_module, NULL);
 }
 
-void add_to_load_path (std::string path)
+void
+add_to_load_path (std::string path)
 {
-  // Add path to %load-path variable, needed for modules created in mods
+  // Add path to %load-path variable, needed for mods structured like modules
   std::string exp = "(add-to-load-path \"" + path + "\")";
   scm_c_eval_string (exp.c_str ());
 }
 
-void load_dmaster_mods ()
+void
+load_dmaster_mods ()
 {
   scm_init_guile ();
   scm_init_dungeon_master_module ();