diff options
author | gyroninja <gyroninja@gmail.com> | 2021-09-17 02:55:26 -0700 |
---|---|---|
committer | gyroninja <gyroninja@gmail.com> | 2021-09-18 17:38:36 -0700 |
commit | f400c9239e6283d1297f47642b63fb81cd2e07ed (patch) | |
tree | e9df0a1edd38e19a5f133a5c7d9e7a3fa0e850da /scene/resources | |
parent | 44b1143f7bab84e3ce5c14406b908daf971e3745 (diff) |
Fail at instantiating if the root node is instantiated
Diffstat (limited to 'scene/resources')
-rw-r--r-- | scene/resources/packed_scene.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp index e74f759855..59faa50114 100644 --- a/scene/resources/packed_scene.cpp +++ b/scene/resources/packed_scene.cpp @@ -99,8 +99,9 @@ Node *SceneState::instantiate(GenEditState p_edit_state) const { #endif parent = nparent; } else { - // i == 0 is root node. Confirm that it doesn't have a parent defined. + // i == 0 is root node. ERR_FAIL_COND_V_MSG(n.parent != -1, nullptr, vformat("Invalid scene: root node %s cannot specify a parent node.", snames[n.name])); + ERR_FAIL_COND_V_MSG(n.type == TYPE_INSTANCED && base_scene_idx < 0, nullptr, vformat("Invalid scene: root node %s in an instance, but there's no base scene.", snames[n.name])); } Node *node = nullptr; |