Openrct2: Invention list in scenario editor crashes upon removing previously-enabled ride/stall entries

Created on 22 Mar 2018  路  14Comments  路  Source: OpenRCT2/OpenRCT2


OS: Win7
Version: 0.1.2


I set up an invention list, then decided to go back and remove a few stalls and ride types I found to be superfluous. Upon going back to the invention list, the game immediately crashes, with Windows washing out the screen and giving a "openrct2.exe has stopped responding" popup (the latter of which can be seen in the below image). This only happens for rides and stalls; removing paths and scenery did not cause a crash.
https://i.imgur.com/DieIFOH.jpg

  • Reproducible in RCT2 (vanilla)? Cannot check; no longer have disk
  • Specific to multiplayer? No

Steps to reproduce:

  1. Create a basic scenario with some rides enabled
  2. Set up an invention list
  3. Go back and disable a few rides
  4. Return to the invention list
  5. Crash
bug crash

Most helpful comment

There is an unofficial launcher that does exactly that.

All 14 comments

You haven't specified the commit/build.
Are you on release ("stable") or develop?

Stable, as far as I know; I never went out of my way to use some experimental version.

The main menu says build: 8069a04, whatever that means for your question.

That means you're on develop, an old build (18 days) at that. The invention list has been overhauled just yesterday. Could you try a recent build?

Is there an auto-update system (ie within the program, like a browser 'check for updates'), or do I need to redownload and reinstall?

There is an unofficial launcher that does exactly that.

I managed to reproduce it on 61ddbd918b3086caa2ed8ac6df060481d97c736c.

The launcher broke horribly for me, but I updated with a manual install of the latest on the "releases" page (0e7c0f7), and the crash persists.

Also, the invention list (I checked right before actually attempting the crash) did not look any different; was this overhaul entirely on the backend?

It does not look different because you used the release build and the change that @AaronVanGeffen spoke of was made after that release. It's also mostly a front-end change, but in C that does not always say much.

Is there a place to get that build (without having to do something insane like compile it myself)?

Still present in 61ddbd918

https://github.com/OpenRCT2/OpenRCT2/blob/61ddbd918b3086caa2ed8ac6df060481d97c736c/src/openrct2-ui/windows/EditorInventionsList.cpp#L215

>>> bt full
#0  0x0000555555784a22 in research_rides_setup () at ../src/openrct2-ui/windows/EditorInventionsList.cpp:215
        ride_base_type = 4 '\004'
        object_index = 8 '\b'
        ride_entry = 0x0
        master_found = false
        research = 0x5555562702f2 <gResearchItems+50>
#1  0x0000555555784ccb in research_always_researched_setup () at ../src/openrct2-ui/windows/EditorInventionsList.cpp:311
No locals.
#2  0x000055555578506c in window_editor_inventions_list_open () at ../src/openrct2-ui/windows/EditorInventionsList.cpp:442
        w = 0x0
#3  0x0000555555757108 in WindowManager::OpenWindow (this=0x55555683f9f0, wc=43 '+') at ../src/openrct2-ui/WindowManager.cpp:57
No locals.
#4  0x000055555580f312 in context_open_window (wc=43 '+') at ../src/openrct2/Context.cpp:1030
        windowManager = 0x55555683f9f0
#5  0x0000555555783ea9 in window_editor_bottom_toolbar_jump_forward_to_invention_list_set_up () at ../src/openrct2-ui/windows/EditorBottomToolbar.cpp:256
No locals.
#6  0x000055555578410a in window_editor_bottom_toolbar_mouseup (w=0x55555624ef40 <g_window_list+2496>, widgetIndex=3) at ../src/openrct2-ui/windows/EditorBottomToolbar.cpp:322
No locals.
#7  0x0000555555881f78 in window_event_mouse_up_call (w=0x55555624ef40 <g_window_list+2496>, widgetIndex=3) at ../src/openrct2/interface/Window.cpp:1924
No locals.
#8  0x000055555577a2c7 in input_state_widget_pressed (x=1374, y=813, state=2, widgetIndex=3, w=0x55555624ef40 <g_window_list+2496>, widget=0x5555561417a0 <window_editor_bottom_toolbar_widgets+96>) at ../src/openrct2-ui/input/MouseInput.cpp:1357
        cursor_w_class = 2 '\002'
        cursor_w_number = 0
        cursor_widgetIndex = 3
        cursor_w = 0x55555624ef40 <g_window_list+2496>
#9  0x00005555557779ea in game_handle_input_mouse (x=1374, y=813, state=2) at ../src/openrct2-ui/input/MouseInput.cpp:340
        w = 0x55555624ef40 <g_window_list+2496>
        widget = 0x5555561417a0 <window_editor_bottom_toolbar_widgets+96>
        widgetIndex = 3
#10 0x000055555577727c in game_handle_input () at ../src/openrct2-ui/input/MouseInput.cpp:126
        x = 1374
        y = 813
        state = 2
#11 0x0000555555757bff in WindowManager::HandleInput (this=0x55555683f9f0) at ../src/openrct2-ui/WindowManager.cpp:440
No locals.
#12 0x000055555580f5bc in context_handle_input () at ../src/openrct2/Context.cpp:1078
        windowManager = 0x55555683f9f0
#13 0x0000555555819658 in game_update () at ../src/openrct2/Game.cpp:430
        numUpdates = 1
#14 0x0000555555811da6 in OpenRCT2::Context::Update (this=0x555556bdce20) at ../src/openrct2/Context.cpp:782
        currentUpdateTick = 27641811
#15 0x0000555555811c43 in OpenRCT2::Context::RunVariableFrame (this=0x555556bdce20) at ../src/openrct2/Context.cpp:739
        currentTick = 27641811
        draw = true
        elapsed = 17
#16 0x0000555555811a68 in OpenRCT2::Context::RunFrame (this=0x555556bdce20) at ../src/openrct2/Context.cpp:676
        useVariableFrame = true
#17 0x00005555558119f1 in OpenRCT2::Context::RunGameLoop (this=0x555556bdce20) at ../src/openrct2/Context.cpp:651
No locals.
#18 0x000055555581180d in OpenRCT2::Context::Launch (this=0x555556bdce20) at ../src/openrct2/Context.cpp:627
No locals.
#19 0x00005555558105f1 in OpenRCT2::Context::RunOpenRCT2 (this=0x555556bdce20, argc=1, argv=0x7fffffffcc38) at ../src/openrct2/Context.cpp:172
No locals.
#20 0x000055555574de15 in main (argc=1, argv=0x7fffffffcc38) at ../src/openrct2-ui/Ui.cpp:60
        env = 0x5555567fecc0
        audioContext = 0x5555568087b0
        uiContext = 0x55555683db90
        context = 0x555556bdce20
        runGame = 1

@ReikaKalseki There's no need to get that, really. The bug in both in release and develop, and I can reproduce it, so it's now up to us (or someone else who can program) to solve it.

or someone else who can program

I only know Java, Lua, C#, and C (from most to least skill), so I am not much help here. :P

I see a mention above of "separate ride" (presumably vs car type on one ride); I can say that not all the crash-triggering things are sub-elements of an overarching type.

@janisozaur So it looks like ride_entry is a nullptr at the moment it's accessed.

@mtesseracttech Yes, which in turn is caused by the research entry not being removed properly when deselecting it in the object selection window.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

qwertychouskie picture qwertychouskie  路  3Comments

telk5093 picture telk5093  路  3Comments

Gymnasiast picture Gymnasiast  路  3Comments

mrtnptrs picture mrtnptrs  路  3Comments

Xaroth picture Xaroth  路  3Comments