//////////////////////////////////////////////////////////////////////////////
//
// Asura_Merit_Types.h
//
// Copyright (c) 2009 Rebellion. All rights reserved.
//
// Description:
//
//     types for asura merit system that are needed in other header files.
//     should change rarely.
//
//////////////////////////////////////////////////////////////////////////////

// B E G I N   F I L E   W R A P P E R ///////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef ASURA_MERIT_TYPES_H___
#define ASURA_MERIT_TYPES_H___ 1

#ifdef ASURA_USE_MERIT_SYSTEM

static const u_int uASURA_MERIT_NUM_LEVELS = 20;
static const int iASURA_MERIT_MAX_MERIT_POINTS = 10000;


class Asura_Merit
{
public:

	u_int GetMeritLevel( void ) const { return static_cast<u_int>(m_ucMeritLevel); }
	int GetMeritPoints( void ) const { return static_cast<int>(m_usMeritPoints); }

	void SetMeritLevel( u_int uMeritLevel );
	void SetMeritPoints( int iMeritPoints );

	void ChangeNetworkByteOrder();

private:

	u_short m_usMeritPoints;
	u_char m_ucMeritLevel;
};

#endif // #ifdef ASURA_USE_MERIT_SYSTEM

// E N D   F I L E   W R A P P E R ///////////////////////////////////////////

#endif // #ifndef ASURA_MERIT_TYPES_H___
