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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ out

/src/CMakeSettings.json

# ctest
/src/Testing

# Possible symlink for fixing tools that hardcode "game/mod_hl2mp" - we use "game/neo".
/game/mod_hl2mp

Expand Down
3 changes: 3 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -602,3 +602,6 @@ if(NEO_EXTRA_ASSETS)
"${neo_assets_SOURCE_DIR}/neo"
"${CMAKE_SOURCE_DIR}/../game/neo")
endif()

add_subdirectory(tests)

4 changes: 4 additions & 0 deletions src/game/client/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1656,6 +1656,8 @@ target_sources_grouped(
${CMAKE_SOURCE_DIR}/game/shared/neo/neo_enums.h
${CMAKE_SOURCE_DIR}/game/shared/neo/neo_crosshair.cpp
${CMAKE_SOURCE_DIR}/game/shared/neo/neo_crosshair.h
${CMAKE_SOURCE_DIR}/game/shared/neo/neo_serial.cpp
${CMAKE_SOURCE_DIR}/game/shared/neo/neo_serial.h
)

target_sources_grouped(
Expand All @@ -1666,6 +1668,7 @@ target_sources_grouped(
${CMAKE_SOURCE_DIR}/game/shared/neo/weapons/weapon_aa13.h
${CMAKE_SOURCE_DIR}/game/shared/neo/weapons/weapon_balc.cpp
${CMAKE_SOURCE_DIR}/game/shared/neo/weapons/weapon_balc.h
${CMAKE_SOURCE_DIR}/game/shared/neo/weapons/weapon_bits.cpp
${CMAKE_SOURCE_DIR}/game/shared/neo/weapons/weapon_bits.h
${CMAKE_SOURCE_DIR}/game/shared/neo/weapons/weapon_detpack.cpp
${CMAKE_SOURCE_DIR}/game/shared/neo/weapons/weapon_detpack.h
Expand Down Expand Up @@ -1725,6 +1728,7 @@ target_sources_grouped(
${CMAKE_SOURCE_DIR}/game/shared/neo/weapons/weapon_zr68l.h
${CMAKE_SOURCE_DIR}/game/shared/neo/weapons/weapon_zr68s.cpp
${CMAKE_SOURCE_DIR}/game/shared/neo/weapons/weapon_zr68s.h
${CMAKE_SOURCE_DIR}/game/shared/neo/weapons/neo_weapon_types.h
)

if(NEO_BUILD_WEAPON_PBK56S)
Expand Down
23 changes: 22 additions & 1 deletion src/game/client/cdll_client_int.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1416,10 +1416,19 @@ void CHLClient::PostInit()
{
g_pCVar->FindVar("neo_name")->InstallChangeCallback(NeoConVarStrLimitChangeCallback<MAX_PLAYER_NAME_LENGTH>);
g_pCVar->FindVar("neo_clantag")->InstallChangeCallback(NeoConVarStrLimitChangeCallback<NEO_MAX_CLANTAG_LENGTH>);
g_pCVar->FindVar("cl_neo_crosshair")->InstallChangeCallback(NeoConVarStrLimitChangeCallback<NEO_XHAIR_SEQMAX>);
g_pCVar->FindVar("cl_neo_crosshair")->InstallChangeCallback(NeoConVarCrosshairChangeCallback);
g_pCVar->FindVar("sv_use_steam_networking")->SetValue(false);
RestrictNeoClientCheats();

// Fixup invalid crosshair to default
ConVarRef cl_neo_crosshair("cl_neo_crosshair");
if (false == ValidateCrosshairSerial(cl_neo_crosshair.GetString()))
{
char szSequence[NEO_XHAIR_SEQMAX] = {};
DefaultCrosshairSerial(szSequence);
cl_neo_crosshair.SetValue(szSequence);
}

ConVar *sv_maxupdaterate = g_pCVar->FindVar( "sv_maxupdaterate" ); Assert(sv_maxupdaterate);
ConVar *cl_updaterate = g_pCVar->FindVar( "cl_updaterate" ); Assert(cl_updaterate);
static char svMaxUpdateRateDefault[4];
Expand Down Expand Up @@ -1523,6 +1532,18 @@ void CHLClient::PostInit()
}
}

if (iCfgVerMajor < 29)
{
// Upgrade pre NEOXHAIR_SERIAL_ALPHA_V29 crosshairs to NEOXHAIR_SERIAL_ALPHA_V29+
CrosshairInfo xhairInfo = {};
if (ImportCrosshair(&xhairInfo, cl_neo_crosshair.GetString()))
{
char szExportSeq[NEO_XHAIR_SEQMAX];
ExportCrosshair(&xhairInfo, szExportSeq);
cl_neo_crosshair.SetValue(szExportSeq);
}
}

cvr_cl_neo_cfg_version_major.SetValue(NEO_VERSION_MAJOR);
cvr_cl_neo_cfg_version_minor.SetValue(NEO_VERSION_MINOR);
}
Expand Down
39 changes: 23 additions & 16 deletions src/game/client/hud_crosshair.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,6 @@ void CVGlobal_NeoClCrosshair(IConVar *var, [[maybe_unused]] const char *pOldStri
}
}

