#include "Inventory.h"
#include <math.h>
#include "SpaceWarClient.h"

#define ACHDISP_FONT_HEIGHT 20
#define ACHDISP_COLUMN_WIDTH 340
#define ACHDISP_CENTER_SPACING 40
#define ACHDISP_VERT_SPACING 10
#define ACHDISP_IMG_SIZE 64
#define ACHDISP_IMG_PAD 10

#define _ACH_ID( id, name ) { id, #id, name, "", 0, 0 }

Achievement_t g_rgAchievements[] = 
{
	_ACH_ID( ACH_WIN_ONE_GAME, "Winner" ),
	_ACH_ID( ACH_WIN_100_GAMES, "Champion" ),
	_ACH_ID( ACH_TRAVEL_FAR_ACCUM, "Interstellar" ),
	_ACH_ID( ACH_TRAVEL_FAR_SINGLE, "Orbiter" ),
};


//-----------------------------------------------------------------------------
// Purpose: Constructor
//-----------------------------------------------------------------------------
#pragma warning( push )
//  warning C4355: 'this' : used in base member initializer list
//  This is OK because it's warning on setting up the Steam callbacks, they won't use this until after construction is done
#pragma warning( disable : 4355 ) 
CStatsAndAchievements::CStatsAndAchievements( IGameEngine *pGameEngine )
	: 
{
	ACH_100_SERVERS_HACKED     = 0,
	ACH_100_FIREWALL_ATTACKS   = 1,
	ACH_100_DOS_ATTACKS        = 2,
	ACH_100_EMP_ATTACKS        = 3,
    ACH_100_VOICEPRINT_ATTACKS = 4,
    ACH_100_RETINA_ATTACKS     = 5,
    ACH_100_ENCRYPTION_KEYS    = 6,
	ACH_TUTORIAL_COMPLETED     = 7,
	ACH_GAME_COMPLETED         = 8,
};

// Achievement array which will hold data about the achievements and their state
Achievement_t g_Achievements[] = 
{
	_ACH_ID( ACH_100_SERVERS_HACKED,     "100 servers hacked" ),
	_ACH_ID( ACH_100_FIREWALL_ATTACKS,   "100 firewalls bypassed" ),
	_ACH_ID( ACH_100_DOS_ATTACKS,        "100 D.O.S attacks launched" ),
	_ACH_ID( ACH_100_EMP_ATTACKS,        "100 EMP attacks launched" ),
    _ACH_ID( ACH_100_VOICEPRINT_ATTACKS, "100 VOICEPRINT passwords cracked"),
    _ACH_ID( ACH_100_RETINA_ATTACKS,     "100 RETINA passwords cracked"),
    _ACH_ID( ACH_100_ENCRYPTION_KEYS,    "100 Encryption keys cracked"),
    _ACH_ID( ACH_TUTORIAL_COMPLETED,    "100 Encryption keys cracked"),
    _ACH_ID( ACH_GAME_COMPLETED,        "100 Encryption keys cracked"),
};

// Stats array which will hold data about the stats and their state
Stat_t g_Stats[] =
{
	_STAT_ID( 1, STAT_INT, "hedGamesPlayed")
};