完全搞定除了皮肤

This commit is contained in:
Huoji's
2023-10-06 05:08:40 +08:00
parent 40fc60e481
commit 9232d1c390
30 changed files with 3076 additions and 852 deletions

View File

@@ -1,9 +1,3 @@
//===== Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ======//
//
// Purpose:
//
//===========================================================================//
#ifndef BITVEC_H
#define BITVEC_H
#ifdef _WIN32

View File

@@ -0,0 +1,17 @@
#pragma once
#include "eiface.h"
//-----------------------------------------------------------------------------
// Purpose: Generic interface for routing messages to users
//-----------------------------------------------------------------------------
class IRecipientFilter
{
public:
virtual ~IRecipientFilter() {}
virtual bool IsReliable(void) const = 0;
virtual bool IsInitMessage(void) const = 0;
virtual int GetRecipientCount(void) const = 0;
virtual CEntityIndex GetRecipientIndex(int slot) const = 0;
};

View File

@@ -0,0 +1,62 @@
#pragma once
#include "../sdk.h"
class CSingleRecipientFilter : public IRecipientFilter
{
public:
CSingleRecipientFilter(int iRecipient, bool bReliable = true, bool bInitMessage = false) :
m_iRecipient(iRecipient), m_bReliable(bReliable), m_bInitMessage(bInitMessage) {}
~CSingleRecipientFilter() override {}
bool IsReliable(void) const override { return m_bReliable; }
bool IsInitMessage(void) const override { return m_bInitMessage; }
int GetRecipientCount(void) const override { return 1; }
CEntityIndex GetRecipientIndex(int slot) const override { return CEntityIndex(m_iRecipient); }
private:
bool m_bReliable;
bool m_bInitMessage;
int m_iRecipient;
};
class CCopyRecipientFilter : public IRecipientFilter
{
public:
CCopyRecipientFilter(IRecipientFilter *source, int iExcept)
{
m_bReliable = source->IsReliable();
m_bInitMessage = source->IsInitMessage();
m_Recipients.RemoveAll();
for (int i = 0; i < source->GetRecipientCount(); i++)
{
if (source->GetRecipientIndex(i).Get() != iExcept)
m_Recipients.AddToTail(source->GetRecipientIndex(i));
}
}
~CCopyRecipientFilter() override {}
bool IsReliable(void) const override { return m_bReliable; }
bool IsInitMessage(void) const override { return m_bInitMessage; }
int GetRecipientCount(void) const override { return m_Recipients.Count(); }
CEntityIndex GetRecipientIndex(int slot) const override
{
if (slot < 0 || slot >= GetRecipientCount())
return CEntityIndex(-1);
return m_Recipients[slot];
}
private:
bool m_bReliable;
bool m_bInitMessage;
CUtlVectorFixed<CEntityIndex, 64> m_Recipients;
};

View File

@@ -1,11 +1,3 @@
//========= Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $Header: $
// $NoKeywords: $
//=============================================================================//
#ifndef UTLRBTREE_H
#define UTLRBTREE_H