X-Git-Url: https://git.jsancho.org/?p=dungeon-master.git;a=blobdiff_plain;f=src%2Fmods.cpp;fp=src%2Fmods.cpp;h=7b9115e6320618ce749112f79ec9a15203e2c8a5;hp=dea09b633b0e40261e5d25c060b849e95bc3339b;hb=4fce641cc077d18f972e250d2fe3be5067618127;hpb=feed3accdc0482b11535c72119ea73f627f633ed diff --git a/src/mods.cpp b/src/mods.cpp index dea09b6..7b9115e 100644 --- a/src/mods.cpp +++ b/src/mods.cpp @@ -16,41 +16,48 @@ */ #include -#include #include #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 ();