#include "SpielerStatistik.h"

// Inhalt der SpielerStatistik Klasse aus SpielerStatistik.h
// Konstruktor
SpielerStatistik::SpielerStatistik()
{
	spielerNummer = 0;
	spielerName = new Text();
	teamName = new Text();
	spielerFarbe = 0;
	teamFarbe = 0;
	schadenBekommen = 0;
	schadenGemacht = 0;
	treibstoffVerbraucht = 0;
	shots = 0;
	treffer = 0;
	punkte = 0;
	kills = 0;
	tode = 0;
	zeitAmLeben = 0;
	zeitTod = 0;
	ref = 1;
}

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

// nicht constant
void SpielerStatistik::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( "SchadenBekommen" ) )
		schadenBekommen = *dat->zWert( "SchadenBekommen" );
	if( dat->wertExistiert( "SchadenGemacht" ) )
		schadenGemacht = *dat->zWert( "SchadenGemacht" );
	if( dat->wertExistiert( "TreibstoffVerbraucht" ) )
		treibstoffVerbraucht = *dat->zWert( "TreibstoffVerbraucht" );
	if( dat->wertExistiert( "Schüsse" ) )
		shots = *dat->zWert( "Schüsse" );
	if( dat->wertExistiert( "Treffer" ) )
		treffer = *dat->zWert( "Treffer" );
	if( dat->wertExistiert( "Punkte" ) )
		punkte = *dat->zWert( "Punkte" );
	if( dat->wertExistiert( "Kills" ) )
		kills = *dat->zWert( "Kills" );
	if( dat->wertExistiert( "Tode" ) )
		tode = *dat->zWert( "Tode" );
	if( dat->wertExistiert( "ZeitAmLeben" ) )
		zeitAmLeben = *dat->zWert( "ZeitAmLeben" );
	if( dat->wertExistiert( "ZeitTod" ) )
		zeitTod = *dat->zWert( "ZeitTod" );
	dat->release();
}

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

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

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

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

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

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

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

int SpielerStatistik::getSchadenBekommen() const
{
	return schadenBekommen;
}

int SpielerStatistik::getSchadenGemacht() const
{
	return schadenGemacht;
}

int SpielerStatistik::getTreibstoffVerbraucht() const
{
	return treibstoffVerbraucht;
}

int SpielerStatistik::getShots() const
{
	return shots;
}

int SpielerStatistik::getTreffer() const
{
	return treffer;
}

int SpielerStatistik::getPunkte() const
{
	return punkte;
}

int SpielerStatistik::getZeitAmLeben() const
{
	return zeitAmLeben;
}

int SpielerStatistik::getZeitTod() const
{
	return zeitTod;
}

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

int SpielerStatistik::getTode() const
{
	return tode;
}

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

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