/*****************************************************************************/
/* Picture class for WonderWitch                                             */
/* キャラクターなどの画像を扱うクラス                                        */
/*****************************************************************************/

#include "picturep.h"

#include "etc.h"

int Picture_GetWidth( Picture picture) { return (picture->width ); }
int Picture_GetHeight(Picture picture) { return (picture->height); }

/*---------------------------------------------------------------------------*/
/* キャラクタ番号の取得                                                      */
/*---------------------------------------------------------------------------*/

int Picture_GetNumber(Picture picture) { return (picture->number); }

/*---------------------------------------------------------------------------*/
/* オブジェクトの生成                                                        */
/*---------------------------------------------------------------------------*/

Picture Picture_Create(Picture picture, Disp disp, int width, int height,
		       unsigned char bitmap[])
{
  if (picture == NULL) Error("Picture_Create", "Cannot allocate memory.");

  picture->disp = disp;
  picture->number = Disp_GetCharacterNumber(picture->disp);
  picture->width  = width;
  picture->height = height;

  /* WonderWitch の場合は，大きさは必ず 8x8 になる． */
  if ((picture->width != 8) || (picture->height != 8))
    Error("Picture_Create", "Invalid size.");

  font_set_monodata(picture->number, 1, bitmap);

  return (picture);
}

/*---------------------------------------------------------------------------*/
/* オブジェクトの削除                                                        */
/*---------------------------------------------------------------------------*/

Picture Picture_Destroy(Picture picture)
{
  /* キャラクタ番号を Disp オブジェクトに返す． */
  Disp_ReturnCharacterNumber(picture->disp, picture->number);
  return (NULL);
}

/*---------------------------------------------------------------------------*/
/* 配置                                                                      */
/*---------------------------------------------------------------------------*/

int Picture_Put(Picture picture, int x, int y)
{
  screen_fill_char(SCREEN2, x, y, 1, 1, picture->number);
  return (0);
}

/*****************************************************************************/
/* End of File.                                                              */
/*****************************************************************************/
