#ifndef ImSpiel_H
#define ImSpiel_H

#include "Laden\SpielLaden.h"
#include <SpielV.h>
#include <Bildschirm.h>

class ImSpiel : private Thread
{
private:
	SpielLaden *ladenFenster;
	SpielV *spielFenster;
	Schrift *schrift;
	int ladenStatus;
	int karteId;
	HINSTANCE mainDll;
	Text *dllName;
	bool sichtbar;
	bool rend;
	int ref;

public:
	// Konstruktor
	ImSpiel( Schrift *zSchrift );
	// Destruktor
	~ImSpiel();
	// nicht constant
	void setSichtbar( bool sichtbar );
	void beginnLaden( int karteId, SpielerTeamStruktur *sts );
	void lBAddSpieler( int accountId, int spielerNummer );
	void lBSetSpielerProzent( int accountId, int prozent );
	void lBSetSpielerPing( int accountId, int ping );
	void spielNachricht( int län, char *bytes );
	void endLaden();
	void thread() override;
	bool tick( double tickVal );
	void doMausEreignis( MausEreignis &me );
	void doTastaturEreignis( TastaturEreignis &te );
	void render( Bild &zRObj );
	// constant
	int getKarteId() const;
	bool istSichtbar() const;
	// Reference Counting
	ImSpiel *getThis();
	ImSpiel *release();
};

#endif