diff options
author | Andrey Nazarov <skuller@skuller.net> | 2008-03-26 20:17:21 +0000 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2008-03-26 20:17:21 +0000 |
commit | 2e5bdb7d4141cd6eb690ceca234fd2cf62410cff (patch) | |
tree | 7d5a1500d396ad593036fa260e57c67438844ab4 /source/gl_models.c | |
parent | a2b6e72158970ffbe789776649c07107b9cfb553 (diff) |
CM loading code no longer calls Com_Error.
Made endianness conversion macros return unsigned integers.
Diffstat (limited to 'source/gl_models.c')
-rw-r--r-- | source/gl_models.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/source/gl_models.c b/source/gl_models.c index d4a44b8..a586e25 100644 --- a/source/gl_models.c +++ b/source/gl_models.c @@ -340,8 +340,11 @@ static qboolean Model_LoadMd2( model_t *model, const byte *rawdata, int length ) scaleT = 1.0f / header.skinheight; for( i = 0; i < numIndices; i++ ) { if( remap[i] == i ) { - dst_tc[ finalIndices[i] ].st[0] = LittleShort( src_tc[ tcIndices[i] ].s ) * scaleS; - dst_tc[ finalIndices[i] ].st[1] = LittleShort( src_tc[ tcIndices[i] ].t ) * scaleT; + float s = ( signed short )LittleShort( src_tc[ tcIndices[i] ].s ); + float t = ( signed short )LittleShort( src_tc[ tcIndices[i] ].t ); + + dst_tc[ finalIndices[i] ].st[0] = s * scaleS; + dst_tc[ finalIndices[i] ].st[1] = t * scaleT; } } @@ -550,9 +553,9 @@ static qboolean Model_LoadMd3( model_t *model, const byte *rawdata, int length ) } dst_vert = dst_mesh->verts; for( j = 0; j < totalVerts; j++ ) { - dst_vert->pos[0] = LittleShort( src_vert->point[0] ); - dst_vert->pos[1] = LittleShort( src_vert->point[1] ); - dst_vert->pos[2] = LittleShort( src_vert->point[2] ); + dst_vert->pos[0] = ( signed short )LittleShort( src_vert->point[0] ); + dst_vert->pos[1] = ( signed short )LittleShort( src_vert->point[1] ); + dst_vert->pos[2] = ( signed short )LittleShort( src_vert->point[2] ); dst_vert->normalIndex = ll2byte[src_vert->norm[0]] [src_vert->norm[1]]; @@ -706,9 +709,9 @@ static qboolean Model_WriteMd3( model_t *model, fileHandle_t f ) { pos[1] = src_vert->pos[1] * src_frame->scale[1] / MD3_XYZ_SCALE; pos[2] = src_vert->pos[2] * src_frame->scale[2] / MD3_XYZ_SCALE; - dst_vert->point[0] = LittleShort( pos[0] ); - dst_vert->point[1] = LittleShort( pos[1] ); - dst_vert->point[2] = LittleShort( pos[2] ); + dst_vert->point[0] = ( signed short )LittleShort( pos[0] ); + dst_vert->point[1] = ( signed short )LittleShort( pos[1] ); + dst_vert->point[2] = ( signed short )LittleShort( pos[2] ); // TODO: calc normal |