Global ES2Settings

Easy Save 2 has been replaced by Easy Save 3, so is no longer supported.
Locked
User avatar
Izitmee
Posts: 14
Joined: Mon Jul 29, 2013 9:02 am

Global ES2Settings

Post by Izitmee »

Hi again Joel,

I was wondering if there is a way to set global ES2Settings, so that Easy Save uses those settings by default, and one can call all methods without having to pass an ES2Settings object each time. If it doesn't exist, it would indeed be pretty handy if it could be implemented?

Thanks & cheers,
Daniele
User avatar
Joel
Moodkie Staff
Posts: 4826
Joined: Wed Nov 07, 2012 10:32 pm

Re: Global ES2Settings

Post by Joel »

Hi Daniele,

If you go to Assets->Easy Save 2 menu there's the option to "Add Default Settings Object to Scene". This allows you to set the default Data paths, Encryption and Web settings.

However, I'm guessing that you'll be wanting to set the default save location? If so, I can add support for this in the next update for you without much difficulty.

All the best,
Joel
User avatar
Izitmee
Posts: 14
Joined: Mon Jul 29, 2013 9:02 am

Re: Global ES2Settings

Post by Izitmee »

That would be great, and yes, I'm talking about default save location (and also encryption). Being able to do it via code instead than by adding an object to the scene would be the best thing, imho. Personally, I setup Easy Save in my "core brain", so that everything works as expected from whatever scene I start (in case I'm testing in the editor and don't want to startup from the first one), and I suppose a lot of people tend to keep things dynamic like that.
User avatar
Izitmee
Posts: 14
Joined: Mon Jul 29, 2013 9:02 am

Re: Global ES2Settings

Post by Izitmee »

P.S. thought I'd add a possible API example.

What I mean is being able to do this via code:

Code: Select all

ES2.defaultSettings = new ES2Settings {
    saveLocation = ES2Settings.SaveLocation.PlayerPrefs,
    encrypt = true,
    encryptionPassword = "somePassword"
  };
And then Easy Save would use those settings every time one uses Load/Save/Exists/Delete
User avatar
Joel
Moodkie Staff
Posts: 4826
Joined: Wed Nov 07, 2012 10:32 pm

Re: Global ES2Settings

Post by Joel »

Actually you can already do this, though it's not documented, using the static variables in ES2GlobalSettings. For example, to change the default SaveLocation, you could do:
ES2GlobalSettings.defaultSaveLocation = ES2Settings.SaveLocation.File;
Here's a list of the static variables in ES2GlobalSettings which you can use to change the defaults:
public static ES2Settings.SaveLocation _defaultSaveLocation = ES2Settings.SaveLocation.File;
public static string defaultPCDataPath = "";
public static string defaultMacDataPath = "";
public static bool defaultEncrypt = false;
public static string defaultEncryptionPassword = "pass";
public static string defaultWebUsername = "ES2";
public static string defaultWebPassword = "pass";
public static string defaultWebFilename = "file.es2";
We'll see about adding a documented version of this at some point.

- Joel
User avatar
Izitmee
Posts: 14
Joined: Mon Jul 29, 2013 9:02 am

Re: Global ES2Settings

Post by Izitmee »

This is fantastic, and all I wanted to do. Thanks Joel :)
User avatar
Izitmee
Posts: 14
Joined: Mon Jul 29, 2013 9:02 am

StackOverflowException

Post by Izitmee »

Hi Joel, and sorry for being such a bother in these days.

I am now encountering a bug, on Unity 4.5 and Easy Save 2's latest Asset Store version.

Code: Select all

StackOverflowException: The requested operation caused a stack overflow.
ES2Writer.WriteEncrypted[Boolean] (Boolean param, .ES2Type type)
I whipped out a sample package with a scene and a script that replicate the issue (doesn't contain Easy Save). The error happens as soon as I try to save, even a simple bool, if I'm using encryption. I've just imported Easy Save, created the script, and the build is set for Windows (plain Windows, not Metro nor Phone), so encryption should work.
User avatar
Joel
Moodkie Staff
Posts: 4826
Joined: Wed Nov 07, 2012 10:32 pm

Re: StackOverflowException

Post by Joel »

I guess that's why we didn't document ES2GlobalSettings :)

Easy Save currently works on the assumption that encryption will always be disabled by default. By changing this, the writer responsible for encrypting tries to recursively encrypt itself, leading to a stack overflow.

We can very easily fix this with two short lines of code at our end. I'll get this included in v2.48 which we'll hopefully be submitting for approval on Friday.

If you need it earlier, contact us with your invoice number and purchase date (found in the PDF that Unity sent you when you purchased Easy Save) and I'll get a package made up for you.

Thanks,
Joel
User avatar
Joel
Moodkie Staff
Posts: 4826
Joined: Wed Nov 07, 2012 10:32 pm

Re: Global ES2Settings

Post by Joel »

I've just merged this with the Global ES2Settings topic as it directly relates to that.
- Joel
User avatar
Izitmee
Posts: 14
Joined: Mon Jul 29, 2013 9:02 am

Re: Global ES2Settings

Post by Izitmee »

Oops didn't realize it was because of the global settings. I just contacted you as you said, and thanks again :)
Locked