public void reload()
	{
		if (mapPanel.level != null)
		{
			objectPanel.loadObjects();

			for (int n = 0; n < mapPanel.level.getNumOfLayers(); n++)
			{
				try
				{
					mapPanel.level.getLayer(n).setImgPath(Data.getDataDirectory() + "/data/gfx/tileset/" + tilesetName + "0.bmp");
					mapPanel.level.getLayer(n).reloadImg();
				}
				catch (IOException ex)
				{
				}
			}

			// Set tileset panel image
			tilesetPanel.setImage(0, mapPanel.level.getLayer(1).getImg());
			tilesetPanel.showLayer[0] = true;
			tilesetPanel.defaultSettings();

			// Set map panel images
			for (int n = 0; n < mapPanel.level.getNumOfLayers(); n++)
			{
				BufferedImage defMapImg = new BufferedImage(mapPanel.level.getLayer(n).getWidth() * 16, mapPanel.level.getLayer(n).getHeight() * 16, BufferedImage.TYPE_INT_ARGB);
				mapPanel.setImage(n, defMapImg);
				mapPanel.showLayer[n] = true;
			}

			// Reload collision
			try
			{
				mapPanel.level.reloadCollision();
			}
			catch (IOException ex)
			{
			}

			tilesetPanel.revalidate();
			mapPanel.revalidate();

			// Refresh the level area
			for (int n = 0; n < mapPanel.drawAreaLayers.size(); n++)
			{
				int levelWidth = mapPanel.level.getLayer(n).getWidth() * 16;
				int levelHeight = mapPanel.level.getLayer(n).getHeight() * 16;

				for (int i = 0, x = 0; i < levelWidth; i+=16, x++)
				{
					for (int j = 0, y = 0; j < levelHeight; j+=16, y++)
					{
						int tile = mapPanel.level.getLayer(n).getTile(x, y);
						mapPanel.paintTile(n, tile, i, j, true);
					}
				}
			}
		}
	}