コード例 #1
0
ファイル: fonts.c プロジェクト: Lopo/Lotos
/****************************************************************************
  addchar

	Attempts to add the given character onto the end of the current line.
  Returns 1 if this can be done, 0 otherwise.
****************************************************************************/
int addchar(long c)
{
  int smushamount=0,row;
  char *templine;

	set_crash();
  getletter(c);
  if (outlinelen+currcharwidth>outlinelenlimit
      ||inchrlinelen+1>inchrlinelenlimit) {
    return 0;
  }
  
  templine = (char*)myalloc(sizeof(char)*(outlinelenlimit+1));
  for (row=0;row<charheight;row++) {
    if (right2left) {
      strcpy(templine,currchar[row]);
      strcat(templine,outline[row]+smushamount);
      strcpy(outline[row],templine);
    }
    else
      strcat(outline[row],currchar[row]+smushamount);
    
  }
  free(templine);
  outlinelen = MYSTRLEN(outline[0]);
  inchrline[inchrlinelen++] = c;
  return 1;
}
コード例 #2
0
ファイル: tektext_part.c プロジェクト: plean/Info
void	tektext_part(t_bunny_pixelarray	*out,
		     const char		*str,
		     t_font		*font,
		     t_bunny_position	*pos)
{
  int			i;
  int			limit = 0;
  t_bunny_position	bis;

  limit = getletter();
  bis.x = pos->x;
  bis.y = pos->y;
  i = 0;
  while (str[i] != '\0' && i < limit)
    {
      if (str[i] == '\n')
	{
	  bis.x = pos->x;
	  bis.y += font->letter.y * font->scale + 1;;
	}
      else
	{
	  draw_letter(out, font, str[i], &bis);
	  bis.x += font->letter.x * font->scale + 1;
	}
      ++i;
    }
}
コード例 #3
0
ファイル: art.cpp プロジェクト: RKelson93/mushclient
static int addchar(inchr c)
{
  int smushamount,row,k;
  char *templine;

  getletter(c);
  smushamount = smushamt();
  if (outlinelen+currcharwidth-smushamount>outlinelenlimit
      ||inchrlinelen+1>inchrlinelenlimit) {
    return 0;
    }

  templine = (char*)myalloc(sizeof(char)*(outlinelenlimit+1));
  for (row=0;row<charheight;row++) {
    if (right2left) {
      strcpy(templine,currchar[row]);
      for (k=0;k<smushamount;k++) {
        templine[currcharwidth-smushamount+k] =
          smushem(templine[currcharwidth-smushamount+k],outputline[row][k]);
        }
      strcat(templine,outputline[row]+smushamount);
      strcpy(outputline[row],templine);
      }
    else {
      for (k=0;k<smushamount;k++) {
        outputline[row][outlinelen-smushamount+k] =
          smushem(outputline[row][outlinelen-smushamount+k],currchar[row][k]);
        }
      strcat(outputline[row],currchar[row]+smushamount);
      }
    }
  myfree(templine);
  outlinelen = MYSTRLEN(outputline[0]);
  inchrline[inchrlinelen++] = c;
  return 1;
}