Page 1 of 1

Missing exported 'world' custom properties

Posted: Fri Dec 25, 2015 11:19 am
by Voptiplex
Hi,

I have saved a Json file with

Code: Select all

b2dJson::writeToFile(b2World* world, const char* filename)
and noticed that custom properties belonging to the world are not saved.

I therefore changed:

Code: Select all

Json::Value b2dJson::b2j(b2World* world)
{
    Json::Value customPropertyValue = writeCustomPropertiesToJson(NULL);
}

to (adding world pointer)

Json::Value b2dJson::b2j(b2World* world)
{
    Json::Value customPropertyValue = writeCustomPropertiesToJson(world);
}
and now it seems to work.

Is that change correct and are there some additional changes missing ?

Thanks,
Thomas

Re: Missing exported 'world' custom properties

Posted: Sat Dec 26, 2015 8:44 am
by iforce2d
Perhaps I may not have mentioned it anywhere, but I have arranged it so that passing NULL as the item for the custom property to be attached to will cause it to become a 'global' custom property. I think if you try setting the property like this it should be saved correctly:

setCustomInt( NULL, "myint", 123 );

Re: Missing exported 'world' custom properties

Posted: Sat Dec 26, 2015 10:02 am
by Voptiplex
Ok, I will try passing a NULL from my SW to see if the code writes values to Json.

But I have several 'world' custom properties set in Rube which I would like to preserve in Json.
And with passing writeCustomPropertiesToJson(world) these values set in Rube get written to Json as well.

So is the intention that I have to write to Json the custom values from Rube in my software 'by hand' with
setCustomInt( NULL, "myint", 123 ); ?

Happy XMAS,
Thomas

Re: Missing exported 'world' custom properties

Posted: Sun Dec 27, 2015 5:08 pm
by Voptiplex
Hi,

I have tried passing a NULL to setCustomInt(), but then the code does not compile. The compiler complains about ambiguous function and the compiler can not decide which function to use.
If I pass a b2world pointer to setCustomInt(), and as explained above, pass a b2world pointer to writeCustomPropertiesToJson() everything works ok.

I guess I do not get how to use the functions.
As it works OK with the current code, shall I just leave it as it is ?

Thanks for your help,
Thomas

Re: Missing exported 'world' custom properties

Posted: Sun Jan 03, 2016 2:22 pm
by iforce2d
Yeah I guess if it's working ok you should leave it :)
You might be able to pass

(b2World*)NULL

as the parameter to get around the compiler error.