diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-06-22 00:04:55 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-06-22 00:04:55 (GMT) |
| commit | 3c91e526bb5576727e53b98fb850570074f9d036 (patch) | |
| tree | de60725cad767bdb60df2bd5a9f7d5f2d430fbc4 /src/game/GameModel.cpp | |
| parent | 550f6e28e012ceba8df9274fc71c7fbddfd90530 (diff) | |
| download | powder-3c91e526bb5576727e53b98fb850570074f9d036.zip powder-3c91e526bb5576727e53b98fb850570074f9d036.tar.gz | |
Client now provides methods for reading and saving preferences - less powerful than raw access to Cajun, (no mixed type arrays, for example) but allows other save formats to be used, such as property lists on OS X
Diffstat (limited to 'src/game/GameModel.cpp')
| -rw-r--r-- | src/game/GameModel.cpp | 53 |
1 files changed, 12 insertions, 41 deletions
diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp index 7a1d231..eb01615 100644 --- a/src/game/GameModel.cpp +++ b/src/game/GameModel.cpp @@ -30,33 +30,19 @@ GameModel::GameModel(): //Load config into renderer try { - json::Number tempNumber = Client::Ref().configDocument["Renderer"]["ColourMode"]; - if(tempNumber.Value()) - ren->SetColourMode(tempNumber.Value()); + ren->SetColourMode(Client::Ref().GetPrefNumber("Renderer.ColourMode", 0)); - json::Array tempArray = Client::Ref().configDocument["Renderer"]["DisplayModes"]; - if(tempArray.Size()) + vector<double> tempArray = Client::Ref().GetPrefNumberArray("Renderer.DisplayModes"); + if(tempArray.size()) { - std::vector<unsigned int> displayModes; - json::Array::const_iterator itDisplayModes(tempArray.Begin()), itDisplayModesEnd(tempArray.End()); - for (; itDisplayModes != itDisplayModesEnd; ++itDisplayModes) - { - json::Number tempNumberI = *itDisplayModes; - displayModes.push_back(tempNumberI.Value()); - } + std::vector<unsigned int> displayModes(tempArray.begin(), tempArray.end()); ren->SetDisplayMode(displayModes); } - tempArray = Client::Ref().configDocument["Renderer"]["RenderModes"]; - if(tempArray.Size()) + tempArray = Client::Ref().GetPrefNumberArray("Renderer.RenderModes"); + if(tempArray.size()) { - std::vector<unsigned int> renderModes; - json::Array::const_iterator itRenderModes(tempArray.Begin()), itRenderModesEnd(tempArray.End()); - for (; itRenderModes != itRenderModesEnd; ++itRenderModes) - { - json::Number tempNumberI = *itRenderModes; - renderModes.push_back(tempNumberI.Value()); - } + std::vector<unsigned int> renderModes(tempArray.begin(), tempArray.end()); ren->SetRenderMode(renderModes); } } @@ -145,28 +131,13 @@ GameModel::GameModel(): GameModel::~GameModel() { //Save to config: - try - { - Client::Ref().configDocument["Renderer"]["ColourMode"] = json::Number(ren->GetColourMode()); + Client::Ref().SetPref("Renderer.ColourMode", (double)ren->GetColourMode()); - Client::Ref().configDocument["Renderer"]["DisplayModes"] = json::Array(); - std::vector<unsigned int> displayModes = ren->GetDisplayMode(); - for (int i = 0; i < displayModes.size(); i++) - { - Client::Ref().configDocument["Renderer"]["DisplayModes"][i] = json::Number(displayModes[i]); - } + std::vector<unsigned int> displayModes = ren->GetDisplayMode(); + Client::Ref().SetPref("Renderer.DisplayModes", std::vector<double>(displayModes.begin(), displayModes.end())); - Client::Ref().configDocument["Renderer"]["RenderModes"] = json::Array(); - std::vector<unsigned int> renderModes = ren->GetRenderMode(); - for (int i = 0; i < renderModes.size(); i++) - { - Client::Ref().configDocument["Renderer"]["RenderModes"][i] = json::Number(renderModes[i]); - } - } - catch(json::Exception & e) - { - - } + std::vector<unsigned int> renderModes = ren->GetRenderMode(); + Client::Ref().SetPref("Renderer.RenderModes", std::vector<double>(renderModes.begin(), renderModes.end())); for(int i = 0; i < menuList.size(); i++) { |
