//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
// $NoKeywords: $
//
//=============================================================================//
#ifndef WADTYPES_H
#define WADTYPES_H
#pragma once

#include "basetypes.h"

// ---------------------------------------------------------
//
// This should include ONLY types (no function prototypes) 
// in or related to WADs that are shared among the engine
// and tools
//
// ---------------------------------------------------------

//===============
//   TYPES
//===============

#define	CMP_NONE		0
#define	CMP_LZSS		1

#define	TYP_NONE		0
#define	TYP_LABEL		1

#define	TYP_LUMPY		64
#define	TYP_PALETTE		64
#define	TYP_COLORMAP	65
#define	TYP_QPIC		66
#define	TYP_MIPTEX		67
#define	TYP_RAW			68
#define	TYP_COLORMAP2	69
#define	TYP_FONT		70
#define	TYP_SOUND		71
#define	TYP_QTEX		72


#define __QPIC_T
typedef struct qpic_s
{
	int			width, height;
	byte		data[4];			// variably sized
} qpic_t;

#define WAD_ID				MAKEID( 'W', 'A', 'D', '5' )
#define WAD_IDNAME			"WAD5"

typedef struct wadinfo_s
{
	char		identification[4];		// should be WAD2 or 2DAW
	int			numlumps;
	int			infotableofs;
} wadinfo_t;

#ifndef TEXTURE_NAME_LENGTH
#define TEXTURE_NAME_LENGTH	128
#endif

typedef struct lumpinfo_s
{
	int			filepos;
	int			disksize;
	int			size;					// uncompressed
	char		type;
	char		compression;
	char		pad1, pad2;
	char		name[TEXTURE_NAME_LENGTH];				// must be null terminated
} lumpinfo_t;

typedef struct
{
	lumpinfo_t	lump;
	int			iTexFile;	// index of the wad this texture is located in
} texlumpinfo_t;

#define MIPLEVELS		4
typedef struct miptex_s					// New WAD4 files
{
	char		name[TEXTURE_NAME_LENGTH];
	unsigned	width, height, view_width, view_height;
	float		reflectivity[3]; 		// Linear palette
	unsigned	offsets[MIPLEVELS];		// four mip maps stored
} miptex_t;


#define MAX_TEXTUREWIDTH	1024
#define MAX_TEXTUREHEIGHT	1024
#define MAX_TEXTURESIZE		(MAX_TEXTUREWIDTH*MAX_TEXTUREHEIGHT)
#define MAXLUMP		(((MAX_TEXTURESIZE * (64+16+4+1))/64) + sizeof(miptex_t) + 1024)         // biggest possible lump


#endif		// WADTYPES_H