aboutsummaryrefslogtreecommitdiff
path: root/file.c
blob: 64ee1c8bf8c93a6d647bc0f392d3535e4be0a533 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "game.h"
#include <stdio.h>

void load_config(const char *config)
{
  FILE *file = fopen(config, "r");

  if(!file)
    die("Config \'%s\' could not be found\n", config);
  
  char buffer[64];

  struct Entity *e;
  int use_src_rect, mirror;
  char texture[16];

  while( !feof(file) && game->num_tiles < MAX_TILES )
    {
      if( !fgets(buffer, 64,file) )
	break;

      if(buffer[0] == '#')
	 continue;

       // Tile
       e = &game->tiles[game->num_tiles ++];

       sscanf(buffer, "%f %f %d %d %d %d %s\n", &e->x, &e->y,
	      &e->w, &e->h, &use_src_rect, &mirror, texture);

       e->use_src_rect = use_src_rect ? true : false;
       e->mirror = mirror ? true : false;
       e->collidable = true;
       e->fixed = true;
       e->texture = load_texture(texture);

       e->name = malloc(32);
       sprintf(e->name, "brick %d", game->num_tiles);
    }
  
  fclose(file);
}