/* * @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--; } } }
/* * 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); } }
/* * 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; } }
/* * @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; } } }