#include "Karte.h"
#include <Punkt.h>

// Inhalt der Karte Klasse aus Karte.h
// Konstruktor
Karte::Karte()
{
	id = 0;
	map = new Bild();
	size = Punkt( 0, 0 );
	ref = 1;
}

// Destruktor
Karte::~Karte()
{
	map->release();
}

// nicht constant
void Karte::setKarteId( int id )
{
	this->id = id;
}

void Karte::setSize( int br, int hi )
{
	map->neuBild( br, hi, 0 );
	size.x = br;
	size.y = hi;
}

// constant
int Karte::getKarteId() const
{
	return id;
}

int Karte::getBreite() const
{
	return size.x;
}

int Karte::getHeight() const
{
	return size.y;
}

Bild *Karte::zMap() const
{
	return ( map->getBreite() != 0 && map->getHeight() != 0 ) ? map : 0;
}

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

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