X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Flevel.c;h=ab14055d86ff016341fc3d84313d7a8386ccaf1a;hb=b9c029fdfbf54699ff0ebf2a64504ee40f6ec357;hp=7a84365942023f70bd1763a22212bc459da277b3;hpb=246f3981ea5e6dc3044cfb20c4d06be2787feb49;p=supertux.git diff --git a/src/level.c b/src/level.c index 7a8436594..ab14055d8 100644 --- a/src/level.c +++ b/src/level.c @@ -93,7 +93,40 @@ void subset_load(st_subset* st_subset, char *subset) break; } } - st_subset->levels = --i; + st_subset->levels = --i; +} + +void subset_save(st_subset* st_subset) +{ + FILE* fi; + char filename[1024]; + + /* Save data file: */ + sprintf(filename, "/levels/%s/", st_subset->name); + + fcreatedir(filename); + snprintf(filename, 1024, "%s/levels/%s/info", st_dir, st_subset->name); + if(!fwriteable(filename)) + snprintf(filename, 1024, "%s/levels/%s/info", DATA_PREFIX, st_subset->name); + if(fwriteable(filename)) + { + fi = fopen(filename, "w"); + if (fi == NULL) + { + perror(filename); + } + + /* Save title info: */ + fputs(st_subset->title, fi); + fputs("\n", fi); + + /* Save the description: */ + + fputs(st_subset->description, fi); + fputs("\n", fi); + fclose(fi); + + } } void subset_free(st_subset* st_subset) @@ -168,11 +201,11 @@ int level_load(st_level* plevel, char *subset, int level) /* (Level width) */ fgets(str, 10, fi); plevel->width = atoi(str); - + /* (Level gravity) */ fgets(str, 10, fi); plevel->gravity = atof(str); - + /* Set the global gravity to the latest loaded level's gravity */ gravity = plevel->gravity; @@ -250,7 +283,7 @@ void level_save(st_level* plevel, char * subset, int level) fputs(str, fi); sprintf(str, "%2.1f\n", plevel->gravity); /* level gravity */ fputs(str, fi); - + for(y = 0; y < 15; ++y) { fputs((const char*)plevel->tiles[y], fi);