void finalize_level(struct level *self) { close_level(self); }
void load_level(char * levelFilename, Uint8 closePrevLevel) { char buffer[512]; FILE * file = NULL; FILE * file_temp = NULL; if (!levelFilename) { slog("Error: level file name was null"); return; } file = fopen(levelFilename, "r"); if (!file) { slog("Error: cannot load the level with filename (%s)", levelFilename); fclose(file); return; } rewind(file); if (closePrevLevel > 0) { close_level(); } while (fscanf(file, "%s", buffer) != EOF) { if (strcmp(buffer, "background:") == 0) { fscanf(file, "%s", buffer); backgroundSprite = gf2d_sprite_load_image(buffer); } if (strcmp(buffer, "tilemap:") == 0) { fscanf(file, "%s", buffer); file_temp = fopen(buffer, "r"); if (!file_temp) { slog("Error: could not open tilemap file"); //fclose(file_temp); continue; } tilemap_load_from_file(file_temp, tile_map); fclose(file_temp); } if (strcmp(buffer, "band:") == 0) { fscanf(file, "%s", buffer); file_temp = fopen(buffer, "r"); if (!file_temp) { slog("Error: could not open band file"); //fclose(file_temp); continue; } entityLoadAllFromFile(file_temp, tile_map); fclose(file_temp); } if (strcmp(buffer, "mouse:") == 0) { fscanf(file, "%s", buffer); mouseSprite = gf2d_sprite_load_all(buffer, 32, 32, 16); mouse = mouseSprite; } if (strcmp(buffer, "extraSprites:") == 0) { while (1) { fscanf(file, "%s", buffer); if (strcmp(buffer, "END") == 0) { break; } gui = gf2d_sprite_load_image(buffer); } } if (strcmp(buffer, "musicSheet") == 0) { musicSheet = gf2d_sprite_load_image("images/gui/music_sheet.png"); } } controllerIcon = gf2d_sprite_load_all("images/gui/controller64x.png", 64, 64, 1); fclose(file); }