示例#1
0
/*
 * @brief
 */
static void Cg_DrawDmScores(const r_pixel_t start_y) {
	int16_t rows, cols;
	r_pixel_t width;
	size_t i;

	rows = (cgi.context->height - (2 * start_y)) / SCORES_ROW_HEIGHT;
	rows = rows < 3 ? 3 : rows;

	cols = (rows < (int16_t) cg_score_state.num_scores) ? 2 : 1;
	width = cols * SCORES_COL_WIDTH;

	const g_score_t *s = cg_score_state.scores;
	for (i = 0; i < cg_score_state.num_scores; i++, s++) {

		if ((int16_t) i == (cols * rows)) // screen is full
			break;

		const int16_t col = i / rows;

		const r_pixel_t x = cgi.context->width / 2 - width / 2 + col * SCORES_COL_WIDTH;
		const r_pixel_t y = start_y + (i % rows) * SCORES_ROW_HEIGHT;

		if (!Cg_DrawScore(x, y, s)) {
			i--;
		}
	}
}
示例#2
0
/*
 * Cg_DrawDmScores
 */
static void Cg_DrawDmScores(const r_pixel_t start_y) {
	short rows, cols;
	r_pixel_t width;
	size_t i;

	rows = (*cgi.h - (2 * start_y)) / SCORES_ROW_HEIGHT;
	rows = rows < 3 ? 3 : rows;

	cols = (rows < (short) cg_num_scores) ? 2 : 1;
	width = cols * SCORES_COL_WIDTH;

	for (i = 0; i < cg_num_scores; i++) {
		const player_score_t *s = &cg_scores[i];

		if ((short) i == (cols * rows)) // screen is full
			break;

		const short col = i / rows;

		const r_pixel_t x = *cgi.width / 2 - width / 2 + col * SCORES_COL_WIDTH;
		const r_pixel_t y = start_y + (i % rows) * SCORES_ROW_HEIGHT;

		Cg_DrawScore(x, y, s);
	}
}
示例#3
0
/*
 * Cg_DrawTeamScores
 */
void Cg_DrawTeamScores(const r_pixel_t start_y) {
	r_pixel_t x, y;
	short rows;
	size_t i;

	rows = (*cgi.h - (2 * start_y)) / SCORES_ROW_HEIGHT;
	rows = rows < 3 ? 3 : rows;

	x = (*cgi.width / 2) - SCORES_COL_WIDTH;
	y = start_y;

	for (i = 0; i < cg_num_scores; i++) {
		const player_score_t *s = &cg_scores[i];

		if (s->team != CS_TEAM_GOOD)
			continue;

		if ((short) i == rows)
			break;

		Cg_DrawScore(x, y, s);
		y += SCORES_ROW_HEIGHT;
	}

	x += SCORES_COL_WIDTH;
	y = start_y;

	for (i = 0; i < cg_num_scores; i++) {
		const player_score_t *s = &cg_scores[i];

		if (s->team != CS_TEAM_EVIL)
			continue;

		if ((short) i == rows)
			break;

		Cg_DrawScore(x, y, s);
		y += SCORES_ROW_HEIGHT;
	}
}
示例#4
0
/*
 * @brief
 */
static void Cg_DrawTeamScores(const r_pixel_t start_y) {
	r_pixel_t x, y;
	int16_t rows;
	size_t i;
	int32_t j = 0;

	rows = (cgi.context->height - (2 * start_y)) / SCORES_ROW_HEIGHT;
	rows = rows < 3 ? 3 : rows;

	x = (cgi.context->width / 2) - SCORES_COL_WIDTH;
	y = start_y;

	for (i = 0; i < cg_score_state.num_scores; i++) {
		const g_score_t *s = &cg_score_state.scores[i];

		if (!(s->flags & SCORE_TEAM_GOOD))
			continue;

		if ((int16_t) i == rows)
			break;

		if (Cg_DrawScore(x, y, s)) {
			y += SCORES_ROW_HEIGHT;
		}
	}

	x += SCORES_COL_WIDTH;
	y = start_y;

	for (i = 0; i < cg_score_state.num_scores; i++) {
		const g_score_t *s = &cg_score_state.scores[i];

		if (!(s->flags & SCORE_TEAM_EVIL))
			continue;

		if ((int16_t) i == rows)
			break;

		if (Cg_DrawScore(x, y, s)) {
			y += SCORES_ROW_HEIGHT;
		}
	}

	x -= SCORES_COL_WIDTH;
	y = start_y;

	for (i = 0; i < cg_score_state.num_scores; i++) {
		const g_score_t *s = &cg_score_state.scores[i];

		if (!(s->flags & SCORE_SPECTATOR))
			continue;

		if ((int16_t) i == rows)
			break;

		if (Cg_DrawScore(x, y, s)) {
			if (j++ % 2) {
				x -= SCORES_COL_WIDTH;
				y += SCORES_ROW_HEIGHT;
			} else
				x += SCORES_COL_WIDTH;
		}
	}
}