text: #ifndef INCLUDED_funfact_cs
  #define INCLUDED_funfact_cs
  #pragma once
  
  #include "cs_shareddefs.h"
  
  
  struct FunFact
  {
  	FunFact() :
  		id(-1),
  		szLocalizationToken(NULL),
  		iPlayer(0),
  		iData1(0),
  		iData2(0),
  		iData3(0),
  		fMagnitude(0.0f)
  		{}
  	int id;
  	const char* szLocalizationToken;
  	int iPlayer;
  	int iData1;
  	int iData2;
  	int iData3;
  	float fMagnitude;
  };
  
  typedef CUtlVector<FunFact> FunFactVector;
  
  class FunFactEvaluator
  {
  	DECLARE_CLASS_NOBASE( FunFactEvaluator );
  public:
  	FunFactEvaluator( int id, const char* szLocalizationToken, float fCoolness ) :
  		m_id(id),
  		m_pLocalizationToken(szLocalizationToken),
  		m_fCoolness(fCoolness)
  	{}
  
  	virtual ~FunFactEvaluator() {}
  
  	int GetId() const { return m_id; }
  	const char* GetLocalizationToken() const { return m_pLocalizationToken; }
  	float GetCoolness() const { return m_fCoolness; }
  
  	virtual bool Evaluate( e_RoundEndReason iRoundResult, FunFactVector& results ) const = 0;
  
  private:
  	int  m_id;
  	const char* m_pLocalizationToken;
  	float m_fCoolness;
  };
  
  
  typedef FunFactEvaluator* (*funfactCreateFunc) (void);
  class CFunFactHelper
  {
  public:
  	CFunFactHelper ( funfactCreateFunc createFunc )
  	{
  		m_pfnCreate = createFunc;
  		m_pNext = s_pFirst;
  		s_pFirst = this;
  	}
  	funfactCreateFunc m_pfnCreate;
  	CFunFactHelper *m_pNext;
  	static CFunFactHelper *s_pFirst;
  };
  
  #endif // INCLUDED_funfact_cs
  
  