// Author : Chris Tolley
// Date   : 8/25/2004
// carcus.h contains the class declaration for a class that will act as
// a carcus for dead bugs in the game Survival

#if !defined(AFX_CARCUS_H__D4CE41B5_E43B_4DE0_9C08_169D97D3BEF2__INCLUDED_)
#define AFX_CARCUS_H__D4CE41B5_E43B_4DE0_9C08_169D97D3BEF2__INCLUDED_

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

#include <string>
using std::string;

#include "SmartPointer.h"
#include "Object.h"

class carcus : public Object  
{
public:
	// Constructor.  bug is the bug that this carcus looks like
	carcus( SmartPointer& bug );

	// Destructor
	virtual ~carcus();

	// Updates the object.  Must be implemented at a derived level
	void Update( float elapsedSec );

	// Renders the object to the screen. Must be implemented at a derived level
	void Render();

	// Returns true if this Object is inside the sphere
	bool InSphere( float x, float z, float radius );

	// Returns a value indicating the type of object this object is
	inline string GetType() { return "carcus"; };

	// Returns true if it is time for this object to be removed
	bool TimeToDie();
private:
	// The amount of time this carcus has been around
	float m_fAge;

	// The display list to call to draw this bug
	unsigned int m_uiList;
};

#endif // !defined(AFX_CARCUS_H__D4CE41B5_E43B_4DE0_9C08_169D97D3BEF2__INCLUDED_)
