blob: 7583e4ec50ac7d839bc7c850df4fa54b4322d861 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef TEST_STRESSENTITIES_H
#define TEST_STRESSENTITIES_H
#ifdef _WIN32
#pragma once
#endif
class CBaseEntity;
typedef CBaseEntity* (*StressEntityFn)(); // Function to create an entity for the stress test.
// Each game DLL can instantiate these to register types of entities it can create
// for the entity stress test.
class CStressEntityReg
{
public:
CStressEntityReg( StressEntityFn fn )
{
m_pFn = fn;
m_pNext = s_pHead;
s_pHead = this;
}
static CStressEntityReg*GetListHead() { return s_pHead; }
CStressEntityReg* GetNext() { return m_pNext; }
StressEntityFn GetFn() { return m_pFn; }
private:
static CStressEntityReg *s_pHead; // List of all CStressEntityReg's.
CStressEntityReg *m_pNext;
StressEntityFn m_pFn;
};
// Use this macro to register a function to create stresstest entities.
#define REGISTER_STRESS_ENTITY( fnName ) static CStressEntityReg s_##fnName##__( fnName );
// Helper function for the functions that create the stress entities.
// Moves the entity to a random place in the level and returns the entity.
CBaseEntity* MoveToRandomSpot( CBaseEntity *pEnt );
Vector GetRandomSpot();
#endif // TEST_STRESSENTITIES_H
|