summaryrefslogtreecommitdiffstatshomepage
path: root/plugins
diff options
context:
space:
mode:
author Roberto Benfatto <robenfi@gmail.com>2016-08-04 20:27:16 +0200
committer GitHub <noreply@github.com>2016-08-04 20:27:16 +0200
commit4f8363438069eee23815165675197e186cae0ad1 (patch)
tree8eb854891fc6fc3ec9f896c7cea310c0b3dc3784 /plugins
parent0646ca8b1a62be748b48b16205f02f640b5945a7 (diff)
Make hiscore path configurable by ini file
Diffstat (limited to 'plugins')
-rw-r--r--plugins/hiscore/init.lua27
1 files changed, 25 insertions, 2 deletions
diff --git a/plugins/hiscore/init.lua b/plugins/hiscore/init.lua
index 21766d52167..00707aca092 100644
--- a/plugins/hiscore/init.lua
+++ b/plugins/hiscore/init.lua
@@ -24,16 +24,38 @@ function hiscore.startplugin()
local hiscoredata_path = hiscore_plugin_path .. "/hiscore.dat";
local hiscore_path = hiscore_plugin_path .. "/hi";
-
+ local config_path = manager:options().entries.inipath:value():match("[^;]+") .. "/hiscore.ini";
+ config_path = config_path:gsub("%$(%w+)", os.getenv);
+
local current_checksum = 0;
local default_checksum = 0;
+ local config_read = false;
local scores_have_been_read = false;
local mem_check_passed = false;
local found_hiscore_entry = false;
local positions = {};
-
+ -- Configuration file will be searched in the first path defined
+ -- in mame inipath option.
+ local function read_config()
+ if config_read then return true end;
+ local file = io.open( config_path, "r" );
+ if file then
+ file:close()
+ emu.print_verbose( "hiscore: config found" );
+ local _conf = {}
+ for line in io.lines(config_path) do
+ token, value = string.match(line, '([^ ]+) ([^ ]+)');
+ _conf[token] = value:gsub("%$(%w+)", os.getenv);
+ end
+ hiscore_path = _conf["hi_path"];
+ -- hiscoredata_path = _conf["dat_path"]; -- don't know if I should do it, but wathever
+ return true
+ end
+ return false
+ end
+
local function parse_table ( dsting )
local _table = {};
for line in string.gmatch(dsting, '([^\n]+)') do
@@ -244,6 +266,7 @@ function hiscore.startplugin()
scores_have_been_read = false;
last_write_time = -10
emu.print_verbose("Starting " .. emu.gamename())
+ config_read = read_config();
local dat = read_hiscore_dat()
if dat and dat ~= "" then
emu.print_verbose( "hiscore: found hiscore.dat entry for " .. emu.romname() );