Exemple #1
0
void
load_dat_level (int number)
{
  char *filename;
  xasprintf (&filename, levels_dat_filename);

  int8_t *dat =
    load_resource (filename, (load_resource_f) load_file);

  if (! dat)
    error (-1, 0, "cannot read dat level file %s", filename);

  al_free (filename);

  int8_t *offset;
  int16_t size;
  dat_getres (dat, 2000 + number, &offset, &size);

  if (! offset)
    error (-1, 0, "incorrect format for dat level file %s", filename);

  memcpy (&lv, offset, sizeof (lv));

  interpret_legacy_level (number);
  legacy_level.next_level = next_dat_level;

  al_free (dat);
}
Exemple #2
0
struct level *
load_dat_level (struct level *l, int n)
{
  char *filename;
  xasprintf (&filename, levels_dat_filename);

  int8_t *dat =
    load_resource (filename, (load_resource_f) load_file);

  if (! dat) {
    error (0, 0, "cannot read dat level file %s", filename);
    return NULL;
  }

  al_free (filename);

  int8_t *offset;
  int16_t size;
  dat_getres (dat, 2000 + n, &offset, &size);

  if (! offset) {
    error (0, 0, "incorrect format for dat level file %s", filename);
    return NULL;
  }

  memcpy (&lv, offset, sizeof (lv));

  interpret_legacy_level (l, n);
  l->next_level = next_dat_level;

  al_free (dat);
  return l;
}