From e112cf67910a4beecd583cfc84a232200f6132f6 Mon Sep 17 00:00:00 2001 From: Ryozuki Date: Fri, 2 Aug 2019 18:16:58 +0200 Subject: [PATCH 1/2] add paused and spec to explayerflags --- datasrc/network.py | 2 +- src/game/client/gameclient.cpp | 4 ++++ src/game/client/gameclient.h | 2 ++ src/game/server/player.cpp | 8 +++++++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/datasrc/network.py b/datasrc/network.py index 9a2114c75..3fbf7446c 100644 --- a/datasrc/network.py +++ b/datasrc/network.py @@ -19,7 +19,7 @@ GameInfoFlags = [ "ENTITIES_DDNET", "ENTITIES_DDRACE", "ENTITIES_RACE", "ENTITIES_FNG", "ENTITIES_VANILLA", "DONT_MASK_ENTITIES", ] -ExPlayerFlags = ["AFK"] +ExPlayerFlags = ["AFK", "PAUSED", "SPEC"] Emoticons = ["OOP", "EXCLAMATION", "HEARTS", "DROP", "DOTDOT", "MUSIC", "SORRY", "GHOST", "SUSHI", "SPLATTEE", "DEVILTEE", "ZOMG", "ZZZ", "WTF", "EYES", "QUESTION"] diff --git a/src/game/client/gameclient.cpp b/src/game/client/gameclient.cpp index 5074db494..79360c269 100644 --- a/src/game/client/gameclient.cpp +++ b/src/game/client/gameclient.cpp @@ -1197,6 +1197,8 @@ void CGameClient::OnNewSnapshot() const CNetObj_DDNetPlayer *pInfo = (const CNetObj_DDNetPlayer *)pData; m_aClients[Item.m_ID].m_AuthLevel = pInfo->m_AuthLevel; m_aClients[Item.m_ID].m_Afk = pInfo->m_Flags & EXPLAYERFLAG_AFK; + m_aClients[Item.m_ID].m_Paused = pInfo->m_Flags & EXPLAYERFLAG_PAUSED; + m_aClients[Item.m_ID].m_Spec = pInfo->m_Flags & EXPLAYERFLAG_SPEC; } else if(Item.m_Type == NETOBJTYPE_CHARACTER) { @@ -1768,6 +1770,8 @@ void CGameClient::CClientData::Reset() m_Foe = false; m_AuthLevel = AUTHED_NO; m_Afk = false; + m_Paused = false; + m_Spec = false; m_SkinInfo.m_Texture = g_GameClient.m_pSkins->Get(0)->m_ColorTexture; m_SkinInfo.m_ColorBody = ColorRGBA(1,1,1); m_SkinInfo.m_ColorFeet = ColorRGBA(1,1,1); diff --git a/src/game/client/gameclient.h b/src/game/client/gameclient.h index 7034b3743..472770621 100644 --- a/src/game/client/gameclient.h +++ b/src/game/client/gameclient.h @@ -305,6 +305,8 @@ public: int m_AuthLevel; bool m_Afk; + bool m_Paused; + bool m_Spec; void UpdateRenderInfo(); void Reset(); diff --git a/src/game/server/player.cpp b/src/game/server/player.cpp index 4f6ee05f3..003fe4f79 100644 --- a/src/game/server/player.cpp +++ b/src/game/server/player.cpp @@ -324,7 +324,13 @@ void CPlayer::Snap(int SnappingClient) return; pDDNetPlayer->m_AuthLevel = Server()->GetAuthedState(id); - pDDNetPlayer->m_Flags = m_Afk ? EXPLAYERFLAG_AFK : 0; + pDDNetPlayer->m_Flags = 0; + if(m_Afk) + pDDNetPlayer->m_Flags |= EXPLAYERFLAG_AFK; + if(m_Paused == PAUSE_SPEC) + pDDNetPlayer->m_Flags |= EXPLAYERFLAG_SPEC; + if(m_Paused == PAUSE_PAUSED) + pDDNetPlayer->m_Flags |= EXPLAYERFLAG_PAUSED; } void CPlayer::FakeSnap() From f5f07860c49878299c0fdb39232e2d2b5242c6dc Mon Sep 17 00:00:00 2001 From: ChillerDragon Date: Sun, 8 Sep 2019 19:22:12 +0200 Subject: [PATCH 2/2] Consistent spacing for getters and setters --- src/engine/client/client.h | 2 +- src/game/client/prediction/entities/character.h | 6 +++--- src/game/server/entities/character.h | 12 ++++++------ src/game/server/save.h | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/engine/client/client.h b/src/engine/client/client.h index 5738b11be..c183431f7 100644 --- a/src/engine/client/client.h +++ b/src/engine/client/client.h @@ -434,7 +434,7 @@ public: bool EditorHasUnsavedData() { return m_pEditor->HasUnsavedData(); } - virtual IFriends* Foes() {return &m_Foes; } + virtual IFriends* Foes() { return &m_Foes; } void GetSmoothTick(int *pSmoothTick, float *pSmoothIntraTick, float MixAmount); }; diff --git a/src/game/client/prediction/entities/character.h b/src/game/client/prediction/entities/character.h index cf892ae2c..014686abe 100644 --- a/src/game/client/prediction/entities/character.h +++ b/src/game/client/prediction/entities/character.h @@ -126,11 +126,11 @@ public: // Setters/Getters because i don't want to modify vanilla vars access modifiers int GetLastWeapon() { return m_LastWeapon; }; - void SetLastWeapon(int LastWeap) {m_LastWeapon = LastWeap; }; + void SetLastWeapon(int LastWeap) { m_LastWeapon = LastWeap; }; int GetActiveWeapon() { return m_Core.m_ActiveWeapon; }; - void SetActiveWeapon(int ActiveWeap) {m_Core.m_ActiveWeapon = ActiveWeap; }; + void SetActiveWeapon(int ActiveWeap) { m_Core.m_ActiveWeapon = ActiveWeap; }; CCharacterCore GetCore() { return m_Core; }; - void SetCore(CCharacterCore Core) {m_Core = Core; }; + void SetCore(CCharacterCore Core) { m_Core = Core; }; CCharacterCore* Core() { return &m_Core; }; bool GetWeaponGot(int Type) { return m_aWeapons[Type].m_Got; }; void SetWeaponGot(int Type, bool Value) { m_aWeapons[Type].m_Got = Value; }; diff --git a/src/game/server/entities/character.h b/src/game/server/entities/character.h index 90893c72b..e237ebbc1 100644 --- a/src/game/server/entities/character.h +++ b/src/game/server/entities/character.h @@ -83,7 +83,7 @@ public: void Rescue(); - int NeededFaketuning() {return m_NeededFaketuning;} + int NeededFaketuning() { return m_NeededFaketuning;} bool IsAlive() const { return m_Alive; } bool IsPaused() const { return m_Paused; } class CPlayer *GetPlayer() { return m_pPlayer; } @@ -262,14 +262,14 @@ public: // Setters/Getters because i don't want to modify vanilla vars access modifiers int GetLastWeapon() { return m_LastWeapon; }; - void SetLastWeapon(int LastWeap) {m_LastWeapon = LastWeap; }; + void SetLastWeapon(int LastWeap) { m_LastWeapon = LastWeap; }; int GetActiveWeapon() { return m_Core.m_ActiveWeapon; }; - void SetActiveWeapon(int ActiveWeap) {m_Core.m_ActiveWeapon = ActiveWeap; }; - void SetLastAction(int LastAction) {m_LastAction = LastAction; }; + void SetActiveWeapon(int ActiveWeap) { m_Core.m_ActiveWeapon = ActiveWeap; }; + void SetLastAction(int LastAction) { m_LastAction = LastAction; }; int GetArmor() { return m_Armor; }; - void SetArmor(int Armor) {m_Armor = Armor; }; + void SetArmor(int Armor) { m_Armor = Armor; }; CCharacterCore GetCore() { return m_Core; }; - void SetCore(CCharacterCore Core) {m_Core = Core; }; + void SetCore(CCharacterCore Core) { m_Core = Core; }; CCharacterCore* Core() { return &m_Core; }; bool GetWeaponGot(int Type) { return m_aWeapons[Type].m_Got; }; void SetWeaponGot(int Type, bool Value) { m_aWeapons[Type].m_Got = Value; }; diff --git a/src/game/server/save.h b/src/game/server/save.h index 160ed18e9..f5b65b4bb 100644 --- a/src/game/server/save.h +++ b/src/game/server/save.h @@ -94,7 +94,7 @@ public: CSaveTeam(IGameController* Controller); ~CSaveTeam(); char* GetString(); - int GetMembersCount() {return m_MembersCount;} + int GetMembersCount() { return m_MembersCount; } int LoadString(const char* String); int save(int Team); int load(int Team);