ConVar cl_neo_crosshair_hip_fire("cl_neo_crosshair_hip_fire", "0", FCVAR_ARCHIVE, "Show the crosshair when not aiming", true, 0, true, 1,
[]([[maybe_unused]] IConVar* var, [[maybe_unused]] const char* pOldString, [[maybe_unused]] float flOldValue)->void{
CHudCrosshair *crosshair = GET_HUDELEMENT(CHudCrosshair);
if (crosshair)
{
crosshair->SetHiddenBits(HIDEHUD_PLAYERDEAD | (cl_neo_crosshair_hip_fire.GetBool() ? 0 : HIDEHUD_CROSSHAIR));
}
});
ConVar cl_neo_crosshair_scope_inaccuracy("cl_neo_crosshair_scope_inaccuracy", "1", FCVAR_ARCHIVE, "Show the player's inaccuracy when scoped", true, 0, true, 1);
ConVar cl_neo_crosshair_friendly_fire_warning("cl_neo_crosshair_friendly_fire_warning", "1", FCVAR_ARCHIVE, "Replace crosshair with friendly fire warning where applicable", true, 0, true, 1);
#endif
Expand Down Expand Up @@ -116,7 +108,7 @@ CHudCrosshair::CHudCrosshair( const char *pElementName ) :
surface()->DrawSetTextureFile(m_hCrosshairLight, "vgui/hud/scopes/scope03-1", 1, false);
surface()->DrawGetTextureSize(m_hCrosshairLight, m_iCrosshairLightWidth, m_iCrosshairLightHeight);

SetHiddenBits( HIDEHUD_PLAYERDEAD | (cl_neo_crosshair_hip_fire.GetBool() ? 0 : HIDEHUD_CROSSHAIR) );
SetHiddenBits( HIDEHUD_PLAYERDEAD );
#else
SetHiddenBits( HIDEHUD_PLAYERDEAD | HIDEHUD_CROSSHAIR );
#endif // NEO
Expand Down Expand Up @@ -531,7 +523,22 @@ void CHudCrosshair::Paint( void )
m_bRefreshCrosshair = false;
}
}
const int iXHairStyle = pCrosshairInfo->iStyle;

bool bHideCrosshair = (NEORules() && NEORules()->GetHiddenHudElements() & NEO_HUD_ELEMENT_CROSSHAIR);

ENeoCrosshairWep eNeoXHairWep = CROSSHAIR_WEP_DEFAULT;
if (pWeapon)
{
int iNeoXHairWep = MAP_WEAPON_TYPE_TO_XHAIR[NEO_WEAPON_TYPE[pWeapon->WeaponIndex()]];
if (iNeoXHairWep >= CROSSHAIR_WEP_DEFAULT && false == pNeoPlayer->m_bInAim)
{
iNeoXHairWep += CROSSHAIR_WEP_DEFAULT_HIPFIRE;
}
eNeoXHairWep = static_cast<ENeoCrosshairWep>(
UseCrosshairIndexFor(pCrosshairInfo, iNeoXHairWep, &bHideCrosshair));
}
CrosshairWepInfo *crh = &pCrosshairInfo->wep[eNeoXHairWep];
const int iTexXHId = m_iTexXHId[clamp(crh->iStyle, 0, CROSSHAIR_STYLE__TOTAL - 1)];

bool showFriendlyFireCrosshair = false;
if (NEORules()->GetGameType() != NEO_GAME_TYPE_DM && cl_neo_crosshair_friendly_fire_warning.GetBool())
Expand Down Expand Up @@ -604,19 +611,19 @@ void CHudCrosshair::Paint( void )
vgui::surface()->DrawSetColor(COLOR_RED);
vgui::surface()->DrawTexturedRect(iX - iTexWide, iY - iTexTall, iX + iTexWide, iY + iTexTall);
}
else if (m_iTexXHId[iXHairStyle] > 0)
else if (iTexXHId > 0)
{
vgui::surface()->DrawSetTexture(m_iTexXHId[iXHairStyle]);
vgui::surface()->DrawSetTexture(iTexXHId);
int iTexWide, iTexTall;
vgui::surface()->DrawGetTextureSize(m_iTexXHId[iXHairStyle], iTexWide, iTexTall);
vgui::surface()->DrawGetTextureSize(iTexXHId, iTexWide, iTexTall);
iTexWide >>= 1;
iTexTall >>= 1;
vgui::surface()->DrawSetColor(pCrosshairInfo->color);
vgui::surface()->DrawSetColor(crh->color);
vgui::surface()->DrawTexturedRect(iX - iTexWide, iY - iTexTall, iX + iTexWide, iY + iTexTall);
}
else
else if (!bHideCrosshair)
{
PaintCrosshair(*pCrosshairInfo, HalfInaccuracyConeInScreenPixels(pWeapon, m_iHalfScreenWidth), iX, iY);
PaintCrosshair(crh, HalfInaccuracyConeInScreenPixels(pWeapon, m_iHalfScreenWidth), iX, iY);
}

if (bIsScopedWep && pPlayer->m_bInAim)
Expand Down
Loading
Loading