TextureContainer::TextureContainer(const res::path & strName, TCFlags flags)
	: m_texName(strName)
{
	arx_assert(!strName.has_ext("bmp") && !strName.has_ext("tga"),
	           "bad texture name: \"%s\"", strName.string().c_str());
	
	m_size = Vec2i_ZERO;
	m_dwFlags = flags;

	m_pTexture = NULL;

	userflags = 0;
	TextureHalo = NULL;
	
	m_pNext = NULL;
	
	// Add the texture to the head of the global texture list
	if(!(flags & NoInsert)) {
		m_pNext = g_ptcTextureList;
		g_ptcTextureList = this;
	}

	systemflags = 0;

	m_roomBatches = RoomBatches();
	m_modelBatch = ModelBatch();
}
//-----------------------------------------------------------------------------
// Name: TextureContainer()
// Desc: Constructor for a texture object
//-----------------------------------------------------------------------------
TextureContainer::TextureContainer(const res::path & strName, TCFlags flags) : m_texName(strName) {
	
	arx_assert_msg(!strName.has_ext("bmp") && !strName.has_ext("tga"),
	               "bad texture name: \"%s\"", strName.string().c_str());
	
	m_dwWidth = 0;
	m_dwHeight = 0;
	m_dwFlags = flags;

	m_pTexture = NULL;

	userflags = 0;
	TextureRefinement = NULL;
	TextureHalo = NULL;

	// Add the texture to the head of the global texture list
	if(!(flags & NoInsert)) {
		m_pNext = g_ptcTextureList;
		g_ptcTextureList = this;
	}

	delayed = NULL;
	delayed_nb = 0;
	delayed_max = 0;

	systemflags = 0;

	ulMaxVertexListCull = 0;
	ulNbVertexListCull = 0;
	pVertexListCull = NULL; 

	ulMaxVertexListCull_TNormalTrans = 0; 
	ulNbVertexListCull_TNormalTrans = 0;
	pVertexListCull_TNormalTrans = NULL; 

	ulMaxVertexListCull_TAdditive = 0; 
	ulNbVertexListCull_TAdditive = 0;
	pVertexListCull_TAdditive = NULL; 

	ulMaxVertexListCull_TSubstractive = 0; 
	ulNbVertexListCull_TSubstractive = 0;
	pVertexListCull_TSubstractive = NULL; 

	ulMaxVertexListCull_TMultiplicative = 0; 
	ulNbVertexListCull_TMultiplicative = 0;
	pVertexListCull_TMultiplicative = NULL; 

	tMatRoom = NULL;

	vPolyInterZMap.clear();
	vPolyZMap.clear();
}
//-----------------------------------------------------------------------------
// Name: TextureContainer()
// Desc: Constructor for a texture object
//-----------------------------------------------------------------------------
TextureContainer::TextureContainer(const res::path & strName, TCFlags flags) : m_texName(strName) {
	
	arx_assert(!strName.has_ext("bmp") && !strName.has_ext("tga"),
	           "bad texture name: \"%s\"", strName.string().c_str());
	
	m_dwWidth = 0;
	m_dwHeight = 0;
	m_dwFlags = flags;

	m_pTexture = NULL;

	userflags = 0;
	TextureRefinement = NULL;
	TextureHalo = NULL;

	// Add the texture to the head of the global texture list
	if(!(flags & NoInsert)) {
		m_pNext = g_ptcTextureList;
		g_ptcTextureList = this;
	}

	systemflags = 0;

	max[TextureContainer::Opaque] = 0;
	count[TextureContainer::Opaque] = 0;
	list[TextureContainer::Opaque] = NULL;

	max[TextureContainer::Blended] = 0;
	count[TextureContainer::Blended] = 0;
	list[TextureContainer::Blended] = NULL;

	max[TextureContainer::Additive] = 0;
	count[TextureContainer::Additive] = 0;
	list[TextureContainer::Additive] = NULL;

	max[TextureContainer::Subtractive] = 0;
	count[TextureContainer::Subtractive] = 0;
	list[TextureContainer::Subtractive] = NULL;

	max[TextureContainer::Multiplicative] = 0;
	count[TextureContainer::Multiplicative] = 0;
	list[TextureContainer::Multiplicative] = NULL;

	tMatRoom = NULL;

}