// ObjectRev.h: interface for the CObjectRev class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_OBJECTREV_H__0A3069DB_6F7D_42AB_822C_5FE5F0C2C934__INCLUDED_)
#define AFX_OBJECTREV_H__0A3069DB_6F7D_42AB_822C_5FE5F0C2C934__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#ifndef ERROR_H
	#include "error.h"
	#define ERROR_H
#endif

#include "extdll.h"
#include "vector.h"
#include "decals.h" 

#ifndef UTIL_H
	#include "util.h" 
#endif

#include "cbase.h"

#include "monsters.h" 
#include "weapons.h" 

#ifndef NO_NODE
	#include "nodes.h" 
#endif

#include "player.h" 

#ifndef MAX_WORLD_SOUNDS
	#include "soundent.h" 
#endif

#include "shake.h" 

#include "gamerules.h"

class CObjectRev;

struct CObjectRevArrow
{
	Contrib contrib;
	ArrowType type;
	CObjectRevArrow* next;
	CObjectRev* ptr;
};

extern StrBuf P4PORT;

class CObjectRev : public CBaseEntity  
{
public:
	CObjectRev();

	void AddArrow(CObjectRev* aptr, ArrowType atype, Contrib acontrib);

	void Spawn ( );
	void Precache ( );
	void Think ( );

	void Touch(CBaseEntity*);
	void Long (CBasePlayer*);
	void Expand (CBasePlayer*);

	int BeamSprite;

	CBaseEntity* parent;
	StrBuf filerev;
	FileRev* revobj;
	CBaseEntity* from;
	CBaseEntity* next;
	short type;
	short ftype;

	short ismain;

	bool istext;

	CObjectRevArrow* fromarrows;
};

#endif // !defined(AFX_OBJECTREV_H__0A3069DB_6F7D_42AB_822C_5FE5F0C2C934__INCLUDED_)
