/** * * rct2: 0x006BEE98 */ void window_staff_open(rct_peep* peep) { rct_window* w = window_bring_to_front_by_number(WC_PEEP, peep->sprite_index); if (w == NULL) { w = window_create_auto_pos(WW, WH, (uint32*)window_staff_overview_events, WC_PEEP, (uint16)0x400); w->widgets = RCT2_GLOBAL(0x9AF81C, rct_widget*); w->enabled_widgets = RCT2_GLOBAL(0x9929B0, uint32); w->number = peep->sprite_index; w->page = 0; w->viewport_focus_coordinates.y = 0; w->frame_no = 0; RCT2_GLOBAL((int*)w + 0x496, uint16) = 0; // missing, var_494 should perhaps be uint16? window_staff_disable_widgets(w); w->min_width = WW; w->min_height = WH; w->max_width = 500; w->max_height = 450; w->flags = 1 << 8; w->colours[0] = 1; w->colours[1] = 4; w->colours[2] = 4; }
/** Based off of rct2: 0x006B486A */ void window_ride_demolish_prompt_open(int rideIndex){ rct_window *w; w = window_bring_to_front_by_number(WC_DEMOLISH_RIDE_PROMPT, rideIndex); if (w != NULL) return; w = window_create_centred(WW, WH, (uint32*)window_ride_demolish_events, WC_DEMOLISH_RIDE_PROMPT, WF_TRANSPARENT); w->widgets = window_ride_demolish_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_CANCEL) | (1 << WIDX_DEMOLISH); window_init_scroll_widgets(w); w->number = rideIndex; }
/** Based off of rct2: 0x6C0A77 */ void window_staff_fire_prompt_open(rct_peep* peep){ // Check if the confirm window already exists. if (window_bring_to_front_by_number(WC_FIRE_PROMPT, peep->sprite_index)) { return; } rct_window* w = window_create_centred(WW, WH, (uint32*)0x992C3C, 0x1A, WF_TRANSPARENT); w->widgets = window_staff_fire_widgets; w->enabled_widgets |= (1 << WIDX_CLOSE) | (1 << WIDX_YES) | (1 << WIDX_CANCEL); window_init_scroll_widgets(w); colour_scheme_update(w); w->number = peep->sprite_index; }
/** * * rct2: 0x006BEE98 */ rct_window *window_staff_open(rct_peep* peep) { rct_window* w = window_bring_to_front_by_number(WC_PEEP, peep->sprite_index); if (w == NULL) { w = window_create_auto_pos(WW, WH, &window_staff_overview_events, WC_PEEP, WF_10 | WF_RESIZABLE); w->widgets = RCT2_GLOBAL(0x9AF81C, rct_widget*); w->enabled_widgets = RCT2_GLOBAL(0x9929B0, uint32); w->number = peep->sprite_index; w->page = 0; w->viewport_focus_coordinates.y = 0; w->frame_no = 0; w->highlighted_item = 0; window_staff_disable_widgets(w); w->min_width = WW; w->min_height = WH; w->max_width = 500; w->max_height = 450; }
rct_window* window_player_open(uint8_t id) { rct_window* window; window = window_bring_to_front_by_number(WC_PLAYER, id); if (window == nullptr) { window = window_create_auto_pos(240, 170, &window_player_overview_events, WC_PLAYER, WF_RESIZABLE); window->number = id; window->page = 0; window->viewport_focus_coordinates.y = 0; window->frame_no = 0; window->list_information_type = 0; window->picked_peep_frame = 0; window->highlighted_item = 0; window->min_width = 210; window->min_height = 134; window->max_width = 500; window->max_height = 450; window->no_list_items = 0; window->selected_list_item = -1; window->viewport_focus_coordinates.y = -1; } window->page = 0; window_invalidate(window); window->widgets = window_player_page_widgets[WINDOW_PLAYER_PAGE_OVERVIEW]; window->enabled_widgets = window_player_page_enabled_widgets[WINDOW_PLAYER_PAGE_OVERVIEW]; window->hold_down_widgets = 0; window->event_handlers = window_player_page_events[WINDOW_PLAYER_PAGE_OVERVIEW]; window->pressed_widgets = 0; window_init_scroll_widgets(window); window_player_set_page(window, WINDOW_PLAYER_PAGE_OVERVIEW); return window; }
void window_player_open(uint8 id) { rct_window* window; int player = network_get_player_index(id); window = window_bring_to_front_by_number(WC_PLAYER, id); if (window == NULL) { window = window_create_auto_pos(240, 170, &window_player_overview_events, WC_PLAYER, WF_RESIZABLE); window->number = id; window->page = 0; window->viewport_focus_coordinates.y = 0; window->frame_no = 0; window->list_information_type = 0; window->picked_peep_frame = 0; window->highlighted_item = 0; window->min_width = 210; window->min_height = 134; window->max_width = 500; window->max_height = 450; window->no_list_items = 0; window->selected_list_item = -1; window->viewport_focus_coordinates.y = -1; window->error.var_480 = user_string_allocate(128, network_get_player_name(player)); // repurposing var_480 to store this } window->page = 0; window_invalidate(window); window->widgets = window_player_page_widgets[WINDOW_PLAYER_PAGE_OVERVIEW]; window->enabled_widgets = window_player_page_enabled_widgets[WINDOW_PLAYER_PAGE_OVERVIEW]; window->hold_down_widgets = 0; window->event_handlers = window_player_page_events[WINDOW_PLAYER_PAGE_OVERVIEW]; window->pressed_widgets = 0; window_init_scroll_widgets(window); window_player_set_page(window, WINDOW_PLAYER_PAGE_OVERVIEW); }
/** * * rct2: 0x006BA305 */ void window_banner_open(rct_windownumber number) { rct_window* w; rct_widget *viewportWidget; // Check if window is already open w = window_bring_to_front_by_number(WC_BANNER, number); if (w != NULL) return; w = window_create_auto_pos(WW, WH, &window_banner_events, WC_BANNER, WF_NO_SCROLLING); w->widgets = window_banner_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_BANNER_TEXT) | (1 << WIDX_BANNER_NO_ENTRY) | (1 << WIDX_BANNER_DEMOLISH) | (1 << WIDX_MAIN_COLOUR) | (1 << WIDX_TEXT_COLOUR_DROPDOWN) | (1 << WIDX_TEXT_COLOUR_DROPDOWN_BUTTON); w->number = number; window_init_scroll_widgets(w); sint32 view_x = gBanners[w->number].x << 5; sint32 view_y = gBanners[w->number].y << 5; rct_map_element* map_element = map_get_first_element_at(view_x / 32, view_y / 32); while(1) { if ( (map_element_get_type(map_element) == MAP_ELEMENT_TYPE_BANNER) && (map_element->properties.banner.index == w->number) ) { break; } map_element++; } sint32 view_z = map_element->base_height<<3; w->frame_no = view_z; view_x += 16; view_y += 16; // Create viewport viewportWidget = &window_banner_widgets[WIDX_VIEWPORT]; viewport_create( w, w->x + viewportWidget->left + 1, w->y + viewportWidget->top + 1, (viewportWidget->right - viewportWidget->left) - 2, (viewportWidget->bottom - viewportWidget->top) - 2, 0, view_x, view_y, view_z, 0, -1 ); w->viewport->flags = gConfigGeneral.always_show_gridlines ? VIEWPORT_FLAG_GRIDLINES : 0; window_invalidate(w); }
/** * * rct2: 0x006BA305 */ void window_banner_open(rct_windownumber number) { rct_window* w; rct_widget *viewportWidget; // Check if window is already open w = window_bring_to_front_by_number(WC_BANNER, number); if (w != NULL) return; w = window_create_auto_pos(WW, WH, (uint32*)window_banner_events, WC_BANNER, 0); w->widgets = window_banner_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_BANNER_TEXT) | (1 << WIDX_BANNER_NO_ENTRY) | (1 << WIDX_BANNER_DEMOLISH) | (1 << WIDX_MAIN_COLOR) | (1 << WIDX_TEXT_COLOR_DROPDOWN) | (1 << WIDX_TEXT_COLOR_DROPDOWN_BUTTON); w->number = number; window_init_scroll_widgets(w); w->colours[0] = 24; w->colours[1] = 24; w->colours[2] = 24; int view_x = gBanners[w->number].x << 5; int view_y = gBanners[w->number].y << 5; int ebp = ((view_y << 8) | view_x) >> 5; rct_map_element* map_element = TILE_MAP_ELEMENT_POINTER(ebp); while(1){ if (((map_element->type & MAP_ELEMENT_TYPE_MASK) == MAP_ELEMENT_TYPE_BANNER) && (map_element->properties.banner.index == w->number)) break; map_element++; } int view_z = map_element->base_height<<3; w->frame_no = view_z; view_x += 16; view_y += 16; // Create viewport viewportWidget = &window_banner_widgets[WIDX_VIEWPORT]; viewport_create( w, w->x + viewportWidget->left + 1, w->y + viewportWidget->top + 1, (viewportWidget->right - viewportWidget->left) - 2, (viewportWidget->bottom - viewportWidget->top) - 2, 0, view_x, view_y, view_z, 0, -1 ); w->viewport->flags = (RCT2_GLOBAL(RCT2_ADDRESS_CONFIG_FLAGS, uint8) & CONFIG_FLAG_ALWAYS_SHOW_GRIDLINES) ? VIEWPORT_FLAG_GRIDLINES : 0; w->flags |= WF_2; window_invalidate(w); }