OK, that is very helpful. One more question. (since you are watching).
I've got 2 layouts, the game and the options. From what I've read these controls on these layouts are built into the class so the values are always present.
To access a ctrl (say a checkbox called Multiplayer) in the option layout from the game class I would do
bool value = options.Multiplayer ~;
and
options.Multiplayer <<= value;
Is this correct?
Yes. (Just "value = ~options.Multiplayer").
Option also has alternative interface - operator= and operator bool(). Means you will not in most cases need "bool value", just
if(options.Multiplayer)
....
options.Multiplayer = true;
Note that you can even serialize content of dialog to make this persistent. No need to store data in paralel structures (in most cases).