summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Hartte <sebastian@hartte.de>2019-03-12 03:17:30 +0100
committerSebastian Hartte <sebastian@hartte.de>2019-03-12 12:17:17 +0100
commit7bab7fd7773854e136c7d2c31b83498fd35a4b2d (patch)
treedc1a26288363dd15c32102110beb8d5b163cfba9
parent6d86450a8356b8930b503c8ff5cc07d9e34e6287 (diff)
Don't crash when the saved editor state contains fewer viewports than currently supported.
-rw-r--r--editor/plugins/spatial_editor_plugin.cpp8
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]);
}
}