summaryrefslogtreecommitdiffstatshomepage
path: root/plugins
diff options
context:
space:
mode:
author cracyc <cracyc@users.noreply.github.com>2016-08-04 16:40:05 -0500
committer GitHub <noreply@github.com>2016-08-04 16:40:05 -0500
commit0f05950b9abb1ac3f83c40802864d18b1baf9cae (patch)
treee074f0b476a1cebf3d345ed2efa7b3e4a6a76c81 /plugins
parent38314fc4a468459d9ec47cf40346e1c269a43a49 (diff)
parent234628a88f583895905f67386b1ef3a9a55046b0 (diff)
Merge pull request #1186 from stengun/patch-1
Fix .hi file load and write [stengun]
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 c4276514f62..fc67584bb07 100644
--- a/plugins/hiscore/init.lua
+++ b/plugins/hiscore/init.lua
@@ -24,16 +24,38 @@ function hiscore.startplugin()
local hiscoredata_path = "hiscore.dat";
local hiscore_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
@@ -247,6 +269,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() );