#include "scrX11.H"
#include "sprite01.H"
#include <fstream>
/*
class untergrundtabtype : protected palettetype
{
public:
  untergrundtabtype(palettetype *pal,char *dateiname,int8 mode=CFG_TEXT_MODE);

  char remap(const palentrytype &entry);
  // Tabelle Abbildung Palentries->Untergrundnr [0,256] -> {0,1,...,anzentries-1}
  char tab[256];
};


untergrundtabtype::untergrundtabtype(palettetype *pal,char *dateiname,int8 mode)
  : palettetype(dateiname,mode)
{
  cout << "untergrundtabtype: Calculating underground table...\n";
  for (int aktf=0;aktf<pal->anzentries;aktf++)
    {
      tab[aktf]=remap(pal->palette[aktf]);
      cout << "Palentry "<<aktf<<" -> "<<(int)tab[aktf]<<" Hue: "<<pal->palette[aktf].hue()<<endl;
      tab[aktf]=tab[aktf]>>2;
    }
}

char untergrundtabtype::remap(const palentrytype &entry)
{
  float differs=0;
  int16 best=-1;
  for (int16 akt=0;akt<anzentries;akt++)
    {
      if (palette[akt]==entry)
	{
	  return akt;
	}
      else
	{
	  /  *	  float aktdif=fabs(palette[akt].hue()-entry.hue());
	  if (aktdif>M_PI)
	    aktdif=2.0*M_PI-aktdif;*     /
	  float aktdif=palette[akt].farbtondif(entry);
	  if ((best==-1)||(aktdif<=differs))
	    {
	      best=akt;
	      differs=aktdif;
	    }
	}
    }
  return best;
}
*/

int main()
{
  init_allsprites_kette("palette.ppm");
  sprite_linear_nontransparent_screentype screen(0,0,100,100,0,0,"palette.ppm",NULL);
  ofstream f("untergrund.tab");
  int anzentries=allsprites_ketteptr->paletteptr->anzentries;
  f << "untergrundtabtype\n";
  f << anzentries << endl;
  for (int a=0;a<anzentries;a++)
    {
      screen.malerechteck_flaeche(0,0,100,100,(char)a);
      screen.map();
      cout << "Type: (0=Street,1=dirt,2=gras,3=beach,4=bad street,5=deep water,6=not so deep water) ";
      int no;
      cin >>no;
      f << no <<";";
    }
  f << "ende\n";
  deinit_allsprites_kette();
}


// todo falls ich dieses Tool jemals brauche !!! muss ich es noch machen ansonsten einfach egal !!




