Esempio n. 1
0
/**************************************************************************
...
**************************************************************************/
static void refresh_happiness_bitmap(HBITMAP bmp,
				     struct city *pcity,
				     enum citizen_feeling index)
{
  enum citizen_category citizens[MAX_CITY_SIZE];
  RECT rc;
  int i;
  int num_citizens = get_city_citizen_types(pcity, index, citizens);
  int pix_width = HAPPINESS_PIX_WIDTH * tileset_small_sprite_width(tileset);
  int offset = MIN(tileset_small_sprite_width(tileset), pix_width / num_citizens);
  /* int true_pix_width = (num_citizens - 1) * offset + tileset_small_sprite_width(tileset); */
  HDC hdc = CreateCompatibleDC(NULL);
  HBITMAP old=SelectObject(hdc,bmp);

  rc.left=0;
  rc.top=0;
  rc.right=pix_width;
  rc.bottom=tileset_small_sprite_height(tileset);
  FillRect(hdc,&rc,(HBRUSH)GetClassLong(root_window,GCL_HBRBACKGROUND));

  for (i = 0; i < num_citizens; i++) {
    draw_sprite(get_citizen_sprite(tileset, citizens[i], i, pcity),
		hdc, i * offset, 0);
  }

  SelectObject(hdc,old);
  DeleteDC(hdc);
}
Esempio n. 2
0
/**************************************************************************
...
**************************************************************************/
Pixmap get_citizen_pixmap(enum citizen_category type, int cnum,
			  struct city *pcity)
{
  return get_citizen_sprite(tileset, type, cnum, pcity)->pixmap;
}