This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

54 lines
1.6 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
#ifndef INPUTVAR_H
#define INPUTVAR_H
#ifdef _WIN32
#pragma once
#endif
#include "baseentity.h"
#include "entitylist.h"
//-----------------------------------------------------------------------------
// Purpose: Used to request a value, or a set of values, from a set of entities.
// used when a multi-input variable needs to refresh it's
//inputs
//-----------------------------------------------------------------------------
class CMultiInputVar {
public:
CMultiInputVar() : m_InputList(NULL) {}
~CMultiInputVar();
struct inputitem_t {
variant_t value; // local copy of variable (maybe make this a variant?)
int outputID; // the ID number of the output that sent this
inputitem_t *next;
// allocate and free from MPool memory
static void *operator new(size_t stAllocBlock);
static void *operator new(size_t stAllocateBlock, int nBlockUse,
const char *pFileName, int nLine);
static void operator delete(void *pMem);
static void operator delete(void *pMem, int nBlockUse,
const char *pFileName, int nLine) {
operator delete(pMem);
}
};
inputitem_t *m_InputList; // list of data
int m_bUpdatedThisFrame;
void AddValue(variant_t newVal, int outputID);
DECLARE_SIMPLE_DATADESC();
};
#endif // INPUTVAR_H