]> git.jsancho.org Git - dungeon-master.git/blob - src/mods.cpp
Search paths for mods and games
[dungeon-master.git] / src / mods.cpp
1 #include <iostream>
2 #include <libguile.h>
3 #include "mods.h"
4 #include "paths.h"
5
6 SCM register_generator(SCM name, SCM proc)
7 {
8   printf ("Register: %s\n", scm_to_locale_string(name));
9   scm_call_1(proc, scm_from_int(-1));
10   return SCM_UNSPECIFIED;
11 }
12
13 void init_dungeon_master_module(void *unused)
14 {
15   scm_c_define_gsubr("register-generator", 2, 0, 0, (scm_t_subr)register_generator);
16   scm_c_export("register-generator", NULL);
17 }
18
19 void scm_init_dungeon_master_module()
20 {
21   scm_c_define_module("dungeon-master", init_dungeon_master_module, NULL);
22 }
23
24 void load_mods()
25 {
26   std::set<std::string> paths = get_dm_paths();
27   for (const std::string &path : paths) {
28     std::cout << path << std::endl;
29   }
30
31   scm_init_guile();
32   scm_init_dungeon_master_module();
33   scm_primitive_load(scm_from_locale_string("mods/default/main.scm"));
34 }