Skip to content
Draft
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
10 changes: 6 additions & 4 deletions src/game/server/neo/neo_player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -457,7 +457,7 @@ CNEO_Player::CNEO_Player()
m_iNeoStar = NEO_DEFAULT_STAR;
m_iXP.GetForModify() = 0;
V_memset(m_szNeoName.GetForModify(), 0, sizeof(m_szNeoName));
m_szNeoNameHasSet = false;
m_bNeoNameHasSet = false;
V_memset(m_szNeoClantag.GetForModify(), 0, sizeof(m_szNeoClantag));
V_memset(m_szNeoCrosshair.GetForModify(), 0, sizeof(m_szNeoCrosshair));

Expand Down Expand Up @@ -1662,17 +1662,19 @@ const char *CNEO_Player::GetNeoPlayerName(const CNEO_Player *viewFrom) const

const char *CNEO_Player::GetNeoPlayerNameDirect() const
{
return m_szNeoNameHasSet ? m_szNeoName.Get() : NULL;
return m_bNeoNameHasSet ? m_szNeoName.Get() : NULL;
}

void CNEO_Player::SetNeoPlayerName(const char *newNeoName)
bool CNEO_Player::SetNeoPlayerName(const char *newNeoName)
{
// NEO NOTE (nullsystem): Generally it's never NULL but just incase
if (newNeoName)
{
V_memcpy(m_szNeoName.GetForModify(), newNeoName, sizeof(m_szNeoName)-1);
m_szNeoNameHasSet = true;
m_bNeoNameHasSet = (m_szNeoName.Get()[0] != 0);
return m_bNeoNameHasSet;
}
return false;
}

void CNEO_Player::SetClientWantNeoName(const bool b)
Expand Down
4 changes: 2 additions & 2 deletions src/game/server/neo/neo_player.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ class CNEO_Player : public CHL2MP_Player
const char *GetNeoPlayerName(const CNEO_Player *viewFrom = nullptr) const;
// "neo_name" even if it's nothing
const char *GetNeoPlayerNameDirect() const;
void SetNeoPlayerName(const char *newNeoName);
[[nodiscard]] bool SetNeoPlayerName(const char *newNeoName);
void SetClientWantNeoName(const bool b);
const char *GetNeoClantag() const;

Expand Down Expand Up @@ -313,7 +313,7 @@ class CNEO_Player : public CHL2MP_Player
bool m_bFirstDeathTick;
bool m_bCorpseSet;
bool m_bPreviouslyReloading;
bool m_szNeoNameHasSet;
bool m_bNeoNameHasSet;

float m_flLastAirborneJumpOkTime;
float m_flLastSuperJumpTime;
Expand Down
28 changes: 21 additions & 7 deletions src/game/shared/neo/neo_gamerules.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3232,10 +3232,20 @@ void CNEORules::ClientSettingsChanged(CBasePlayer *pPlayer)
pNEOPlayer->Weapon_SetZoom(pNEOPlayer->m_bInAim);
}

const char *pszSteamName = engine->GetClientConVarValue(pPlayer->entindex(), "name");

const bool clientAllowsNeoName = (0 == StrToInt(engine->GetClientConVarValue(engine->IndexOfEdict(pNEOPlayer->edict()), "cl_onlysteamnick")));
const char *pszNeoName = engine->GetClientConVarValue(pNEOPlayer->entindex(), "neo_name");

char szSteamName[MAX_PLACE_NAME_LENGTH] = "";
const char* pszSteamName = &szSteamName[0];
V_strcpy_safe(szSteamName, engine->GetClientConVarValue(pPlayer->entindex(), "name"));
V_StripTrailingWhitespace(&szSteamName[0]);
V_StripLeadingWhitespace(&szSteamName[0]);

char szNeoName[MAX_PLAYER_NAME_LENGTH] = "";
const char* pszNeoName = &szNeoName[0];
V_strcpy_safe(szNeoName, engine->GetClientConVarValue(pNEOPlayer->entindex(), "neo_name"));
V_StripTrailingWhitespace(&szNeoName[0]);
V_StripLeadingWhitespace(&szNeoName[0]);

const char *pszOldNeoName = pNEOPlayer->GetNeoPlayerNameDirect();
bool updateDupeCheck = false;

Expand All @@ -3251,19 +3261,23 @@ void CNEORules::ClientSettingsChanged(CBasePlayer *pPlayer)
{
event->SetInt("userid", pNEOPlayer->GetUserID());
event->SetString("oldname", (pszOldNeoName[0] == '\0') ? pszSteamName : pszOldNeoName);
event->SetString("newname", (pszNeoName[0] == '\0') ? pszSteamName : pszNeoName);
event->SetString("newname", (szNeoName[0] == '\0') ? pszSteamName : pszNeoName);
gameeventmanager->FireEvent(event);
}
}

pNEOPlayer->SetNeoPlayerName(pszNeoName);
updateDupeCheck = true;
if (pNEOPlayer->SetNeoPlayerName(pszNeoName))
updateDupeCheck = true;
}
pNEOPlayer->SetClientWantNeoName(clientAllowsNeoName);
const auto optClStreamerMode = StrToInt(engine->GetClientConVarValue(engine->IndexOfEdict(pNEOPlayer->edict()), "cl_neo_streamermode"));
pNEOPlayer->m_bClientStreamermode = (optClStreamerMode && *optClStreamerMode);

const char *pszNeoClantag = engine->GetClientConVarValue(pNEOPlayer->entindex(), "neo_clantag");
char szNeoClanTag[NEO_MAX_CLANTAG_LENGTH] = "";
const char* pszNeoClantag = &szNeoClanTag[0];
V_strcpy_safe(szNeoClanTag, engine->GetClientConVarValue(pNEOPlayer->entindex(), "neo_clantag"));
V_StripTrailingWhitespace(&szNeoClanTag[0]);
V_StripLeadingWhitespace(&szNeoClanTag[0]);
const char *pszOldNeoClantag = pNEOPlayer->GetNeoClantag();
if (V_strcmp(pszOldNeoClantag, pszNeoClantag) != 0)
{
Expand Down