X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_remote.c;h=43c56079cd436123f39f638e8f4706aa7e6581f4;hb=refs%2Fheads%2Fmaster;hp=f829ec0512de5585cc54a5a21c2feb1e53af0439;hpb=5f6a4f9df6c8accc89f1920bfe9ace3cbac4c4b6;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_remote.c b/player_remote.c index f829ec0..43c5607 100644 --- a/player_remote.c +++ b/player_remote.c @@ -148,6 +148,7 @@ void player_remote_rx_200_300( SteamNetworkingMessage_t *msg ) } netmsg_playerframe *frame = msg->m_pData; + if( frame->client >= vg_list_size(netplayers.list) ){ vg_error( "inetmsg_playerframe: player index out of range\n" ); return; @@ -441,6 +442,12 @@ void remote_player_network_imgui( m4x4f pv ) ui_rect panel = { (vg.window_x / 2) - 200, 0, 400, 600 }; ui_fill( panel, (ui_colour(k_ui_bg)&0x00ffffff)|0x50000000 ); + ui_font_face( &vgf_default_title ); + ui_info( panel, "Network" ); + ui_font_face( &vgf_default_large ); + ui_info( panel, "Status" ); + ui_font_face( &vgf_default_small ); + char buf[512]; const char *netstatus = "PROGRAMMING ERROR"; @@ -686,8 +693,11 @@ void render_remote_players( world_instance *world, vg_camera *cam ) struct network_player *player = &netplayers.list[i]; if( !player->active || player->isblocked ) continue; if( player->active_world != world ) continue; + +#if 0 if( !player->isfriend && (world-world_static.instances == k_world_purpose_hub)) continue; +#endif draw_list[draw_list_count ++] = i; @@ -855,13 +865,14 @@ static int player_tag_position( m4x4f pv, v3f root_co, ui_point out_point ){ /* * Draw chat box relative to the root tag position on the screen */ -static void chat_box( ui_point tag_root, f64 time, const char *message ){ +static void chat_box( ui_point tag_root, f64 time, const char *message ) +{ if( (vg.time_real - time) > 15.0 ) return; ui_rect wr; wr[2] = ui_text_line_width( message ) + 8; - wr[3] = vg_ui.font->glyph_height + 2; + wr[3] = vg_ui.font->ch + 2; wr[0] = tag_root[0]-(wr[2]/2); wr[1] = tag_root[1] - wr[3] - 8; @@ -873,8 +884,9 @@ static void chat_box( ui_point tag_root, f64 time, const char *message ){ * Draw full imgui for remote player */ static void remote_player_nametag( ui_point tag_root, - struct network_player *player ){ - vg_ui.font = &vg_ui_font_big; + struct network_player *player ) +{ + ui_font_face( &vgf_default_large ); ui_rect wr; wr[2] = VG_MAX( ui_text_line_width( player->username ), 140 ) + 8; @@ -885,7 +897,7 @@ static void remote_player_nametag( ui_point tag_root, ui_fill( wr, ui_opacity( ui_colour(k_ui_bg), 0.23f ) ); ui_text( wr, player->username, 1, k_ui_align_middle_center, 0 ); - vg_ui.font = &vg_ui_font_small; + ui_font_face( &vgf_default_small ); /* medals */ int cols = 0; @@ -903,10 +915,12 @@ static void remote_player_nametag( ui_point tag_root, for( int i=0; i<3; i ++ ){ if( player->medals[i] ){ ui_rect col = { wr[0] + (f32)cols*w, wr[1] + wr[3], w, - vg_ui.font->glyph_height }; + vg_ui.font->ch }; vg_strnull( &str, buf, 32 ); +#if 0 vg_strcatch( &str, (char)k_SRglyph_vg_circle ); +#endif vg_strcati32( &str, player->medals[i] ); ui_text( col, buf, 1, k_ui_align_middle_center, @@ -963,9 +977,9 @@ static void remote_player_gui_info( ui_rect box, else fg = ui_colour( in_world? k_ui_fg: k_ui_fg+4 ); - vg_ui.font = &vg_ui_font_big; + ui_font_face( &vgf_default_large ); ui_text( top, username, 1, k_ui_align_middle_center, fg ); - vg_ui.font = &vg_ui_font_small; + ui_font_face( &vgf_default_small ); ui_text( bottom, activity, 1, k_ui_align_middle_center, fg ); } @@ -983,10 +997,10 @@ void remote_players_imgui_lobby(void) ui_px y = 50, width = 200, height = 42, gap = 2, x = vg.window_x - width; - vg_ui.font = &vg_ui_font_big; + ui_font_face( &vgf_default_large ); ui_text( (ui_rect){ x, 0, width, height }, "In World", 1, k_ui_align_middle_center, 0 ); - vg_ui.font = &vg_ui_font_small; + ui_font_face( &vgf_default_small ); ui_rect us = { x, y, width, height };