Skip to content

Commit aa55fb2

Browse files
committed
md3filter: Remove artificial export limits
Ideally the file size should be calculated and allow up to 2GB which is unlikely to be run into. (MD2 export doesn't enforce limits either and has the exact same issue MD3 now has [invalid beyond 2GB].)
1 parent 6aad562 commit aa55fb2

File tree

1 file changed

+0
-43
lines changed

1 file changed

+0
-43
lines changed

src/libmm3d/md3filter.cc

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1920,13 +1920,6 @@ Model::ModelErrorE Md3Filter::writeSectionFile( const char * filename, Md3Filter
19201920
}
19211921
}
19221922

1923-
if ( numFrames > MD3_MAX_FRAMES )
1924-
{
1925-
log_error( "Number of frames(%d) is larger than %d\n.\n", numFrames, MD3_MAX_FRAMES );
1926-
m_model->setFilterSpecificError( transll( QT_TRANSLATE_NOOP( "LowLevel", "Too many animation frames for MD3 export." ) ).c_str() );
1927-
return Model::ERROR_FILTER_SPECIFIC;
1928-
}
1929-
19301923
if ( animCount == 0 )
19311924
{
19321925
animCount = 1;
@@ -1954,10 +1947,6 @@ Model::ModelErrorE Md3Filter::writeSectionFile( const char * filename, Md3Filter
19541947
MeshList::iterator mlit;
19551948

19561949
int32_t numMeshes = 0;
1957-
size_t maxMeshTris = 0;
1958-
size_t maxMeshVerts = 0;
1959-
1960-
std::string groupName;
19611950

19621951
for ( mlit = meshes.begin(); mlit != meshes.end(); mlit++ )
19631952
{
@@ -1969,49 +1958,17 @@ Model::ModelErrorE Md3Filter::writeSectionFile( const char * filename, Md3Filter
19691958
if ( groupInSection( m_model->getGroupName( (*mlit).group ), section ) )
19701959
{
19711960
numMeshes++;
1972-
if ( (*mlit).faces.size() > maxMeshTris ) {
1973-
maxMeshTris = (*mlit).faces.size();
1974-
}
1975-
if ( (*mlit).vertices.size() > maxMeshVerts ) {
1976-
maxMeshVerts = (*mlit).vertices.size();
1977-
}
19781961
}
19791962
}
19801963
}
19811964

19821965
int32_t numSkins = 0;
1983-
if ( numTags > MD3_MAX_TAGS )
1984-
{
1985-
log_error( "Number of tags(%d) is larger than %d\n.\n", numTags, MD3_MAX_TAGS );
1986-
m_model->setFilterSpecificError( transll( QT_TRANSLATE_NOOP( "LowLevel", "Too many points for MD3 export." ) ).c_str() );
1987-
return Model::ERROR_FILTER_SPECIFIC;
1988-
}
1989-
if ( numMeshes > MD3_MAX_SURFACES )
1990-
{
1991-
log_error( "Number of groups(%d) is larger than %d\n.\n", numMeshes, MD3_MAX_SURFACES );
1992-
m_model->setFilterSpecificError( transll( QT_TRANSLATE_NOOP( "LowLevel", "Too many groups for MD3 export." ) ).c_str() );
1993-
return Model::ERROR_FILTER_SPECIFIC;
1994-
}
19951966
// numSkins is usually zero for MD3 header, there can be skins for each mesh though later
19961967
int32_t offsetFrames = HEADER_SIZE;
19971968
int32_t offsetTags = offsetFrames + numFrames * FRAME_SIZE;
19981969
int32_t offsetMeshes = offsetTags + numFrames * numTags * TAG_SIZE;
19991970
int32_t offsetEnd = offsetMeshes;
20001971

2001-
// MD3 limit tests
2002-
if ( maxMeshTris > MD3_MAX_TRIANGLES )
2003-
{
2004-
log_error( "Number of triangles(%d) is larger than %d\n.\n", maxMeshTris, MD3_MAX_TRIANGLES );
2005-
m_model->setFilterSpecificError( transll( QT_TRANSLATE_NOOP( "LowLevel", "Too many faces in a single group for MD3 export" ) ).c_str() );
2006-
return Model::ERROR_FILTER_SPECIFIC;
2007-
}
2008-
if ( maxMeshVerts > MD3_MAX_VERTS )
2009-
{
2010-
log_error( "Number of verticies(%d) is larger than %d\n.\n", maxMeshVerts, MD3_MAX_VERTS );
2011-
m_model->setFilterSpecificError( transll( QT_TRANSLATE_NOOP( "LowLevel", "Too many vertices in a single group for MD3 export" ) ).c_str() );
2012-
return Model::ERROR_FILTER_SPECIFIC;
2013-
}
2014-
20151972
// Open file for writing
20161973
Model::ModelErrorE err = Model::ERROR_NONE;
20171974
m_dst = openOutput( filename, err );

0 commit comments

Comments
 (0)