#include "main.h"
#include "setup.h"
#include "ex.h"
#include "pixmap.h"
#include "score.h"

/* int -> １０進 char */
static char *itoa(int n,int m)
{
  static char num[10];
  int i;

  num[m]='\0'; m--;

  for(i=m;i>=0;i--)
  {
    num[i]=n%10;
    n/=10;
  }

  return num;
}

static int dnum[10] = { D0,D1,D2,D3,D4,D5,D6,D7,D8,D9 };

/* スコアを表示 */
void put_scr(signed int scr)
{
  static char psc[9];
  char *sc;
  int i;

/* 初期化 */
  if(scr<0)
  {
    strcpy(psc,"xxxxxxxx");
    scr=0;
  }

  if(scr>99999999) scr=99999999;
  sc=itoa(scr,8);

  for(i=0;i<8;i++)
    if(sc[i]!=psc[i]) put_num(scrwattr,dnum[(int)sc[i]],i*16,0);
}

/* 殺した cosmo の数を表示 */
void put_kill_cosmo(signed int csm)
{
  static char pcs[5];
  char *cs;
  int i;

/* 初期化 */
  if(csm<0)
  {
    strcpy(pcs,"xxxxx");
    csm=0;
  }

  if(csm>99999) csm=99999;
  cs=itoa(csm,5);

  for(i=0;i<5;i++)
    if(cs[i]!=pcs[i]) put_num(csmwattr,dnum[(int)cs[i]],i*16,0);
}

void put_line(signed int line)
{
  static char plin[5];
  char *lin;
  int i;

/* 初期化 */
  if(line<0)
  {
    strcpy(plin,"xxxx");
    line=0;
  }

  if(line>9999) line=9999;
  lin=itoa(line,4);

  for(i=0;i<4;i++)
    if(lin[i]!=plin[i]) put_num(linwattr,dnum[(int)lin[i]],i*16,0);
}

void put_level(signed int level)
{
  static char plev[4];
  char *lev;
  int i;

/* 初期化 */
  if(level<0)
  {
    strcpy(plev,"xxx");
    level=0;
  }

  if(level>999) level=999;
  lev=itoa(level,3);

  for(i=0;i<3;i++)
    if(lev[i]!=plev[i]) put_num(levwattr,dnum[(int)lev[i]],i*16,0);
}
