Ejemplo n.º 1
0
static int
read_scores (const char *filename, struct score_entry **scores,
	     ptrdiff_t *count, ptrdiff_t *alloc)
{
  int readval = -1;
  ptrdiff_t scorecount = 0;
  ptrdiff_t cursize = 0;
  struct score_entry *ret = 0;
  struct score_entry entry;
  FILE *f = fopen (filename, "r");
  int retval = -1;
  if (!f)
    return -1;
  while ((readval = read_score (f, &entry)) == 0)
    if (push_score (&ret, &scorecount, &cursize, &entry) < 0)
      return -1;
  if (readval > 0 && fclose (f) == 0)
    {
      *count = scorecount;
      *alloc = cursize;
      *scores = ret;
      retval = 0;
    }
  return retval;
}
Ejemplo n.º 2
0
Player build_player(address_space *addr) {
    uint8_t x = addr->read_byte(RAM_PLAYER_X) - BOARD_MIN_X;
    uint8_t y = addr->read_byte(RAM_PLAYER_Y) - BOARD_MIN_Y;
    Point position = { x, y };
    uint8_t lives  = addr->read_byte(RAM_P1_LIVES);
    uint32_t score = read_score(addr);
    Player player  = { position, lives, score };
    return player;
}
Ejemplo n.º 3
0
static int
read_scores (const char *filename, struct score_entry **scores,
	     ptrdiff_t *count, ptrdiff_t *alloc)
{
  char *p, *filedata;
  ptrdiff_t filesize, nread;
  struct stat st;
  FILE *f = fopen (filename, "r");
  if (!f)
    return -1;
  if (fstat (fileno (f), &st) != 0)
    return -1;
  if (! (0 <= st.st_size && st.st_size < min (PTRDIFF_MAX, SIZE_MAX)))
    {
      errno = EOVERFLOW;
      return -1;
    }
  filesize = st.st_size;
  filedata = malloc (filesize + 1);
  if (! filedata)
    return -1;
  nread = fread (filedata, 1, filesize + 1, f);
  if (filesize < nread)
    {
      errno = 0;
      return -1;
    }
  if (nread < filesize)
    filesize = nread;
  if (ferror (f) || fclose (f) != 0)
    return -1;
  filedata[filesize] = 0;
  if (strlen (filedata) != filesize)
    {
      errno = 0;
      return -1;
    }

  *scores = 0;
  *count = *alloc = 0;
  for (p = filedata; p < filedata + filesize; )
    {
      struct score_entry entry;
      p = read_score (p, &entry);
      if (!p)
	{
	  errno = 0;
	  return -1;
	}
      if (push_score (scores, count, alloc, &entry) < 0)
	return -1;
    }
  return 0;
}
Ejemplo n.º 4
0
void show_scores()
{
    int i=0;
    char text_name[25];
    char text_score[25];
    
    TTF_Font *MyFont;
    SDL_Color MyColor = {255,255,255};
    SDL_Color MyColor2 = {255,0,0};
    SDL_Surface *message = NULL;
    
    MyFont = TTF_OpenFont("fonts\\sfont.ttf",20);
    message = TTF_RenderText_Blended(MyFont,"TEAM NAMES",MyColor2);
    draw_image(message,screen,NULL,150,170);
    
    SDL_FreeSurface(message);
    message = NULL;
    
    message = TTF_RenderText_Blended(MyFont,"SCORES",MyColor2);
    draw_image(message,screen,NULL,800,170);

    SDL_FreeSurface(message);
    message = NULL;
    
    read_score();
    sort_score();    

    for(i=0;i<10;++i)
    {
            strcpy(text_name,score[i].name);
            message = TTF_RenderText_Blended(MyFont,text_name,MyColor);
            draw_image(message,screen,NULL,150,200 + (30 * i));
            
            SDL_FreeSurface(message);
            message = NULL;
    
            itoa(score[i].score,text_score,10);
            message = TTF_RenderText_Blended(MyFont,text_score,MyColor);
            draw_image(message,screen,NULL,800,200 + (30 * i));
            
            SDL_FreeSurface(message);
            message = NULL;
    }
    
    SDL_Flip(screen);
    TTF_CloseFont(MyFont);
    SDL_FreeSurface(message);
    MyFont = NULL;
    message = NULL;
}
Ejemplo n.º 5
0
Scores::Scores() {
    read_score();
}