Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moving scenes in the FileSystem dock that are nested inside other scenes breaks the other scenes #44720

Open
Flavelius opened this issue Dec 27, 2020 · 2 comments · May be fixed by #75103
Open

Comments

@Flavelius
Copy link
Contributor

Godot version:

3.2.3.stable.mono.official

OS/device including version:

Win10

Issue description:

See this video:
https://user-images.githubusercontent.com/8841352/103167731-f66d0480-482d-11eb-9e75-3b6caaf1a324.mp4

When moving scene files that have instances in another scene ('Maps' here), that scene and every other one that uses this scene in turn cannot be opened anymore.
It looks like the references are just not updated correctly after moving.

Steps to reproduce:
In my case, it's 3 scenes that are instanced in another scene. Just moving those 3 around in the FileSystem Dock is enough to break it.

@Calinou Calinou changed the title Moving scenes in the FileSystem that are nested inside other scenes breaks the other scenes Moving scenes in the FileSystem dock that are nested inside other scenes breaks the other scenes Dec 27, 2020
@Flavelius
Copy link
Contributor Author

Flavelius commented Mar 8, 2021

This is still an issue in 3.2.4.rc3 it breaks all scenes that use the missing scene, even only indirectly.
Maybe it helps to debug that those in the problematic case i have currently are instance placeholders and the automatic correction seemed to have skipped the paths for those. When i correct them manually they work again.

@Flavelius
Copy link
Contributor Author

Flavelius commented Mar 14, 2021

From my limited c++ understanding, this is because when it checks for remaps in editor_data.cpp check_and_update_scene, it seems the placeholder path cannot be treated as remappable, as it's not a nodepath or similar, but just a string. Changing it to such a type, or handling that as a special case should fix it in my limited understanding.

Edit: i tried to change String to NodePath myself. It compiled successfully, but it still results in broken scenes unfortunately, looks like my assumption was wrong

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants