Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
181 changes: 180 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -331,4 +331,183 @@ ASALocalRun/
.mfractor/

# Local History for Visual Studio
.localhistory/
.localhistory/
/cmake-build-claude/_deps/googletest-build/googlemock/ALL_BUILD.vcxproj
/cmake-build-claude/_deps/googletest-build/googletest/ALL_BUILD.vcxproj
/cmake-build-claude/_deps/googletest-build/ALL_BUILD.vcxproj
/cmake-build-claude/_deps/googletest-subbuild/ALL_BUILD.vcxproj
/cmake-build-claude/ALL_BUILD.vcxproj
/cmake-build-claude/_deps/googletest-build/googlemock/ALL_BUILD.vcxproj.filters
/cmake-build-claude/_deps/googletest-build/googletest/ALL_BUILD.vcxproj.filters
/cmake-build-claude/_deps/googletest-build/ALL_BUILD.vcxproj.filters
/cmake-build-claude/_deps/googletest-subbuild/ALL_BUILD.vcxproj.filters
/cmake-build-claude/ALL_BUILD.vcxproj.filters
/build-release.ps1
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/cmake.check_cache
/cmake-build-claude/CMakeFiles/cmake.check_cache
/cmake-build-claude/_deps/googletest-build/googlemock/cmake_install.cmake
/cmake-build-claude/_deps/googletest-build/googletest/cmake_install.cmake
/cmake-build-claude/_deps/googletest-build/cmake_install.cmake
/cmake-build-claude/_deps/googletest-subbuild/cmake_install.cmake
/cmake-build-claude/Source/cmake_install.cmake
/cmake-build-claude/Tests/FunctionalTests/cmake_install.cmake
/cmake-build-claude/Tests/cmake_install.cmake
/cmake-build-claude/cmake_install.cmake
/cmake-build-claude/Tests/FunctionalTests/cmake_test_discovery_bb91720271.json
/cmake-build-claude/CMakeFiles/4.2.2/CMakeASM_MASMCompiler.cmake
/cmake-build-claude/_deps/googletest-subbuild/CMakeCache.txt
/cmake-build-claude/CMakeCache.txt
/cmake-build-claude/CMakeFiles/4.2.2/CMakeCCompiler.cmake
/cmake-build-claude/CMakeFiles/4.2.2/CompilerIdC/CMakeCCompilerId.c
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/CMakeConfigureLog.yaml
/cmake-build-claude/CMakeFiles/CMakeConfigureLog.yaml
/cmake-build-claude/CMakeFiles/4.2.2/CMakeCXXCompiler.cmake
/cmake-build-claude/CMakeFiles/4.2.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
/cmake-build-claude/CMakeFiles/4.2.2/CMakeDetermineCompilerABI_C.bin
/cmake-build-claude/CMakeFiles/4.2.2/CMakeDetermineCompilerABI_CXX.bin
/cmake-build-claude/_deps/googletest-subbuild/CMakeLists.txt
/cmake-build-claude/CMakeFiles/4.2.2/CMakeRCCompiler.cmake
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/4.2.2/CMakeSystem.cmake
/cmake-build-claude/CMakeFiles/4.2.2/CMakeSystem.cmake
/cmake-build-claude/CMakeFiles/4.2.2/CompilerIdC/CompilerIdC.exe
/cmake-build-claude/CMakeFiles/4.2.2/CompilerIdC/CompilerIdC.vcxproj
/cmake-build-claude/CMakeFiles/4.2.2/CompilerIdCXX/CompilerIdCXX.exe
/cmake-build-claude/CMakeFiles/4.2.2/CompilerIdCXX/CompilerIdCXX.vcxproj
/cmake-build-claude/Testing/Temporary/CTestCostData.txt
/cmake-build-claude/_deps/googletest-build/googlemock/CTestTestfile.cmake
/cmake-build-claude/_deps/googletest-build/googletest/CTestTestfile.cmake
/cmake-build-claude/_deps/googletest-build/CTestTestfile.cmake
/cmake-build-claude/Tests/FunctionalTests/CTestTestfile.cmake
/cmake-build-claude/Tests/CTestTestfile.cmake
/cmake-build-claude/CTestTestfile.cmake
/cmake-build-claude/Tests/FunctionalTests/FunctionalTests.vcxproj
/cmake-build-claude/Tests/FunctionalTests/FunctionalTests.vcxproj.filters
/cmake-build-claude/Tests/FunctionalTests/FunctionalTests[1]_include.cmake
/cmake-build-claude/Tests/FunctionalTests/FunctionalTests[1]_tests.cmake
/cmake-build-claude/_deps/googletest-build/CMakeFiles/generate.stamp
/cmake-build-claude/_deps/googletest-build/googlemock/CMakeFiles/generate.stamp
/cmake-build-claude/_deps/googletest-build/googletest/CMakeFiles/generate.stamp
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/generate.stamp
/cmake-build-claude/CMakeFiles/generate.stamp
/cmake-build-claude/Source/CMakeFiles/generate.stamp
/cmake-build-claude/Tests/CMakeFiles/generate.stamp
/cmake-build-claude/Tests/FunctionalTests/CMakeFiles/generate.stamp
/cmake-build-claude/_deps/googletest-build/CMakeFiles/generate.stamp.depend
/cmake-build-claude/_deps/googletest-build/googlemock/CMakeFiles/generate.stamp.depend
/cmake-build-claude/_deps/googletest-build/googletest/CMakeFiles/generate.stamp.depend
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/generate.stamp.depend
/cmake-build-claude/CMakeFiles/generate.stamp.depend
/cmake-build-claude/Source/CMakeFiles/generate.stamp.depend
/cmake-build-claude/Tests/CMakeFiles/generate.stamp.depend
/cmake-build-claude/Tests/FunctionalTests/CMakeFiles/generate.stamp.depend
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/generate.stamp.list
/cmake-build-claude/CMakeFiles/generate.stamp.list
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/3ce4ee0848a1bcad7d50e07705b14f56/generate.stamp.rule
/cmake-build-claude/CMakeFiles/090db5696957d7344b1533f722519f07/generate.stamp.rule
/cmake-build-claude/_deps/googletest-build/googletest/generated/gmock.pc
/cmake-build-claude/_deps/googletest-build/googlemock/gmock.sln
/cmake-build-claude/_deps/googletest-build/googlemock/gmock.vcxproj
/cmake-build-claude/_deps/googletest-build/googlemock/gmock.vcxproj.filters
/cmake-build-claude/_deps/googletest-build/googletest/generated/gmock_main.pc
/cmake-build-claude/_deps/googletest-build/googlemock/gmock_main.vcxproj
/cmake-build-claude/_deps/googletest-build/googlemock/gmock_main.vcxproj.filters
/cmake-build-claude/_deps/googletest-build/googletest-distribution.sln
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/3ce4ee0848a1bcad7d50e07705b14f56/googletest-populate.rule
/cmake-build-claude/_deps/googletest-subbuild/googletest-populate.sln
/cmake-build-claude/_deps/googletest-subbuild/googletest-populate.vcxproj
/cmake-build-claude/_deps/googletest-subbuild/googletest-populate.vcxproj.filters
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/f0f5af92941f7b8dbb7badbb3a544d12/googletest-populate-build.rule
/cmake-build-claude/_deps/googletest-subbuild/googletest-populate-prefix/tmp/googletest-populate-cfgcmd.txt
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/eb063c0671a5c439a2f6f76ca2d388b2/googletest-populate-complete.rule
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/f0f5af92941f7b8dbb7badbb3a544d12/googletest-populate-configure.rule
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/f0f5af92941f7b8dbb7badbb3a544d12/googletest-populate-download.rule
/cmake-build-claude/_deps/googletest-subbuild/googletest-populate-prefix/tmp/googletest-populate-gitclone.cmake
/cmake-build-claude/_deps/googletest-subbuild/googletest-populate-prefix/src/googletest-populate-stamp/googletest-populate-gitclone-lastrun.txt
/cmake-build-claude/_deps/googletest-subbuild/googletest-populate-prefix/src/googletest-populate-stamp/googletest-populate-gitinfo.txt
/cmake-build-claude/_deps/googletest-subbuild/googletest-populate-prefix/tmp/googletest-populate-gitupdate.cmake
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/f0f5af92941f7b8dbb7badbb3a544d12/googletest-populate-install.rule
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/f0f5af92941f7b8dbb7badbb3a544d12/googletest-populate-mkdir.rule
/cmake-build-claude/_deps/googletest-subbuild/googletest-populate-prefix/tmp/googletest-populate-mkdirs.cmake
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/f0f5af92941f7b8dbb7badbb3a544d12/googletest-populate-patch.rule
/cmake-build-claude/_deps/googletest-subbuild/googletest-populate-prefix/src/googletest-populate-stamp/googletest-populate-patch-info.txt
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/f0f5af92941f7b8dbb7badbb3a544d12/googletest-populate-test.rule
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/f0f5af92941f7b8dbb7badbb3a544d12/googletest-populate-update.rule
/cmake-build-claude/_deps/googletest-subbuild/googletest-populate-prefix/src/googletest-populate-stamp/googletest-populate-update-info.txt
/cmake-build-claude/_deps/googletest-build/googletest/generated/gtest.pc
/cmake-build-claude/_deps/googletest-build/googletest/gtest.sln
/cmake-build-claude/_deps/googletest-build/googletest/gtest.vcxproj
/cmake-build-claude/_deps/googletest-build/googletest/gtest.vcxproj.filters
/cmake-build-claude/_deps/googletest-build/googletest/generated/gtest_main.pc
/cmake-build-claude/_deps/googletest-build/googletest/gtest_main.vcxproj
/cmake-build-claude/_deps/googletest-build/googletest/gtest_main.vcxproj.filters
/cmake-build-claude/_deps/googletest-build/googletest/generated/GTestConfig.cmake
/cmake-build-claude/_deps/googletest-build/googletest/generated/GTestConfigVersion.cmake
/cmake-build-claude/_deps/googletest-build/googletest/CMakeFiles/Export/0c08b8e77dd885bfe55a19a9659d9fc1/GTestTargets.cmake
/cmake-build-claude/_deps/googletest-build/googletest/CMakeFiles/Export/0c08b8e77dd885bfe55a19a9659d9fc1/GTestTargets-debug.cmake
/cmake-build-claude/_deps/googletest-build/googletest/CMakeFiles/Export/0c08b8e77dd885bfe55a19a9659d9fc1/GTestTargets-minsizerel.cmake
/cmake-build-claude/_deps/googletest-build/googletest/CMakeFiles/Export/0c08b8e77dd885bfe55a19a9659d9fc1/GTestTargets-release.cmake
/cmake-build-claude/_deps/googletest-build/googletest/CMakeFiles/Export/0c08b8e77dd885bfe55a19a9659d9fc1/GTestTargets-relwithdebinfo.cmake
/hashcat_sessions.db
/cmake-build-claude/_deps/googletest-build/googlemock/INSTALL.vcxproj
/cmake-build-claude/_deps/googletest-build/googletest/INSTALL.vcxproj
/cmake-build-claude/_deps/googletest-build/INSTALL.vcxproj
/cmake-build-claude/Source/INSTALL.vcxproj
/cmake-build-claude/Tests/FunctionalTests/INSTALL.vcxproj
/cmake-build-claude/Tests/INSTALL.vcxproj
/cmake-build-claude/INSTALL.vcxproj
/cmake-build-claude/_deps/googletest-build/googlemock/INSTALL.vcxproj.filters
/cmake-build-claude/_deps/googletest-build/googletest/INSTALL.vcxproj.filters
/cmake-build-claude/_deps/googletest-build/INSTALL.vcxproj.filters
/cmake-build-claude/Source/INSTALL.vcxproj.filters
/cmake-build-claude/Tests/FunctionalTests/INSTALL.vcxproj.filters
/cmake-build-claude/Tests/INSTALL.vcxproj.filters
/cmake-build-claude/INSTALL.vcxproj.filters
/cmake-build-claude/CMakeFiles/5b26066ca47612a6ffb2129f7a2b906b/INSTALL_force.rule
/cmake-build-claude/CMakeFiles/9df0d25c3fa44b64adb1e9f385b73dc7/INSTALL_force.rule
/cmake-build-claude/CMakeFiles/090db5696957d7344b1533f722519f07/INSTALL_force.rule
/cmake-build-claude/CMakeFiles/94b27cd4ee1b5abaafa1ebccf94eab43/INSTALL_force.rule
/cmake-build-claude/CMakeFiles/d3d2a362a1b9da1e8967d3a2ed14592b/INSTALL_force.rule
/cmake-build-claude/CMakeFiles/e468e9cc5c24f40831c9b6af1416da43/INSTALL_force.rule
/cmake-build-claude/CMakeFiles/e7555a16e5476792e82f5929305f9d82/INSTALL_force.rule
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/InstallScripts.json
/cmake-build-claude/CMakeFiles/InstallScripts.json
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/googletest-populate.dir/Labels.json
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/googletest-populate.dir/Labels.txt
/cmake-build-claude/Osiris.sln
/cmake-build-claude/Source/Osiris.vcxproj
/cmake-build-claude/Source/Osiris.vcxproj.filters
/cmake-build-claude/_deps/googletest-build/googlemock/RUN_TESTS.vcxproj
/cmake-build-claude/_deps/googletest-build/googletest/RUN_TESTS.vcxproj
/cmake-build-claude/_deps/googletest-build/RUN_TESTS.vcxproj
/cmake-build-claude/Source/RUN_TESTS.vcxproj
/cmake-build-claude/Tests/FunctionalTests/RUN_TESTS.vcxproj
/cmake-build-claude/Tests/RUN_TESTS.vcxproj
/cmake-build-claude/RUN_TESTS.vcxproj
/cmake-build-claude/_deps/googletest-build/googlemock/RUN_TESTS.vcxproj.filters
/cmake-build-claude/_deps/googletest-build/googletest/RUN_TESTS.vcxproj.filters
/cmake-build-claude/_deps/googletest-build/RUN_TESTS.vcxproj.filters
/cmake-build-claude/Source/RUN_TESTS.vcxproj.filters
/cmake-build-claude/Tests/FunctionalTests/RUN_TESTS.vcxproj.filters
/cmake-build-claude/Tests/RUN_TESTS.vcxproj.filters
/cmake-build-claude/RUN_TESTS.vcxproj.filters
/cmake-build-claude/CMakeFiles/5b26066ca47612a6ffb2129f7a2b906b/RUN_TESTS_force.rule
/cmake-build-claude/CMakeFiles/9df0d25c3fa44b64adb1e9f385b73dc7/RUN_TESTS_force.rule
/cmake-build-claude/CMakeFiles/090db5696957d7344b1533f722519f07/RUN_TESTS_force.rule
/cmake-build-claude/CMakeFiles/94b27cd4ee1b5abaafa1ebccf94eab43/RUN_TESTS_force.rule
/cmake-build-claude/CMakeFiles/d3d2a362a1b9da1e8967d3a2ed14592b/RUN_TESTS_force.rule
/cmake-build-claude/CMakeFiles/e468e9cc5c24f40831c9b6af1416da43/RUN_TESTS_force.rule
/cmake-build-claude/CMakeFiles/e7555a16e5476792e82f5929305f9d82/RUN_TESTS_force.rule
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/TargetDirectories.txt
/cmake-build-claude/CMakeFiles/TargetDirectories.txt
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/4.2.2/VCTargetsPath.txt
/cmake-build-claude/CMakeFiles/4.2.2/VCTargetsPath.txt
/cmake-build-claude/_deps/googletest-subbuild/CMakeFiles/4.2.2/VCTargetsPath.vcxproj
/cmake-build-claude/CMakeFiles/4.2.2/VCTargetsPath.vcxproj
/cmake-build-claude/_deps/googletest-subbuild/ZERO_CHECK.vcxproj
/cmake-build-claude/ZERO_CHECK.vcxproj
/cmake-build-claude/_deps/googletest-subbuild/ZERO_CHECK.vcxproj.filters
/cmake-build-claude/ZERO_CHECK.vcxproj.filters
/cmake-build-claude/Tests/FunctionalTests/FunctionalTests[1]_include.cmake
/cmake-build-claude/Tests/FunctionalTests/FunctionalTests[1]_tests.cmake
/cmake-build-claude/Tests/FunctionalTests/FunctionalTests[1]_include.cmake
/cmake-build-claude/Tests/FunctionalTests/FunctionalTests[1]_tests.cmake
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ Cross-platform (Windows, Linux) game hack for **Counter-Strike 2** with GUI and

## What's new

* 31 May 2026
* Player name now displayed above the player's head in world space (independent projection at head height)
* Fixed pattern scan failures after CS2 update (`OffsetToPlayerColor`, `UiItem3dPanel`)
* Added multi-level fallback for player name lookup to improve robustness across game updates

* 04 November 2025
* Improved smoothness of "Player Info in World" on moving players

Expand Down
2 changes: 1 addition & 1 deletion Source/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ if(MSVC)
set_target_properties(Osiris PROPERTIES MSVC_RUNTIME_LIBRARY "$<$<CONFIG:Debug>:MultiThreadedDebugDLL>")
string(REGEX REPLACE "/EH[a-z]+" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
target_sources(Osiris PRIVATE $<$<CONFIG:Release>:Platform/Windows/CRTWindows.cpp>)
target_compile_options(Osiris PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/W4 $<$<CONFIG:Release>:/sdl- /GS->>)
target_compile_options(Osiris PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/W4 /utf-8 $<$<CONFIG:Release>:/sdl- /GS->>)
target_compile_definitions(Osiris PRIVATE $<$<CONFIG:Release>:_USE_STD_VECTOR_ALGORITHMS=0>)
target_link_options(Osiris PRIVATE $<$<CONFIG:Release>:/nodefaultlib /ENTRY:"DllMain">)
endif()
Expand Down
2 changes: 2 additions & 0 deletions Source/CS2/Classes/Entities/CCSPlayerController.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include <cstdint>

#include <CS2/Classes/CUtlString.h>
#include <CS2/Classes/EntitySystem/CEntityHandle.h>
#include <Platform/Macros/PlatformSpecific.h>

Expand All @@ -25,6 +26,7 @@ struct CCSPlayerController : C_BaseEntity {

using m_hPawn = CEntityHandle;
using m_iCompTeammateColor = PlayerColorIndex;
using m_sSanitizedPlayerName = CUtlString;
};

}
6 changes: 6 additions & 0 deletions Source/Config/ConfigSchema.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ class ConfigSchema {
[[nodiscard]] decltype(auto) performConversion(auto&& configConversion)
{
configConversion.beginRoot();
configConversion.uint(u8"Language", loadVariable<Language>(), saveVariable<Language>());
combatObject(configConversion);
hudObject(configConversion);
visualsObject(configConversion);
Expand Down Expand Up @@ -145,6 +146,11 @@ class ConfigSchema {
configConversion.uint(u8"ColorMode", loadVariable<player_info_vars::PlayerPositionArrowColorMode>(), saveVariable<player_info_vars::PlayerPositionArrowColorMode>());
configConversion.endObject();

configConversion.beginObject(u8"PlayerName");
configConversion.boolean(u8"Enabled", loadVariable<player_info_vars::PlayerNameEnabled>(), saveVariable<player_info_vars::PlayerNameEnabled>());
configConversion.uint(u8"ColorMode", loadVariable<player_info_vars::PlayerNameColorMode>(), saveVariable<player_info_vars::PlayerNameColorMode>());
configConversion.endObject();

configConversion.beginObject(u8"Health");
configConversion.boolean(u8"Enabled", loadVariable<player_info_vars::PlayerHealthEnabled>(), saveVariable<player_info_vars::PlayerHealthEnabled>());
configConversion.uint(u8"ColorMode", loadVariable<player_info_vars::PlayerHealthColorMode>(), saveVariable<player_info_vars::PlayerHealthColorMode>());
Expand Down
4 changes: 4 additions & 0 deletions Source/Config/ConfigVariableTypes.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#pragma once

#include <Config/LanguageConfigVariables.h>
#include <Features/Combat/SniperRifles/NoScopeInaccuracyVis/NoScopeInaccuracyVisConfigVariables.h>
#include <Features/Hud/BombPlantAlert/BombPlantAlertConfigVariables.h>
#include <Features/Hud/BombTimer/BombTimerConfigVariables.h>
Expand All @@ -14,6 +15,7 @@
#include <Utils/TypeList.h>

using ConfigVariableTypes = TypeList<
Language,
BombTimerEnabled,
DefusingAlertEnabled,
KillfeedPreserverEnabled,
Expand Down Expand Up @@ -84,6 +86,8 @@ using ConfigVariableTypes = TypeList<
player_info_vars::OnlyEnemies,
player_info_vars::PlayerPositionArrowEnabled,
player_info_vars::PlayerPositionArrowColorMode,
player_info_vars::PlayerNameEnabled,
player_info_vars::PlayerNameColorMode,
player_info_vars::PlayerHealthEnabled,
player_info_vars::PlayerHealthColorMode,
player_info_vars::ActiveWeaponIconEnabled,
Expand Down
18 changes: 18 additions & 0 deletions Source/Config/LanguageConfigVariables.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#pragma once

#include <cstdint>

#include "ConfigVariable.h"

namespace lang_vars
{

enum class Language : std::uint8_t {
English = 0,
Chinese = 1
};

}

// CONFIG_VARIABLE must be outside the namespace to avoid struct/enum name collision
CONFIG_VARIABLE(Language, lang_vars::Language, lang_vars::Language::English);
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ class PlayerInfoInWorld {
if (!positionInClipSpace.onScreen())
return;

auto&& playerInformationPanel = hookContext.template make<InWorldPanels>().getNextPlayerInfoPanel();
auto&& inWorldPanels = hookContext.template make<InWorldPanels>();
auto&& playerInformationPanel = inWorldPanels.getNextPlayerInfoPanel();
playerInformationPanel.drawPlayerInfo(playerPawn);
playerInformationPanel.updatePosition(absOrigin.value());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,21 @@ enum class PlayerHealthTextColor : std::uint8_t {
White
};

enum class PlayerNameColorType : std::uint8_t {
White,
TeamColor,
HealthBased
};

namespace player_info_vars
{

CONFIG_VARIABLE(Enabled, bool, false);
CONFIG_VARIABLE(OnlyEnemies, bool, false);
CONFIG_VARIABLE(PlayerPositionArrowEnabled, bool, true);
CONFIG_VARIABLE(PlayerPositionArrowColorMode, PlayerPositionArrowColorType, PlayerPositionArrowColorType::PlayerOrTeamColor);
CONFIG_VARIABLE(PlayerNameEnabled, bool, true);
CONFIG_VARIABLE(PlayerNameColorMode, PlayerNameColorType, PlayerNameColorType::White);
CONFIG_VARIABLE(PlayerHealthEnabled, bool, true);
CONFIG_VARIABLE(PlayerHealthColorMode, PlayerHealthTextColor, PlayerHealthTextColor::HealthBased);
CONFIG_VARIABLE(ActiveWeaponIconEnabled, bool, true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
#include "PlayerHealth/PlayerHealthPanel.h"
#include "PlayerHealth/PlayerHealthPanelParams.h"
#include "PlayerInfoContainerPanelParams.h"
#include "PlayerNamePanel.h"
#include "PlayerNamePanelParams.h"
#include "PlayerPositionArrow/PlayerPositionArrowPanel.h"
#include "PlayerPositionArrow/PlayerPositionArrowPanelParams.h"
#include "PlayerStateIcons/PlayerStateIconsPanel.h"
Expand Down Expand Up @@ -56,6 +58,18 @@ class PlayerInfoInWorldPanelFactory {
}.applyTo(uiPanel);
}

void createPanel(std::type_identity<PlayerNamePanel<HookContext>>, auto&& containerPanel) const noexcept
{
using namespace player_name_panel_params;

auto&& label = hookContext.panelFactory().createLabelPanel(containerPanel).uiPanel();
label.setFont(kFont);
label.setAlign(kAlignment);
label.setMargin(kMargin);
label.setTextShadow(kShadowParams);
label.setColor(kColor);
}

void createPanel(std::type_identity<PlayerActiveWeaponAmmoPanel<HookContext>>, auto&& containerPanel) const noexcept
{
auto&& ammoPanel = createActiveWeaponAmmoContainerPanel(containerPanel);
Expand Down
Loading