/** * * rct2: 0x00699AAF */ static void window_guest_list_mouseup(rct_window* w, rct_widgetindex widgetIndex) { switch (widgetIndex) { case WIDX_CLOSE: window_close(w); break; case WIDX_MAP: context_open_window(WC_MAP); break; case WIDX_TRACKING: _window_guest_list_tracking_only = !_window_guest_list_tracking_only; if (_window_guest_list_tracking_only) w->pressed_widgets |= (1 << WIDX_TRACKING); else w->pressed_widgets &= ~(1 << WIDX_TRACKING); window_invalidate(w); w->scrolls[0].v_top = 0; break; case WIDX_FILTER_BY_NAME: if (strnlen(_window_guest_list_filter_name, sizeof(_window_guest_list_filter_name)) > 0) { // Unset the search filter. _window_guest_list_filter_name[0] = '\0'; w->pressed_widgets &= ~(1 << WIDX_FILTER_BY_NAME); } else { window_text_input_open( w, WIDX_FILTER_BY_NAME, STR_GUESTS_FILTER_BY_NAME, STR_GUESTS_ENTER_NAME_TO_SEARCH, STR_STRING, (uintptr_t)&_window_guest_list_filter_name, sizeof(_window_guest_list_filter_name)); } break; } }
static void window_title_options_mouseup(rct_window *w, rct_widgetindex widgetIndex) { if (gIntroState != INTRO_STATE_NONE) return; switch (widgetIndex) { case WIDX_OPTIONS: context_open_window(WC_OPTIONS); break; } }
/** * * rct2: 0x0066D4D5 */ static void window_news_mouseup(rct_window *w, rct_widgetindex widgetIndex) { switch (widgetIndex) { case WIDX_CLOSE: window_close(w); break; case WIDX_SETTINGS: context_open_window(WC_NOTIFICATION_OPTIONS); break; } }
sint32 viewport_interaction_left_click(sint32 x, sint32 y) { viewport_interaction_info info; switch (viewport_interaction_get_item_left(x, y, &info)) { case VIEWPORT_INTERACTION_ITEM_SPRITE: switch (info.sprite->unknown.sprite_identifier) { case SPRITE_IDENTIFIER_VEHICLE: { auto intent = Intent(WD_VEHICLE); intent.putExtra(INTENT_EXTRA_VEHICLE, info.vehicle); context_open_intent(&intent); break; } case SPRITE_IDENTIFIER_PEEP: { auto intent = Intent(WC_PEEP); intent.putExtra(INTENT_EXTRA_PEEP, info.peep); context_open_intent(&intent); break; } case SPRITE_IDENTIFIER_MISC: if (game_is_not_paused()) { switch (info.sprite->unknown.misc_identifier) { case SPRITE_MISC_BALLOON: game_do_command(info.sprite->balloon.sprite_index, GAME_COMMAND_FLAG_APPLY, 0, 0, GAME_COMMAND_BALLOON_PRESS, 0, 0); break; case SPRITE_MISC_DUCK: duck_press(&info.sprite->duck); break; } } break; } return 1; case VIEWPORT_INTERACTION_ITEM_RIDE: { auto intent = Intent(WD_TRACK); intent.putExtra(INTENT_EXTRA_TILE_ELEMENT, info.tileElement); context_open_intent(&intent); return true; } case VIEWPORT_INTERACTION_ITEM_PARK: context_open_window(WC_PARK_INFORMATION); return 1; default: return 0; } }
static void window_title_menu_mouseup(rct_window *w, rct_widgetindex widgetIndex) { rct_window *windowToOpen = nullptr; switch (widgetIndex) { case WIDX_START_NEW_GAME: windowToOpen = window_find_by_class(WC_SCENARIO_SELECT); if (windowToOpen != nullptr) { window_bring_to_front(windowToOpen); } else { window_close_by_class(WC_LOADSAVE); window_close_by_class(WC_SERVER_LIST); window_scenarioselect_open(window_title_menu_scenarioselect_callback, false); } break; case WIDX_CONTINUE_SAVED_GAME: windowToOpen = window_find_by_class(WC_LOADSAVE); if (windowToOpen != nullptr) { window_bring_to_front(windowToOpen); } else { window_close_by_class(WC_SCENARIO_SELECT); window_close_by_class(WC_SERVER_LIST); game_do_command(0, 1, 0, 0, GAME_COMMAND_LOAD_OR_QUIT, 0, 0); } break; case WIDX_MULTIPLAYER: windowToOpen = window_find_by_class(WC_SERVER_LIST); if (windowToOpen != nullptr) { window_bring_to_front(windowToOpen); } else { window_close_by_class(WC_SCENARIO_SELECT); window_close_by_class(WC_LOADSAVE); context_open_window(WC_SERVER_LIST); } break; } }