Skip to content

Commit 43b4816

Browse files
committed
Add Tee trails feature from tclient
1 parent 3d8c9da commit 43b4816

7 files changed

Lines changed: 502 additions & 3 deletions

File tree

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2533,6 +2533,8 @@ if(CLIENT)
25332533
components/tclient/skinprofiles.h
25342534
components/tclient/statusbar.cpp
25352535
components/tclient/statusbar.h
2536+
components/tclient/trails.cpp
2537+
components/tclient/trails.h
25362538
components/tclient/warlist.cpp
25372539
components/tclient/warlist.h
25382540
components/tooltips.cpp

src/engine/shared/config_variables_entity.h

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ MACRO_CONFIG_COL(TcBgDrawColor, ec_bg_draw_color, 11893936, CFGFLAG_CLIENT | CFG
373373
MACRO_CONFIG_INT(TcBgDrawAutoSaveLoad, ec_bg_draw_auto_save_load, 0, 0, 1, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Automatically save and load background drawings")
374374

375375
// Timer
376-
MACRO_CONFIG_INT(TcShowLocalTimeSeconds, tc_show_local_time_seconds, 0, 0, 1, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Show local time in seconds")
376+
MACRO_CONFIG_INT(TcShowLocalTimeSeconds, ec_show_local_time_seconds, 0, 0, 1, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Show local time in seconds")
377377

378378
// Weapon in Freeze
379379
MACRO_CONFIG_INT(ClRenderWeaponsInFreeze, ec_render_weapons_in_freeze, 0, 0, 1, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Renders players' weapons while frozen")
@@ -388,6 +388,18 @@ MACRO_CONFIG_INT(EcVolleyBallBetterBall, ec_volleyball_better_ball, 1, 0, 2, CFG
388388
MACRO_CONFIG_STR(EcVolleyBallBetterBallSkin, ec_volleyball_better_ball_skin, 24, "beachball", CFGFLAG_CLIENT | CFGFLAG_SAVE | CFGFLAG_INSENSITIVE, "Player skin to use for better volleyball ball")
389389
MACRO_CONFIG_INT(EcVolleyBallSpinSpeed, ec_volleyball_spin_speed, 50, 0, 100, CFGFLAG_CLIENT | CFGFLAG_SAVE, "How fast the volleyball spins")
390390

391+
// Trails
392+
MACRO_CONFIG_INT(EcTeeTrail, ec_tee_trail, 0, 0, 1, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Enable Tee trails")
393+
MACRO_CONFIG_INT(EcTeeTrailOthers, ec_tee_trail_others, 1, 0, 1, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Show tee trails for other players")
394+
MACRO_CONFIG_INT(EcTeeTrailWidth, ec_tee_trail_width, 15, 0, 20, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Tee trail width")
395+
MACRO_CONFIG_INT(EcTeeTrailLength, ec_tee_trail_length, 25, 5, 200, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Tee trail length")
396+
MACRO_CONFIG_INT(EcTeeTrailAlpha, ec_tee_trail_alpha, 80, 1, 100, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Tee trail alpha")
397+
MACRO_CONFIG_COL(EcTeeTrailColor, ec_tee_trail_color, 16777, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Tee trail color")
398+
MACRO_CONFIG_INT(EcTeeTrailTaper, ec_tee_trail_taper, 1, 0, 1, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Taper tee trail over length")
399+
MACRO_CONFIG_INT(EcTeeTrailFade, ec_tee_trail_fade, 0, 0, 1, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Fade trail alpha over length")
400+
MACRO_CONFIG_INT(EcTeeTrailColorMode, ec_tee_trail_color_mode, 1, 1, 5, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Tee trail color mode (1: Solid color, 2: Current Tee color, 3: Rainbow, 4: Color based on Tee speed, 5: Random)")
401+
402+
391403
// Custom variables from my server for the editor
392404
// You can use these if you get my server from https://github.com/FoxNet-DDNet/FoxNet
393405

src/game/client/components/entity/menus_entity.cpp

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2788,7 +2788,7 @@ void CMenus::RenderSettingsVisual(CUIRect MainView)
27882788
CUIRect Label, Button;
27892789

27902790
// left side in settings menu
2791-
CUIRect Miscellaneous, Cosmetics, ServerRainbow, TileOutlines, DiscordRpc, ChatBubbles, PlayerIndicator, BgDraw, SweatMode;
2791+
CUIRect Miscellaneous, Cosmetics, Trails, ServerRainbow, TileOutlines, DiscordRpc, ChatBubbles, PlayerIndicator, BgDraw, SweatMode;
27922792
MainView.VSplitMid(&Cosmetics, &Miscellaneous);
27932793

27942794
/* Cosmetics */
@@ -2797,7 +2797,7 @@ void CMenus::RenderSettingsVisual(CUIRect MainView)
27972797
static float Offset = 0.0f;
27982798

27992799
Cosmetics.VMargin(5.0f, &Cosmetics);
2800-
Cosmetics.HSplitTop(235.0f + Offset, &Cosmetics, &ServerRainbow);
2800+
Cosmetics.HSplitTop(235.0f + Offset, &Cosmetics, &Trails);
28012801
if(s_ScrollRegion.AddRect(Cosmetics))
28022802
{
28032803
Offset = 0.0f;
@@ -2906,6 +2906,58 @@ void CMenus::RenderSettingsVisual(CUIRect MainView)
29062906
}
29072907
}
29082908

2909+
/* Trails */
2910+
{
2911+
static float Offset = 0.0f;
2912+
Trails.HSplitTop(Margin, nullptr, &Trails);
2913+
Trails.HSplitTop(205.0f + Offset, &Trails, &ServerRainbow);
2914+
if(s_ScrollRegion.AddRect(Trails))
2915+
{
2916+
Offset = 0.0f;
2917+
Trails.Draw(BackgroundColor, IGraphics::CORNER_ALL, CornerRoundness);
2918+
Trails.VMargin(Margin, &Trails);
2919+
2920+
Trails.HSplitTop(HeaderHeight, &Button, &Trails);
2921+
Ui()->DoLabel(&Button, Localize("Tee Trails"), HeaderSize, HeaderAlignment);
2922+
2923+
DoButton_CheckBoxAutoVMarginAndSet(&g_Config.m_EcTeeTrail, Localize("Enable tee trails"), &g_Config.m_EcTeeTrail, &Trails, LineSize);
2924+
DoButton_CheckBoxAutoVMarginAndSet(&g_Config.m_EcTeeTrailOthers, Localize("Show other tees' trails"), &g_Config.m_EcTeeTrailOthers, &Trails, LineSize);
2925+
DoButton_CheckBoxAutoVMarginAndSet(&g_Config.m_EcTeeTrailFade, Localize("Fade trail alpha"), &g_Config.m_EcTeeTrailFade, &Trails, LineSize);
2926+
DoButton_CheckBoxAutoVMarginAndSet(&g_Config.m_EcTeeTrailTaper, Localize("Taper trail width"), &g_Config.m_EcTeeTrailTaper, &Trails, LineSize);
2927+
2928+
Trails.HSplitTop(MarginExtraSmall, nullptr, &Trails);
2929+
std::vector<const char *> vTrailDropDownNames;
2930+
vTrailDropDownNames = {Localize("Solid"), Localize("Tee"), Localize("Rainbow"), Localize("Speed")};
2931+
static CUi::SDropDownState s_TrailDropDownState;
2932+
static CScrollRegion s_TrailDropDownScrollRegion;
2933+
s_TrailDropDownState.m_SelectionPopupContext.m_pScrollRegion = &s_TrailDropDownScrollRegion;
2934+
int TrailSelectedOld = g_Config.m_EcTeeTrailColorMode - 1;
2935+
CUIRect TrailDropDownRect;
2936+
Trails.HSplitTop(LineSize, &TrailDropDownRect, &Trails);
2937+
const int TrailSelectedNew = Ui()->DoDropDown(&TrailDropDownRect, TrailSelectedOld, vTrailDropDownNames.data(), vTrailDropDownNames.size(), s_TrailDropDownState);
2938+
if(TrailSelectedOld != TrailSelectedNew)
2939+
{
2940+
g_Config.m_EcTeeTrailColorMode = TrailSelectedNew + 1;
2941+
}
2942+
Trails.HSplitTop(MarginSmall, nullptr, &Trails);
2943+
2944+
static CButtonContainer s_TeeTrailColor;
2945+
if(g_Config.m_EcTeeTrailColorMode == CTrails::COLORMODE_SOLID)
2946+
{
2947+
DoLine_ColorPicker(&s_TeeTrailColor, ColorPickerLineSize, ColorPickerLabelSize, ColorPickerLineSpacing, &Trails, Localize("Tee trail color"), &g_Config.m_EcTeeTrailColor, ColorRGBA(1.0f, 1.0f, 1.0f), false);
2948+
Offset = ColorPickerLineSize + ColorPickerLineSpacing;
2949+
}
2950+
2951+
Trails.HSplitTop(LineSize, &Button, &Trails);
2952+
Ui()->DoScrollbarOption(&g_Config.m_EcTeeTrailWidth, &g_Config.m_EcTeeTrailWidth, &Button, Localize("Trail width"), 0, 20);
2953+
Trails.HSplitTop(LineSize, &Button, &Trails);
2954+
Ui()->DoScrollbarOption(&g_Config.m_EcTeeTrailLength, &g_Config.m_EcTeeTrailLength, &Button, Localize("Trail length"), 0, 200);
2955+
Trails.HSplitTop(LineSize, &Button, &Trails);
2956+
Ui()->DoScrollbarOption(&g_Config.m_EcTeeTrailAlpha, &g_Config.m_EcTeeTrailAlpha, &Button, Localize("Trail alpha"), 0, 100);
2957+
2958+
}
2959+
}
2960+
29092961
/* Server-Side Rainbow */
29102962
{
29112963
ServerRainbow.HSplitTop(Margin, nullptr, &ServerRainbow);

0 commit comments

Comments
 (0)