Changeset 70 for trunk/src/map.cpp


Ignore:
Timestamp:
Jul 6, 2010, 2:02:41 PM (11 years ago)
Author:
sam
Message:

Breaking the map/layer code apart. Needs more work.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/map.cpp

    r47 r70  
    1010    nlayers(0)
    1111{
     12    char tmp[BUFSIZ];
     13    int firstgid = 0, width = 0, height = 0, level = 0, data = 0;
     14
     15    FILE *fp = fopen(path, "r");
     16
     17    if (!fp)
     18        return;
     19
     20    while (!feof(fp))
     21    {
     22        char str[1024];
     23        int i, j, k;
     24        char a, b;
     25
     26        fgets(tmp, BUFSIZ, fp);
     27
     28        if (data)
     29        {
     30            if (--data == 0)
     31            {
     32                layers[nlayers] = new Layer(width, height, level, tmp);
     33                nlayers++;
     34            }
     35        }
     36        else if (sscanf(tmp, " <tileset firstgid=\"%i\"", &i) == 1)
     37        {
     38            firstgid = i;
     39            fprintf(stderr, "found tileset, firstgid %i\n", firstgid);
     40        }
     41        else if (sscanf(tmp, " <image source=\"%[^\"]\"", str) == 1)
     42        {
     43            fprintf(stderr, "image %s\n", str);
     44        }
     45        else if (sscanf(tmp, " <layer name=\"%c%i%c%*[^\"]\" width=\"%i\" height=\"%i\"",
     46                        &a, &i, &b, &j, &k) == 5)
     47        {
     48            fprintf(stderr, "%s layer, level %i, sublevel %c, %ix%i\n",
     49                    a == 'H' ? "horizontal" : "vertical", i, b, j, k);
     50            layers = (Layer **)realloc(layers, sizeof(Layer **) * (nlayers + 1));
     51            width = j;
     52            height = k;
     53            data = 2;
     54        }
     55        else
     56        {
     57            fprintf(stderr, ".");
     58        }
     59    }
     60
     61    fclose(fp);
     62
     63/*
    1264    char tmp[1024];
    1365
     
    1870    while (fp && !feof(fp))
    1971    {
    20         char name[1024];
    2172        int width, height;
    2273
     
    3384
    3485    pclose(fp);
     86*/
    3587}
    3688
Note: See TracChangeset for help on using the changeset viewer.