summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrik@amftech.nl>2023-10-30 19:49:52 +0100
committerAldrik Ramaekers <aldrik@amftech.nl>2023-10-30 19:49:52 +0100
commit7ce4768a475058f1f78dce5ebdcdd72bfc05776f (patch)
tree0ecb96eb4bbee4d70fa50373e6d6b2fb671baafd
parentc0d1f750783f00fb82b6ec2cce11e0ce423acf02 (diff)
highlight player in leaderboard
-rw-r--r--build/zombies.exebin1990707 -> 1991219 bytes
-rw-r--r--include/players.h2
-rw-r--r--src/overlay.c11
3 files changed, 9 insertions, 4 deletions
diff --git a/build/zombies.exe b/build/zombies.exe
index 2bf9d92..cc51d01 100644
--- a/build/zombies.exe
+++ b/build/zombies.exe
Binary files differ
diff --git a/include/players.h b/include/players.h
index d6587db..99b230f 100644
--- a/include/players.h
+++ b/include/players.h
@@ -53,7 +53,7 @@ typedef struct t_player {
#include "protocol.h"
-u32 player_id = -1;
+u32 player_id = -1; // Session id on current server.
camera _next_camera_pos;
diff --git a/src/overlay.c b/src/overlay.c
index 4894760..d4c99ff 100644
--- a/src/overlay.c
+++ b/src/overlay.c
@@ -23,7 +23,12 @@ static void draw_gun_info(platform_window* window) {
renderer->render_text(fnt_20, (int)_global_camera.x + x, (int)_global_camera.y + y, ammo_txt, rgb(255,255,255));
}
-static void draw_leaderboard_entry(int x, int y, int w, int h, char* name, char* kills, char* deaths, char* ping) {
+static void draw_leaderboard_entry(int x, int y, int w, int h, char* name, char* kills, char* deaths, char* ping, bool highlighted) {
+
+ if (highlighted) {
+ renderer->render_rectangle(x, y, w, h, rgba(255,0,0,50));
+ }
+
int width_for_name = w / 2;
int width_per_entry = (w-width_for_name)/3;
int pad_y = (h-fnt_20->px_h)/2;
@@ -50,14 +55,14 @@ static void draw_leaderboard(platform_window* window) {
renderer->render_rectangle(x, y, actual_width, height_total, rgba(0,0,0,120));
- draw_leaderboard_entry(x, y, actual_width, height_per_row, "Player", "Kills", "Deaths", "Ping");
+ draw_leaderboard_entry(x, y, actual_width, height_per_row, "Player", "Kills", "Deaths", "Ping", false);
for (int i = 0; i < MAX_PLAYERS; i++) {
if (!players[i].active) continue;
char kills[30]; snprintf(kills, 30, "%d", players[i].kills);
char deaths[30]; snprintf(deaths, 30, "%d", 0);
char ping[30]; snprintf(ping, 30, "%d", players[i].ping);
- draw_leaderboard_entry(x, y + ((i+1)*height_per_row), actual_width, height_per_row, players[i].client.ip, kills, deaths, ping);
+ draw_leaderboard_entry(x, y + ((i+1)*height_per_row), actual_width, height_per_row, players[i].client.ip, kills, deaths, ping, players[i].id == player_id);
}
}
}