Currently only affects the smudge tool. I'd have to look
into the others to decide if they need chaging. They probably
do though, they're not exactly intuitive.
I also fixed a bug with DropDowns where their popup would
show up in some random place if the parent window was a
ScrollPanel, and changed a few alignments here and there.
Notably, DropDowns now align the popup so that the currently
selected item is vertically centered and doesn't move when
the popup is opened.
This feature was removed temporarily in a407aba.
Whether pressure is included when saving or loading is
determined as follows:
* load-like operations (which invoke Simulation::Load) always
include pressure;
* save-like operations (which invoke Simulation::Save) include
pressure if the Simulation.IncludePressure preference node
is true;
* finally the state of the shift key inverts the decision.
The logging is saved inside the bson data in all online saves, local saves, stamps, and clipboard pieces. It is loaded back when reloading each of those.
See #474 for the format of the data. It is the same format for the bson data. Note that "links" is an array of objects. It can be recursive.
There is some effort to not duplicate information, we don't care if you loaded a stamp 10 times or if you are using the clipboard in your own save. Extra information is mostly not saved for your own stuff, only when you take material from other saves.
Press ctrl+a in debug builds to show what info it is currently saving in Client. Also enabled in snapshots for now.
There is one unrelated change in here, which fixes a crash pointed out by QuanTech. It was also save related and it was too close to the other changes to separate it into another commit. It fixes a crash when saving signs with invalid unicode. the BSON library doesn't like this, it was returning an error but we ignored it, which caused a crash. It now notices those errors. I also had to update several Serialize calls to check if it actually returned save data, or else it then would have started crashing there instead.
Also some debug prints were removed