diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/data/data_gameinit.lua | 4 | ||||
-rw-r--r-- | plugins/data/data_history.lua | 4 | ||||
-rw-r--r-- | plugins/data/data_mameinfo.lua | 4 | ||||
-rw-r--r-- | plugins/data/data_messinfo.lua | 4 | ||||
-rw-r--r-- | plugins/data/data_story.lua | 4 | ||||
-rw-r--r-- | plugins/data/data_sysinfo.lua | 4 | ||||
-rw-r--r-- | plugins/data/init.lua | 29 | ||||
-rw-r--r-- | plugins/data/load_dat.lua | 2 |
8 files changed, 52 insertions, 3 deletions
diff --git a/plugins/data/data_gameinit.lua b/plugins/data/data_gameinit.lua index 040cfb7745b..13e2489a19d 100644 --- a/plugins/data/data_gameinit.lua +++ b/plugins/data/data_gameinit.lua @@ -20,4 +20,8 @@ function dat.get() return info end +function dat.ver() + return ver +end + return dat diff --git a/plugins/data/data_history.lua b/plugins/data/data_history.lua index 29da2f62fd5..329bccd0b1e 100644 --- a/plugins/data/data_history.lua +++ b/plugins/data/data_history.lua @@ -19,4 +19,8 @@ function dat.get() return info end +function dat.ver() + return ver +end + return dat diff --git a/plugins/data/data_mameinfo.lua b/plugins/data/data_mameinfo.lua index c22175b91e4..6daddc57b45 100644 --- a/plugins/data/data_mameinfo.lua +++ b/plugins/data/data_mameinfo.lua @@ -19,4 +19,8 @@ function dat.get() return info end +function dat.ver() + return ver +end + return dat diff --git a/plugins/data/data_messinfo.lua b/plugins/data/data_messinfo.lua index f616882cb78..5aed9eea8d1 100644 --- a/plugins/data/data_messinfo.lua +++ b/plugins/data/data_messinfo.lua @@ -20,4 +20,8 @@ function dat.get() return info end +function dat.ver() + return ver +end + return dat diff --git a/plugins/data/data_story.lua b/plugins/data/data_story.lua index 398fba2da4f..1a933f0d74b 100644 --- a/plugins/data/data_story.lua +++ b/plugins/data/data_story.lua @@ -25,4 +25,8 @@ function dat.get() return info end +function dat.ver() + return ver +end + return dat diff --git a/plugins/data/data_sysinfo.lua b/plugins/data/data_sysinfo.lua index 2a545cad1d5..9271f7b0a42 100644 --- a/plugins/data/data_sysinfo.lua +++ b/plugins/data/data_sysinfo.lua @@ -19,4 +19,8 @@ function dat.get() return info end +function dat.ver() + return ver +end + return dat diff --git a/plugins/data/init.lua b/plugins/data/init.lua index 9b947cc69f9..83cf194af11 100644 --- a/plugins/data/init.lua +++ b/plugins/data/init.lua @@ -20,7 +20,10 @@ end function data.startplugin() local data_scr = {} 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 @@ -32,7 +35,17 @@ function data.startplugin() end end) emu.register_callback(function(set) - local ret = "" + local ret + if set == cur_set then + return cur_list + elseif set == "" then + set = cur_set + else + cur_set = set + end + if not set then + return nil + end valid_lst = {} for num, scr in ipairs(data_scr) do local setname, softname = set:match("^([^,]+),?(.*)$") @@ -41,7 +54,7 @@ function data.startplugin() end local name = scr.check(setname, softname) if name then - if ret == "" then + if not ret then ret = name else ret = ret .. "," .. name @@ -49,12 +62,24 @@ function data.startplugin() valid_lst[#valid_lst + 1] = 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) + 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") end return exports diff --git a/plugins/data/load_dat.lua b/plugins/data/load_dat.lua index a113da7fd63..72956a8becb 100644 --- a/plugins/data/load_dat.lua +++ b/plugins/data/load_dat.lua @@ -19,7 +19,7 @@ function datfile.open(file, vertag) local inblock = false local buffer = fh:read("a") if vertag then - local match = buffer:match("^" .. vertag .. "%s([^%s]+)") + local match = buffer:match(vertag .. "%s*([^%s]+)") if match then ver = match end |