/*
=================
=
= VL_MungePic
=
=================
*/

void VL_MungePic (unsigned char far *source, unsigned width, unsigned height)
{
	unsigned	x,y,plane,size,pwidth;
	unsigned char	far *temp, far *dest, far *srcline;

	size = width*height;

	if (width&3)
		errout ("VL_MungePic: Not divisable by 4!\n");

//
// copy the pic to a temp buffer
//
	temp = (unsigned char far *)farmalloc (size);
	if (!temp)
		errout ("Non enough memory for munge buffer!\n");

	_fmemcpy (temp,source,size);

//
// munge it back into the original buffer
//
	dest = source;
	pwidth = width/4;

	for (plane=0;plane 4;plane++)
	{
		srcline = temp;
		for (y=0;y height;y++)
		{
			for (x=0;x pwidth;x++)
				*dest++ = *(srcline+x*4+plane);
			srcline+=width;
		}
	}

	free (temp);
}


///////////////////////////////////////
//
// TED5 MAP Header for WLF
//
///////////////////////////////////////

//
// MAP Names
//
typedef enum {
		LEVEL_ONE_MAP,           // 0
		LEVEL_TWO_MAP,           // 1
		LEVEL_THREE_MAP,         // 2
		LEVEL_FOUR_MAP,          // 3
		LASTMAP
	     } MAPnames;

///////////////////////////////////////
//
// TED5 MAP Header for WL6
//
///////////////////////////////////////

//
// MAP Names
//
typedef enum {
		WOLF1_MAP1_MAP,          // 0
		WOLF1_MAP2_MAP,          // 1
		WOLF1_MAP3_MAP,          // 2
		WOLF1_MAP4_MAP,          // 3
		WOLF1_MAP5_MAP,          // 4
		WOLF1_MAP6_MAP,          // 5
		WOLF1_MAP7_MAP,          // 6
		WOLF1_MAP8_MAP,          // 7
		WOLF1_BOSS_MAP,          // 8
		WOLF1_SECRET_MAP,        // 9
		WOLF2_MAP1_MAP,          // 10
		WOLF2_MAP2_MAP,          // 11
		WOLF2_MAP3_MAP,          // 12
		WOLF2_MAP4_MAP,          // 13
		WOLF2_MAP5_MAP,          // 14
		WOLF2_MAP6_MAP,          // 15
		WOLF2_MAP7_MAP,          // 16
		WOLF2_MAP8_MAP,          // 17
		WOLF2_BOSS_MAP,          // 18
		WOLF2_SECRET_MAP,        // 19
		WOLF3_MAP1_MAP,          // 20
		WOLF3_MAP2_MAP,          // 21
		WOLF3_MAP3_MAP,          // 22
		WOLF3_MAP4_MAP,          // 23
		WOLF3_MAP5_MAP,          // 24
		WOLF3_MAP6_MAP,          // 25
		WOLF3_MAP7_MAP,          // 26
		WOLF3_MAP8_MAP,          // 27
		WOLF3_BOSS_MAP,          // 28
		WOLF3_SECRET_MAP,        // 29
		WOLF4_MAP_1_MAP,         // 30
		WOLF4_MAP_2_MAP,         // 31
		WOLF4_MAP_3_MAP,         // 32
		WOLF4_MAP_4_MAP,         // 33
		WOLF4_MAP_5_MAP,         // 34
		WOLF4_MAP_6_MAP,         // 35
		WOLF4_MAP_7_MAP,         // 36
		WOLF4_MAP_8_MAP,         // 37
		WOLF4_BOSS_MAP,          // 38
		WOLF4_SECRET_MAP,        // 39
		WOLF5_MAP_1_MAP,         // 40
		WOLF5_MAP_2_MAP,         // 41
		WOLF5_MAP_3_MAP,         // 42
		WOLF5_MAP_4_MAP,         // 43
		WOLF5_MAP_5_MAP,         // 44
		WOLF5_MAP_6_MAP,         // 45
		WOLF5_MAP_7_MAP,         // 46
		WOLF5_MAP_8_MAP,         // 47
		WOLF5_BOSS_MAP,          // 48
		WOLF5_SECRET_MAP,        // 49
		WOLF6_MAP_1_MAP,         // 50
		WOLF6_MAP_2_MAP,         // 51
		WOLF6_MAP_3_MAP,         // 52
		WOLF6_MAP_4_MAP,         // 53
		WOLF6_MAP_5_MAP,         // 54
		WOLF6_MAP_6_MAP,         // 55
		WOLF6_MAP_7_MAP,         // 56
		WOLF6_MAP_8_MAP,         // 57
		WOLF6_BOSS_MAP,          // 58
		WOLF6_SECRET_MAP,        // 59
		MAP4L10PATH_MAP,         // 60
		LASTMAP
	     } MAPnames;

