From: z411 Date: Tue, 22 Mar 2022 05:05:13 +0000 (-0300) Subject: Center "vs" in centerprint title in duel X-Git-Tag: xonotic-v0.8.5~128^2~2 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=7ed3fe1d307563ec1724794a0130b3bbd941f35b;p=xonotic%2Fxonotic-data.pk3dir.git Center "vs" in centerprint title in duel --- diff --git a/qcsrc/client/announcer.qc b/qcsrc/client/announcer.qc index bbd8cd885..6a211246f 100644 --- a/qcsrc/client/announcer.qc +++ b/qcsrc/client/announcer.qc @@ -1,5 +1,6 @@ #include "announcer.qh" +#include #include #include #include @@ -36,8 +37,6 @@ void Announcer_Countdown(entity this) float countdown = (inround ? roundstarttime - time : starttime - time); float countdown_rounded = floor(0.5 + countdown); - if(time >= starttime) centerprint_ClearTitle(); - if(countdown <= 0) // countdown has finished, starttime is now { Local_Notification(MSG_CENTER, CENTER_COUNTDOWN_BEGIN); @@ -115,10 +114,11 @@ void Announcer_Gamestart() string pl1_name = (pl1 && pl1.team != NUM_SPECTATOR ? entcs_GetName(pl1.sv_entnum) : "???"); string pl2_name = (pl2 && pl2.team != NUM_SPECTATOR ? entcs_GetName(pl2.sv_entnum) : "???"); - centerprint_SetTitle(sprintf(_("^BG%s^BG vs %s"), pl1_name, pl2_name)); // Show duelers in 1v1 game mode + float offset = stringwidth(pl2_name, true, hud_fontsize) - stringwidth(pl1_name, true, hud_fontsize) - 1; + centerprint_SetTitle(sprintf("^BG%s^BG%s%s", pl1_name, _(" vs "), pl2_name), offset / 2); // Show duelers in 1v1 game mode } else - centerprint_SetTitle(strcat("^BG", MapInfo_Type_ToText(gametype))); // Show game type as title + centerprint_SetTitle(strcat("^BG", MapInfo_Type_ToText(gametype)), 0); // Show game type as title if(time + 5.0 < startTime) // if connecting to server while restart was active don't always play prepareforbattle Local_Notification(MSG_ANNCE, ANNCE_PREPARE); diff --git a/qcsrc/client/hud/panel/centerprint.qc b/qcsrc/client/hud/panel/centerprint.qc index 2d96826c8..5a18bf388 100644 --- a/qcsrc/client/hud/panel/centerprint.qc +++ b/qcsrc/client/hud/panel/centerprint.qc @@ -33,6 +33,7 @@ void HUD_CenterPrint_Export(int fh) const int CENTERPRINT_MAX_MSGS = 10; const int CENTERPRINT_MAX_ENTRIES = 50; +const float CENTERPRINT_BASE_SIZE = 1.4; const float CENTERPRINT_SPACING = 0.5; const float CENTERPRINT_TITLE_SPACING = 0.35; int cpm_index; @@ -44,8 +45,8 @@ float centerprint_expire_time[CENTERPRINT_MAX_MSGS]; int centerprint_countdown_num[CENTERPRINT_MAX_MSGS]; bool centerprint_showing; -bool centerprint_title_show; string centerprint_title; +float centerprint_title_offset; void centerprint_Add(int new_id, string strMessage, float duration, int countdown_num) { @@ -151,17 +152,17 @@ void centerprint_KillAll() void centerprint_ClearTitle() { strfree(centerprint_title); - centerprint_title_show = false; + centerprint_title_offset = 0; } -void centerprint_SetTitle(string title) +void centerprint_SetTitle(string title, float offset) { if(title != centerprint_title) { if(centerprint_title) strfree(centerprint_title); centerprint_title = strzone(CCR(title)); - centerprint_title_show = true; + centerprint_title_offset = offset; } } @@ -188,7 +189,7 @@ void HUD_CenterPrint() { if(highlightedPanel == HUD_PANEL(CENTERPRINT)) { - centerprint_SetTitle(sprintf(_("Title at %s"), seconds_tostring(hud_configure_cp_generation_time))); + centerprint_SetTitle(sprintf(_("Title at %s"), seconds_tostring(hud_configure_cp_generation_time)), 0); float r; r = random(); @@ -251,7 +252,7 @@ void HUD_CenterPrint() int i, j, k, n, g; float a = 1, sz, align, current_msg_posY = 0, msg_size; vector pos; - vector cp_fontsize = hud_fontsize * 1.4; + vector cp_fontsize = hud_fontsize * CENTERPRINT_BASE_SIZE; string ts = ""; bool all_messages_expired = true; @@ -261,14 +262,17 @@ void HUD_CenterPrint() align = bound(0, autocvar_hud_panel_centerprint_align, 1); // Show title if available - if(centerprint_title_show) { + if(centerprint_title) { vector fontsize = cp_fontsize * autocvar_hud_panel_centerprint_fontscale_title; float width = stringwidth(centerprint_title, true, fontsize); + pos.x = panel_pos.x + (panel_size.x - width) * align; + if (autocvar_hud_panel_centerprint_flip) - pos.y -= cp_fontsize.y; + pos.y -= fontsize.y; + if (centerprint_title_offset && align == 0.5) + pos.x += centerprint_title_offset * CENTERPRINT_BASE_SIZE * autocvar_hud_panel_centerprint_fontscale_title; - pos.x = panel_pos.x + (panel_size.x - width) * align; drawcolorcodedstring(pos, centerprint_title, fontsize, 1, DRAWFLAG_NORMAL); if (autocvar_hud_panel_centerprint_flip) diff --git a/qcsrc/client/hud/panel/centerprint.qh b/qcsrc/client/hud/panel/centerprint.qh index 3cb3d1c9c..b1d52cf0a 100644 --- a/qcsrc/client/hud/panel/centerprint.qh +++ b/qcsrc/client/hud/panel/centerprint.qh @@ -24,4 +24,4 @@ void centerprint_Kill(int id); void centerprint_KillAll(); void centerprint_ClearTitle(); -void centerprint_SetTitle(string title); +void centerprint_SetTitle(string title, float offset);