Beispiel #1
0
void finalize_level(struct level *self)
{
	close_level(self);
}
Beispiel #2
0
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);
}