///////////////////////////////////////
//
// TED5 MAP Header for WL1
//
///////////////////////////////////////

//
// MAP Names
//
typedef enum {
		WOLF1_MAP1_MAP,          // 0
		WOLF1_MAP2_MAP,          // 1
		WOLF1_MAP3_MAP,          // 2
		WOLF1_MAP4_MAP,          // 3
		WOLF1_MAP5_MAP,          // 4
		WOLF1_MAP6_MAP,          // 5
		WOLF1_MAP7_MAP,          // 6
		WOLF1_MAP8_MAP,          // 7
		WOLF1_BOSS_MAP,          // 8
		WOLF1_SECRET_MAP,        // 9
		WOLF2_MAP1_MAP,          // 10
		WOLF2_MAP2_MAP,          // 11
		WOLF2_MAP3_MAP,          // 12
		WOLF2_MAP4_MAP,          // 13
		WOLF2_MAP5_MAP,          // 14
		WOLF2_MAP6_MAP,          // 15
		WOLF2_MAP7_MAP,          // 16
		WOLF2_MAP8_MAP,          // 17
		WOLF2_BOSS_MAP,          // 18
		WOLF2_SECRET_MAP,        // 19
		WOLF3_MAP1_MAP,          // 20
		WOLF3_MAP2_MAP,          // 21
		WOLF3_MAP3_MAP,          // 22
		WOLF3_MAP4_MAP,          // 23
		WOLF3_MAP5_MAP,          // 24
		WOLF3_MAP6_MAP,          // 25
		WOLF3_MAP7_MAP,          // 26
		WOLF3_MAP8_MAP,          // 27
		WOLF3_BOSS_MAP,          // 28
		WOLF3_SECRET_MAP,        // 29
		LASTMAP
	     } MAPnames;

///////////////////////////////////////
//
// TED5 MAP Header for SOD
//
///////////////////////////////////////

//
// MAP Names
//
typedef enum {
		TUNNELS_1_MAP,           // 0
		TUNNELS_2_MAP,           // 1
		TUNNELS_3_MAP,           // 2
		TUNNELS_4_MAP,           // 3
		TUNNEL_BOSS_MAP,         // 4
		DUNGEONS_1_MAP,          // 5
		DUNGEONS_2_MAP,          // 6
		DUNGEONS_3_MAP,          // 7
		DUNGEONS_4_MAP,          // 8
		DUNGEON_BOSS_MAP,        // 9
		CASTLE_1_MAP,            // 10
		CASTLE_2_MAP,            // 11
		CASTLE_3_MAP,            // 12
		CASTLE_4_MAP,            // 13
		CASTLE_5_MAP,            // 14
		CASTLE_BOSS_MAP,         // 15
		RAMPARTS_MAP,            // 16
		DEATH_KNIGHT_MAP,        // 17
		SECRET_1_MAP,            // 18
		SECRET_2_MAP,            // 19
		ANGEL_OF_DEATH_MAP,      // 20
		LASTMAP
	     } MAPnames;

///////////////////////////////////////
//
// TED5 MAP Header for SDM
//
///////////////////////////////////////

//
// MAP Names
//
typedef enum {
		TUNNELS_1_MAP,           // 0
		TUNNELS_2_MAP,           // 1
		LASTMAP
	     } MAPnames;