summaryrefslogtreecommitdiff
path: root/source/gl_models.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/gl_models.c')
-rw-r--r--source/gl_models.c19
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