diff options
author | 2020-09-07 03:47:07 +1000 | |
---|---|---|
committer | 2020-09-07 03:47:07 +1000 | |
commit | d314df16bea003b57a2642e8ae2232f956a59fd4 (patch) | |
tree | 7067d49f75d6fb427af4c7834aab9cb8c62b372b /src/emu/render.cpp | |
parent | c7b7fb50a77318ea7f7d8ec250410910da36c672 (diff) |
-Fixed issue that automatically generated unnecessary internal views.
-Updated a few more internal layouts, mostly bezel-only ones.
* brkball wasn't using the DMD dots at all (it has a screen).
* The Aristocrat layouts could use collections to allow buttons and
tower lamps to be enabled/disabled independently.
Diffstat (limited to 'src/emu/render.cpp')
-rw-r--r-- | src/emu/render.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/emu/render.cpp b/src/emu/render.cpp index 3bc0e8ef5db..5a22b919e1c 100644 --- a/src/emu/render.cpp +++ b/src/emu/render.cpp @@ -1686,10 +1686,21 @@ void render_target::load_additional_layout_files(const char *basename, bool have screen_device_iterator iter(m_manager.machine().root_device()); std::vector<screen_info> const screens(std::begin(iter), std::end(iter)); + // need this because views aren't fully set up yet + auto const nth_view = + [this] (unsigned n) -> layout_view * + { + for (layout_file &file : m_filelist) + for (layout_view &view : file.views()) + if (!(m_flags & RENDER_CREATE_NO_ART) || !view.has_art()) + if (n-- == 0) + return &view; + return nullptr; + }; if (screens.empty()) // ensure the fallback view for systems with no screens is loaded if necessary { - if (!view_by_index(0)) + if (!nth_view(0)) { load_layout_file(nullptr, layout_noscreens); if (m_filelist.empty()) @@ -1800,7 +1811,7 @@ void render_target::load_additional_layout_files(const char *basename, bool have { need_tiles = true; int viewindex(0); - for (layout_view *view = view_by_index(viewindex); need_tiles && view; view = view_by_index(++viewindex)) + for (layout_view *view = nth_view(viewindex); need_tiles && view; view = nth_view(++viewindex)) { if (view->screen_count() >= screens.size()) { |