diff options
Diffstat (limited to 'src/engine/TrackBrowser.cpp')
| -rw-r--r-- | src/engine/TrackBrowser.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/engine/TrackBrowser.cpp b/src/engine/TrackBrowser.cpp index 37a4712bb..7d76a46bc 100644 --- a/src/engine/TrackBrowser.cpp +++ b/src/engine/TrackBrowser.cpp @@ -37,22 +37,30 @@ void TrackBrowser::FindCustomTracks() { // then it must at least be a valid track. // So lets add it as an uninitialized track. if (manager->HasFile(file)) { + printf("[TrackBrowser] [FindCustomTracks] Found a new custom track!\n"); + printf(" Creating scene.json so the track can be configured in the editor\n"); + TrackInfo info; std::string resName = std::string("mods:") + name; info.ResourceName = resName; info.Name = name; info.DebugName = name; + info.Path = dir; auto archive = manager->GetArchiveFromFile(file); //mNewTracks.push_back({info, "", dir, archive}); auto track = std::make_unique<Track>(); - Editor::SaveLevel(track.get()); // Write scene file so it will show up in the track browser + track->Archive = archive; + track->ResourceName = info.ResourceName; + Editor::SaveLevel(track.get(), &info); // Write scene file so it will show up in the track browser + printf("[TrackBrowser] [FindCustomTracks] Saved scene.json to new track!\n"); + // Passing these through seems kinda bad. But it works? gTrackRegistry.Add(info, [info, archive]() { auto track = std::make_unique<Track>(); - track->ResourceName = info.ResourceName; track->Archive = archive; + track->ResourceName = info.ResourceName; GetWorld()->SetCurrentTrack(std::move(track)); }); |
