MCPcopy Create free account
hub / github.com/NetHack/NetHack / mar_destroy_nhwindow

Function mar_destroy_nhwindow

outdated/win/gem/wingem1.c:2539–2589  ·  view source on GitHub ↗
(window)

Source from the content-addressed store, hash-verified

2537/************************* destroy_window *******************************/
2538
2539void
2540mar_destroy_nhwindow(window)
2541winid window;
2542{
2543 int i;
2544
2545 switch (Gem_nhwindow[window].gw_type) {
2546 case NHW_TEXT:
2547 for (i = 0; i < Anz_text_lines; i++)
2548 free(text_lines[i]);
2549 null_free(text_lines);
2550 Anz_text_lines = 0;
2551 use_rip = FALSE;
2552 break;
2553 case NHW_MENU:
2554 Gem_start_menu(window, MENU_BEHAVE_STANDARD); /* delete invent_list */
2555 test_free(Menu_title);
2556 break;
2557 case 0: /* No window available, probably an error message? */
2558 break;
2559 default:
2560 close_window(Gem_nhwindow[window].gw_window, 0);
2561 break;
2562 }
2563 Gem_nhwindow[window].gw_window = NULL;
2564 Gem_nhwindow[window].gw_type = 0;
2565 Gem_nhwindow[window].gw_dirty = FALSE;
2566
2567 if (window == WIN_MAP) {
2568 for (i = 0; i < ROWNO; i++) {
2569 free(map_glyphs[i]);
2570 }
2571 null_free(map_glyphs);
2572 WIN_MAP = WIN_ERR;
2573 }
2574 if (window == WIN_STATUS) {
2575 for (i = 0; i < 2; i++)
2576 free(status_line[i]);
2577 null_free(status_line);
2578 WIN_STATUS = WIN_ERR;
2579 }
2580 if (window == WIN_MESSAGE) {
2581 for (i = 0; i < msg_anz; i++)
2582 free(message_line[i]);
2583 null_free(message_line);
2584 null_free(message_age);
2585 WIN_MESSAGE = WIN_ERR;
2586 }
2587 if (window == WIN_INVEN)
2588 WIN_INVEN = WIN_ERR;
2589}
2590
2591/************************* nh_poskey *******************************/
2592

Callers 2

Gem_destroy_nhwindowFunction · 0.85
mar_exit_nhwindowsFunction · 0.85

Calls 1

Gem_start_menuFunction · 0.85

Tested by

no test coverage detected