/** * Tell the UI that a given map location has been updated * * This function should only be called on "legal" grids. */ void square_light_spot(struct chunk *c, int y, int x) { if (c == cave) { player->upkeep->redraw |= PR_ITEMLIST; event_signal_point(EVENT_MAP, x, y); } }
/* * Handle "p_ptr->redraw" */ void redraw_stuff(void) { size_t i; /* Redraw stuff */ if (!p_ptr->redraw) return; /* Character is not ready yet, no screen updates */ if (!character_generated) return; /* Character is in "icky" mode, no screen updates */ if (character_icky) return; /* For each listed flag, send the appropriate signal to the UI */ for (i = 0; i < N_ELEMENTS(redraw_events); i++) { const struct flag_event_trigger *hnd = &redraw_events[i]; if (p_ptr->redraw & hnd->flag) event_signal(hnd->event); } /* Then the ones that require parameters to be supplied. */ if (p_ptr->redraw & PR_MAP) { /* Mark the whole map to be redrawn */ event_signal_point(EVENT_MAP, -1, -1); } p_ptr->redraw = 0; /* * Do any plotting, etc. delayed from earlier - this set of updates * is over. */ event_signal(EVENT_END); }