I added some comments and logs.
Normally, the campaign data file should be in
"~/.widelands/campaigns/campaign_name/scenario_name.wcd".
I believe the error may be caused by Section::has_val(). The Profile class is
used in many places but the has_val() function was unused until now.
I´m unable to run with ASAN for some reason, it compiles fine but I get this
error on startup:
==25087==ASan runtime does not come first in initial library list; you should
either link runtime to your application or manually preload it with LD_PRELOAD.
Can you please trigger the error again with the additional logs and provide the
output, and possibly the contents of the .wcd file (if it exists)?
The easiest way to test is to put the following code in the scripting/init.lua
for any map, and load it as a singleplayer scenario:
include "scripting/coroutine.lua"
function thread()
game = wl.Game ()
save()
read()
end
function save()
print("Starting to WRITE...")
game:save_campaign_data("test_campaign", "test_scenario", {
x = 5,
y = "Hello",
z = {
nil,
10,
12,
14,
16,
"A",
"B",
"C",
{
a = 1,
b = 2,
},
"D",
}
})
print("Done.")
end
function print_table(t, depth)
print(string.rep(" ", depth - 1) .. "#=" .. #t)
for k,v in pairs(t) do
local string = string.rep(" ", depth) .. k .. "="
if v == nil then
print ( string .. "nil" )
elseif type(v) == "table" then
print ( string .. "{" )
print_table(v, depth + 2)
print (string.rep(" ", depth) .. "}")
elseif type(v) == "boolean" then
if v then print ( string .. "true" ) else print ( string .. "false" )
end
else
print ( string .. v )
end
end
end
function read()
print("Starting to READ...")
local result = game:read_campaign_data("test_campaign", "test_scenario")
print("Returned:")
if result == nil then
print (" <nil>")
else
print_table(result, 2)
end
print("Done.")
end
run(thread)
This saves a campaign data file, then reads it and prints the result to stdout.
You can then compare the init.lua, the wcd file and the output. Without ASAN,
this works fine for me.
--
https://code.launchpad.net/~widelands-dev/widelands/campaign_data/+merge/343783
Your team Widelands Developers is subscribed to branch
lp:~widelands-dev/widelands/campaign_data.
_______________________________________________
Mailing list: https://launchpad.net/~widelands-dev
Post to : [email protected]
Unsubscribe : https://launchpad.net/~widelands-dev
More help : https://help.launchpad.net/ListHelp