diff options
| author | Aldrik Ramaekers <aldrik@amftech.nl> | 2023-10-30 19:49:52 +0100 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrik@amftech.nl> | 2023-10-30 19:49:52 +0100 |
| commit | 7ce4768a475058f1f78dce5ebdcdd72bfc05776f (patch) | |
| tree | 0ecb96eb4bbee4d70fa50373e6d6b2fb671baafd | |
| parent | c0d1f750783f00fb82b6ec2cce11e0ce423acf02 (diff) | |
highlight player in leaderboard
| -rw-r--r-- | build/zombies.exe | bin | 1990707 -> 1991219 bytes | |||
| -rw-r--r-- | include/players.h | 2 | ||||
| -rw-r--r-- | src/overlay.c | 11 |
3 files changed, 9 insertions, 4 deletions
diff --git a/build/zombies.exe b/build/zombies.exe Binary files differindex 2bf9d92..cc51d01 100644 --- a/build/zombies.exe +++ b/build/zombies.exe 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); } } } |
