#include "RundenSpielerStatistik.h"

// Inhalt der RundenSpielerStatistik Klasse aus RundenSpielerStatistik.h
// Konstruktor
RundenSpielerStatistik::RundenSpielerStatistik()
{
	spielerNummer = 0;
	spielerName = new Text();
	teamName = new Text();
	spielerFarbe = 0;
	teamFarbe = 0;
	linienLength = 0;
	kills = 0;
	todeszeit = 0;
	ref = 1;
}

// Destruktor
RundenSpielerStatistik::~RundenSpielerStatistik()
{
	spielerName->release();
	teamName->release();
}

// nicht constant
void RundenSpielerStatistik::initValues( InitDatei *dat )
{
	if( dat->wertExistiert( "SpielerNummer" ) )
		spielerNummer = *dat->zWert( "SpielerNummer" );
	if( dat->wertExistiert( "SpielerName" ) )
		*spielerName = dat->zWert( "SpielerName" )->getText();
	if( dat->wertExistiert( "TeamName" ) )
		*teamName = dat->zWert( "TeamName" )->getText();
	if( dat->wertExistiert( "SpielerFarbe" ) )
		spielerFarbe = *dat->zWert( "SpielerFarbe" );
	if( dat->wertExistiert( "TeamFarbe" ) )
		teamFarbe = *dat->zWert( "TeamFarbe" );
	if( dat->wertExistiert( "LinienLänge" ) )
		linienLength = *dat->zWert( "LinienLänge" );
	if( dat->wertExistiert( "Kills" ) )
		kills = *dat->zWert( "Kills" );
	if( dat->wertExistiert( "Todeszeit" ) )
		todeszeit = *dat->zWert( "Todeszeit" );
	dat->release();
}

// constant
int RundenSpielerStatistik::getSpielerNummer() const
{
	return spielerNummer;
}

Text *RundenSpielerStatistik::getSpielerName() const
{
	return spielerName ? spielerName->getThis() : 0;
}

Text *RundenSpielerStatistik::zSpielerName() const
{
	return spielerName;
}

Text *RundenSpielerStatistik::getTeamName() const
{
	return teamName ? teamName->getThis() : 0;
}

Text *RundenSpielerStatistik::zTeamName() const
{
	return teamName;
}

int RundenSpielerStatistik::getSpielerFarbe() const
{
	return spielerFarbe;
}

int RundenSpielerStatistik::getTeamFarbe() const
{
	return teamFarbe;
}

int RundenSpielerStatistik::getLinienLength() const
{
	return linienLength;
}

int RundenSpielerStatistik::getKills() const
{
	return kills;
}

int RundenSpielerStatistik::getTodesZeit() const
{
	return todeszeit;
}

// Reference Counting
RundenSpielerStatistik *RundenSpielerStatistik::getThis()
{
	ref++;
	return this;
}

RundenSpielerStatistik *RundenSpielerStatistik::release()
{
	ref--;
	if( !ref )
		delete this;
	return 0;
}