diff options
author | Sebastian Hartte <sebastian@hartte.de> | 2019-03-12 03:17:30 +0100 |
---|---|---|
committer | Sebastian Hartte <sebastian@hartte.de> | 2019-03-12 12:17:17 +0100 |
commit | 7bab7fd7773854e136c7d2c31b83498fd35a4b2d (patch) | |
tree | dc1a26288363dd15c32102110beb8d5b163cfba9 | |
parent | 6d86450a8356b8930b503c8ff5cc07d9e34e6287 (diff) |
Don't crash when the saved editor state contains fewer viewports than currently supported.
-rw-r--r-- | editor/plugins/spatial_editor_plugin.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/editor/plugins/spatial_editor_plugin.cpp b/editor/plugins/spatial_editor_plugin.cpp index 776110b3b2..ad945d7916 100644 --- a/editor/plugins/spatial_editor_plugin.cpp +++ b/editor/plugins/spatial_editor_plugin.cpp @@ -4170,9 +4170,13 @@ void SpatialEditor::set_state(const Dictionary &p_state) { if (d.has("viewports")) { Array vp = d["viewports"]; - ERR_FAIL_COND(vp.size() > 4); + uint32_t vp_size = static_cast<uint32_t>(vp.size()); + if (vp_size > VIEWPORTS_COUNT) { + WARN_PRINT("Ignoring superfluous viewport settings from spatial editor state.") + vp_size = VIEWPORTS_COUNT; + } - for (uint32_t i = 0; i < VIEWPORTS_COUNT; i++) { + for (uint32_t i = 0; i < vp_size; i++) { viewports[i]->set_state(vp[i]); } } |