/** * * rct2: 0x006AB199 */ static void window_editor_object_selection_close() { rct_window* w; window_get_register(w); //if (!(RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_EDITOR)) // return; RCT2_CALLPROC_EBPSAFE(0x6ABB66); editor_load_selected_objects(); reset_loaded_objects(); object_free_scenario_text(); RCT2_CALLPROC_EBPSAFE(0x6AB316); if (RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_EDITOR) { research_populate_list_random(); research_remove_non_separate_vehicle_types(); } else { // Used for in-game object selection cheat research_reset_items(); research_populate_list_researched(); gSilentResearch = true; sub_684AC3(); gSilentResearch = false; } window_new_ride_init_vars(); }
/** * * rct2: 0x00678761 */ static void title_update_showcase() { rct_window* w; uint8 script_opcode, script_operand; short x, y, z; int i; if (_scriptWaitCounter <= 0) { do { script_opcode = *_currentScript++; switch (script_opcode) { case TITLE_SCRIPT_WAIT: _scriptWaitCounter = (*_currentScript++) * 32; break; case TITLE_SCRIPT_LOAD: if (!scenario_load(get_file_path(PATH_ID_SIXFLAGS_MAGICMOUNTAIN))) { log_fatal("OpenRCT2 can not currently cope when unable to load title screen scenario."); exit(-1); } w = window_get_main(); w->viewport_target_sprite = -1; w->saved_view_x = RCT2_GLOBAL(RCT2_ADDRESS_SAVED_VIEW_X, sint16); w->saved_view_y = RCT2_GLOBAL(RCT2_ADDRESS_SAVED_VIEW_Y, sint16); { char _cl = (RCT2_GLOBAL(0x0138869E, sint16) & 0xFF) - w->viewport->zoom; w->viewport->zoom = RCT2_GLOBAL(0x0138869E, sint16) & 0xFF; *((char*)(&RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_ROTATION, sint32))) = RCT2_GLOBAL(0x0138869E, sint16) >> 8; if (_cl != 0) { if (_cl < 0) { _cl = -_cl; w->viewport->view_width >>= _cl; w->viewport->view_height >>= _cl; } else { w->viewport->view_width <<= _cl; w->viewport->view_height <<= _cl; } } w->saved_view_x -= w->viewport->view_width >> 1; w->saved_view_y -= w->viewport->view_height >> 1; } window_invalidate(w); sub_69E9A7(); window_new_ride_init_vars(); sub_684AC3(); RCT2_CALLPROC_EBPSAFE(0x006DFEE4); news_item_init_queue(); gfx_invalidate_screen(); RCT2_GLOBAL(0x009DEA66, sint16) = 0; RCT2_GLOBAL(0x009DEA5C, sint16) = 0x0D6D8; break; case TITLE_SCRIPT_LOCATION: x = (*_currentScript++) * 32 + 16; y = (*_currentScript++) * 32 + 16; z = map_element_height(x, y); // Update viewport w = window_get_main(); if (w != NULL) { window_scroll_to_location(w, x, y, z); w->flags &= ~0x08; viewport_update_position(w); } break; case TITLE_SCRIPT_ROTATE: script_operand = (*_currentScript++); w = window_get_main(); if (w != NULL) for (i = 0; i < script_operand; i++) window_rotate_camera(w); break; case TITLE_SCRIPT_RESTART: _currentScript = _magicMountainScript; if (gRandomShowcase) { if (_currentScript != NULL) free((uint8*)_currentScript); _currentScript = generate_random_script(); } break; } } while (_scriptWaitCounter == 0);