X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Flevel.c;h=b9f0ea47b177facf02f3f40e13c45651586e7493;hb=6d9952207d28e19d3448c9e0f8859be19d3acc88;hp=50aa6b6a8ddcb94adb1148ad88f4283a48cd03f9;hpb=15c2cb4042be5bbbf3e48bf1184d7fef62b1e9fa;p=supertux.git diff --git a/src/level.c b/src/level.c index 50aa6b6a8..b9f0ea47b 100644 --- a/src/level.c +++ b/src/level.c @@ -116,6 +116,57 @@ void loadlevel(st_level* plevel, char *subset, int level) } +/* Save data for level: */ + +void savelevel(st_level* plevel, char * subset, int level) +{ + FILE * fi; + char * filename; + int y; + char str[80]; + + /* Save data file: */ + + filename = (char *) malloc(sizeof(char) * (strlen(DATA_PREFIX) + 20) + strlen(subset)); + sprintf(filename, "%s/levels/%s/level%d.dat", DATA_PREFIX, subset, level); + fi = fopen(filename, "w"); + if (fi == NULL) + { + perror(filename); + st_shutdown(); + free(filename); + exit(-1); + } + free(filename); + + fputs(plevel->name, fi); + fputs("\n", fi); + fputs(plevel->theme, fi); + fputs("\n", fi); + sprintf(str, "%d\n", plevel->time_left); /* time */ + fputs(str, fi); + fputs(plevel->song_title, fi); /* song filename */ + fputs("\n",fi); + fputs(plevel->bkgd_image, fi); /* background image */ + sprintf(str, "\n%d\n", plevel->bkgd_red); /* red background color */ + fputs(str, fi); + sprintf(str, "%d\n", plevel->bkgd_green); /* green background color */ + fputs(str, fi); + sprintf(str, "%d\n", plevel->bkgd_blue); /* blue background color */ + fputs(str, fi); + sprintf(str, "%d\n", plevel->width); /* level width */ + fputs(str, fi); + + for(y = 0; y < 15; ++y) + { + fputs(plevel->tiles[y], fi); + fputs("\n", fi); + } + + fclose(fi); +} + + /* Unload data for this level: */ void unloadlevel(st_level* plevel)