summaryrefslogtreecommitdiffstatshomepage
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/data/init.lua112
1 files changed, 60 insertions, 52 deletions
diff --git a/plugins/data/init.lua b/plugins/data/init.lua
index 5ec08cbec3c..f58742e8d34 100644
--- a/plugins/data/init.lua
+++ b/plugins/data/init.lua
@@ -13,8 +13,10 @@ exports.author = { name = "Carl" }
local data = exports
+local plugindir
+
function data.set_folder(path)
- data.path = path
+ plugindir = path
end
function data.startplugin()
@@ -22,60 +24,66 @@ function data.startplugin()
local valid_lst = {}
local cur_set
local cur_list
- emu.register_start(function()
- data_scr = {}
- for file in lfs.dir(data.path) do
- local name = string.match(file, "^(data_.*).lua$")
- if name then
- local script = require("data/" .. name)
- if script then
- data_scr[#data_scr + 1] = script
+
+ emu.register_start(
+ function()
+ data_scr = {}
+ for file in lfs.dir(plugindir) do
+ local name = string.match(file, '^(data_.*).lua$')
+ if name then
+ local script = require('data/' .. name)
+ if script then
+ table.insert(data_scr, script)
+ end
+ end
+ end
+ end)
+
+ emu.register_callback(
+ function(set)
+ local ret = {}
+ if set == '' then
+ set = emu.romname()
end
- end
- end
- end)
- emu.register_callback(function(set)
- local ret = {}
- if set == "" then
- set = emu.romname()
- end
- if set == cur_set then
- return cur_list
- end
- cur_set = set
- if not set then
- return nil
- end
- valid_lst = {}
- for num, scr in ipairs(data_scr) do
- local setname, softname = set:match("^([^,]+),?(.*)$")
- if softname == "" then
- softname = nil
- end
- local name = scr.check(setname, softname)
- if name then
- ret[#ret + 1] = name
- valid_lst[#valid_lst + 1] = scr
- end
- end
- cur_list = ret
- return ret
- end, "data_list")
+ if set == cur_set then
+ return cur_list
+ end
+ cur_set = set
+ if not set then
+ return nil
+ end
+ valid_lst = {}
+ for num, scr in ipairs(data_scr) do
+ local setname, softname = set:match('^([^,]+),?(.*)$')
+ if softname == '' then
+ softname = nil
+ end
+ local name = scr.check(setname, softname)
+ if name then
+ table.insert(ret, name)
+ table.insert(valid_lst, scr)
+ end
+ end
+ cur_list = ret
+ return ret
+ end,
+ 'data_list')
- emu.register_callback(function(num)
- return valid_lst[num + 1].get()
- end, "data")
+ emu.register_callback(
+ function(num)
+ return valid_lst[num + 1].get()
+ end,
+ 'data')
- emu.register_callback(function(num)
- local ver
- if valid_lst[num + 1].ver then
- ver = valid_lst[num + 1].ver()
- end
- if ver then
- return ver
- end
- return ""
- end, "data_version")
+ emu.register_callback(
+ function(num)
+ local ver
+ if valid_lst[num + 1].ver then
+ ver = valid_lst[num + 1].ver()
+ end
+ return ver or ''
+ end,
+ 'data_version')
end
return exports