summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrik@amftech.nl>2023-11-05 14:23:27 +0100
committerAldrik Ramaekers <aldrik@amftech.nl>2023-11-05 14:23:27 +0100
commit8777713844f81a7ee171ddbd4e910d83122c9f74 (patch)
tree5e7bafb5c93e07e34d6b9d22f1be1781933623f4 /src
parent278bdb59ef744dd51ada14c99de22fcb41c1abea (diff)
player names
Diffstat (limited to 'src')
-rw-r--r--src/overlay.c2
-rw-r--r--src/players.c94
2 files changed, 70 insertions, 26 deletions
diff --git a/src/overlay.c b/src/overlay.c
index 485373b..e1762cd 100644
--- a/src/overlay.c
+++ b/src/overlay.c
@@ -96,7 +96,7 @@ static void draw_leaderboard(platform_window* window) {
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, players[i].id == player_id, players[i].connection_state == DISCONNECTED);
+ get_player_name_by_player_index(i), kills, deaths, ping, players[i].id == player_id, players[i].connection_state == DISCONNECTED);
}
}
}
diff --git a/src/players.c b/src/players.c
index 9e58afa..5f4b19e 100644
--- a/src/players.c
+++ b/src/players.c
@@ -374,10 +374,77 @@ static void draw_player_bullet_cone(platform_window* window, player* p) {
}
}
-void draw_players(platform_window* window) {
+char* get_player_name_by_player_index(int index) {
+ char* names[] = {
+ "Everett",
+ "Noble",
+ "Parks",
+ "Hogan",
+ "Blanchard",
+ "Pittman",
+ "Murillo",
+ "Rodgers",
+ "Lang",
+ "Downs",
+ };
+ return names[index];
+}
+
+color get_color_tint_by_player_index(int index) {
+ color colors[] = {
+ rgb(255,0,0),
+ rgb(0,255,0),
+ rgb(0,0,255),
+ rgb(255,255,0),
+ rgb(255,0,255),
+ rgb(0,255,255),
+ rgb(128,0,0),
+ rgb(0,128,0),
+ rgb(0,0,128),
+ rgb(128,0,128),
+ };
+ return colors[index];
+}
+
+void draw_player(platform_window* window, player* p, int index) {
float size = get_player_size_in_tile();
map_info info = get_map_info(window);
+ char* name = get_player_name_by_player_index(index);
+
+ box box = get_render_box_of_square(window, (vec3f){p->playerx, p->playery, p->height}, (vec3f){size,size,1.0f});
+ sprite_frame frame = sprite_get_frame(&p->sprite);
+ renderer->render_image_quad_partial_tint(img_player_running,
+ box.tl_u.x, box.tl_u.y,
+ box.bl_d.x, box.bl_d.y,
+ box.br_d.x, box.br_d.y,
+ box.tr_u.x, box.tr_u.y,
+ frame.tl, frame.tr, frame.bl, frame.br, get_color_tint_by_player_index(index));
+
+ float player_render_x = box.tl_u.x;
+ float player_render_y = box.tl_u.y;
+
+ int name_x = player_render_x + (info.tile_width*size)/2 - (renderer->calculate_text_width(fnt_20, name))/2;
+ int name_y = player_render_y - fnt_20->px_h - 5;
+ renderer->render_text(fnt_20, name_x+1, name_y+1, name, rgba(0,0,0,120));
+ renderer->render_text(fnt_20, name_x, name_y, name, rgb(255,255,255));
+
+ p->gun_height = p->height+0.5;
+
+ if (p->connection_state == DISCONNECTED) {
+ float icon_h = (box.tr_u.x - box.tl_u.x)/2;
+ renderer->render_image(img_disconnected, box.tl_u.x + (icon_h/3), box.tr_u.y - icon_h, icon_h, icon_h);
+ }
+
+ if (p->id == player_id) {
+ _next_camera_pos.x = -(window->width / 2) + player_render_x;
+ _next_camera_pos.y = -(window->height / 2) + player_render_y;
+ }
+}
+
+void draw_players(platform_window* window) {
+ float size = get_player_size_in_tile();
+
for (int i = 0; i < MAX_PLAYERS; i++) {
if (!players[i].active) continue;
@@ -387,29 +454,6 @@ void draw_players(platform_window* window) {
players[i].height = height;
draw_player_bullet_cone(window, &players[i]);
-
- box box = get_render_box_of_square(window, (vec3f){players[i].playerx, players[i].playery, height}, (vec3f){size,size,1.0f});
- sprite_frame frame = sprite_get_frame(&players[i].sprite);
- renderer->render_image_quad_partial(img_player_running,
- box.tl_u.x, box.tl_u.y,
- box.bl_d.x, box.bl_d.y,
- box.br_d.x, box.br_d.y,
- box.tr_u.x, box.tr_u.y,
- frame.tl, frame.tr, frame.bl, frame.br);
-
- float player_render_x = box.tl_u.x;
- float player_render_y = box.tl_u.y;
-
- players[i].gun_height = height+0.5;
-
- if (players[i].connection_state == DISCONNECTED) {
- float icon_h = (box.tr_u.x - box.tl_u.x)/2;
- renderer->render_image(img_disconnected, box.tl_u.x + (icon_h/3), box.tr_u.y - icon_h, icon_h, icon_h);
- }
-
- if (players[i].id == player_id) {
- _next_camera_pos.x = -(window->width / 2) + player_render_x;
- _next_camera_pos.y = -(window->height / 2) + player_render_y;
- }
+ draw_player(window, &players[i], i);
}
}