X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Fstate.qh;h=42fc450c4728f97f4e63ca6fe9b196b79f2c0a53;hp=64ae3e7fe62f087accb4e01d0cfd65ba428940eb;hb=4eab3f0253a063bdbd4e1ff64c4b2b08077c44c4;hpb=6f4c7132e635c0150e3894f2f9958b361ce0c238 diff --git a/qcsrc/common/state.qh b/qcsrc/common/state.qh index 64ae3e7fe6..42fc450c47 100644 --- a/qcsrc/common/state.qh +++ b/qcsrc/common/state.qh @@ -6,29 +6,16 @@ * Server: instance per client, clients decoupled from players */ CLASS(PlayerState, Object) - ATTRIB(PlayerState, m_client, entity, NULL) + ATTRIB(PlayerState, m_client, entity); CONSTRUCTOR(PlayerState, entity client) { CONSTRUCT(PlayerState); this.m_client = client; } - ATTRIB(PlayerState, m_switchingweapon, Weapon, Weapons_from(-1)) - ATTRIB(PlayerState, m_switchweapon, Weapon, Weapons_from(-1)) - ATTRIB(PlayerState, m_weapon, Weapon, Weapons_from(-1)) - METHOD(PlayerState, ps_push, void(PlayerState this, entity cl)) - { - STAT(ACTIVEWEAPON, cl) = this.m_weapon.m_id; - STAT(SWITCHINGWEAPON, cl) = this.m_switchingweapon.m_id; - STAT(SWITCHWEAPON, cl) = this.m_switchweapon.m_id; - } ENDCLASS(PlayerState) .PlayerState _ps; -#if NDEBUG - #define PS(this) (this._ps) -#else - PlayerState PS(entity this) { assert(IS_CLIENT(this)); return this._ps; } -#endif +#define PS(this) ((this)._ps) // TODO: renew on death void PlayerState_attach(entity this); @@ -40,12 +27,16 @@ void PlayerState_detach(entity this); * Server: instance per client */ CLASS(ClientState, Object) - ATTRIB(ClientState, m_client, entity, NULL) + ATTRIB(ClientState, m_client, entity); CONSTRUCTOR(ClientState, entity client) { CONSTRUCT(ClientState); this.m_client = client; } + METHOD(PlayerState, ps_push, void(PlayerState this, entity cl)) + { + TC(PlayerState, this); + } ENDCLASS(ClientState) .ClientState _cs; @@ -53,7 +44,7 @@ ENDCLASS(ClientState) #if NDEBUG #define CS(this) (this._cs) #else - ClientState CS(entity this) { assert(IS_CLIENT(this)); assert(this._cs); return this._cs; } + ClientState CS(Client this) { TC(Client, this); assert(this._cs); return this._cs; } #endif void ClientState_attach(entity this);