Ejemplo n.º 1
0
// Free up a window reservation
void CG_windowFree(cg_window_t *w)
{
	int i, j;
	cg_windowHandler_t *wh = &cg.winHandler;

	if(w == NULL) return;

	if(w->effects >= WFX_FADEIN && w->state != WSTATE_OFF && w->inuse == qtrue) {
		w->state = WSTATE_SHUTDOWN;
		w->time = trap_Milliseconds();
		return;
	}

	for(i=0; i<wh->numActiveWindows; i++) {
		if(w == &wh->window[wh->activeWindows[i]]) {
			for(j=i; j<wh->numActiveWindows; j++) {
				if(j+1 < wh->numActiveWindows) {
					wh->activeWindows[j] = wh->activeWindows[j+1];
				}
			}

			w->id = WID_NONE;
			w->inuse = qfalse;
			w->state = WSTATE_OFF;

			CG_removeStrings(w);

			wh->numActiveWindows--;

			break;
		}
	}
}
Ejemplo n.º 2
0
// Free up a window reservation
void CG_windowFree(cg_window_t *w) {
    int                i, j;
    cg_windowHandler_t *wh = &cg.winHandler;

    if (w == NULL) {
        return;
    }

    if (w->effects >= WFX_FADEIN && w->state != WSTATE_OFF && w->inuse == qtrue) {
        w->state = WSTATE_SHUTDOWN;
        w->time  = trap_Milliseconds();
        return;
    }

    for (i = 0; i < wh->numActiveWindows; ++i) {
        if (w == &wh->window[wh->activeWindows[i]]) {
            for (j = i; j < wh->numActiveWindows; ++j) {
                if (j + 1 < wh->numActiveWindows) {
                    // Nico, #fixme: GCC 4.8.2 with optimization says
                    // warning: array subscript is above array bounds
                    wh->activeWindows[j] = wh->activeWindows[j + 1];
                }
            }

            w->id    = WID_NONE;
            w->inuse = qfalse;
            w->state = WSTATE_OFF;

            CG_removeStrings(w);

            wh->numActiveWindows--;

            break;
        }
    }
}