This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to annotated tag 1.42d
in repository iortcw.

commit ea00cf376229ad1a0781d64d7635991cea3a6f10
Author: m4n4t4...@gmail.com 
<m4n4t4...@gmail.com@e65d2741-a53d-b2dc-ae96-bb75fa5e4c4a>
Date:   Fri May 9 22:08:22 2014 +0000

    All: Make R_LerpTag return qfalse if MDR tag does not exist
---
 MP/code/rend2/tr_model.c    | 29 ++++++++++-------------------
 MP/code/renderer/tr_model.c | 34 +++++++++++-----------------------
 SP/code/rend2/tr_model.c    | 28 ++++++++++------------------
 SP/code/renderer/tr_model.c | 34 +++++++++++-----------------------
 4 files changed, 42 insertions(+), 83 deletions(-)

diff --git a/MP/code/rend2/tr_model.c b/MP/code/rend2/tr_model.c
index 1e2b2e9..c2cdbf1 100644
--- a/MP/code/rend2/tr_model.c
+++ b/MP/code/rend2/tr_model.c
@@ -2143,7 +2143,7 @@ static int R_GetTag(mdvModel_t * model, int frame, const 
char *_tagName, int sta
        return -1;
 }
 
-void R_GetAnimTag( mdrHeader_t *mod, int framenum, const char *tagName, 
mdvTag_t * dest) 
+mdvTag_t *R_GetAnimTag( mdrHeader_t *mod, int framenum, const char *tagName, 
mdvTag_t * dest)
 {
        int                             i, j, k;
        int                             frameSize;
@@ -2176,12 +2176,11 @@ void R_GetAnimTag( mdrHeader_t *mod, int framenum, 
const char *tagName, mdvTag_t
                        
dest->origin[1]=frame->bones[tag->boneIndex].matrix[1][3];
                        
dest->origin[2]=frame->bones[tag->boneIndex].matrix[2][3];                      
        
 
-                       return;
+                       return dest;
                }
        }
 
-       AxisClear( dest->axis );
-       VectorClear( dest->origin );
+       return NULL;
 }
 
 /*
@@ -2214,27 +2213,17 @@ int R_LerpTag( orientation_t *tag, const refEntity_t 
*refent, const char *tagNam
        if ( !model->mdv[0] /*&& !model->mdc[0]*/ && !model->mds ) {
                if(model->type == MOD_MDR)
                {
-                       start = &start_space;
-                       end = &end_space;
-                       R_GetAnimTag((mdrHeader_t *) model->modelData, 
startFrame, tagName, start);
-                       R_GetAnimTag((mdrHeader_t *) model->modelData, 
endFrame, tagName, end);
+                       start = R_GetAnimTag((mdrHeader_t *) model->modelData, 
startFrame, tagName, &start_space);
+                       end = R_GetAnimTag((mdrHeader_t *) model->modelData, 
endFrame, tagName, &end_space);
                }
                else if( model->type == MOD_IQM ) {
                        return R_IQMLerpTag( tag, model->modelData,
                                        startFrame, endFrame,
                                        frac, tagName );
                } else {
-                       AxisClear( tag->axis );
-                       VectorClear( tag->origin );
-                       return -1;
+                       start = end = NULL;
                }
-       }
-
-       frontLerp = frac;
-       backLerp = 1.0f - frac;
-
-       if(model->type == MOD_MESH)
-       {
+       } else if (model->type == MOD_MESH) {
                // old MD3 style
                retval = R_GetTag(model->mdv[0], startFrame, tagName, 
startIndex, &start);
                retval = R_GetTag(model->mdv[0], endFrame, tagName, startIndex, 
&end);
@@ -2248,7 +2237,6 @@ int R_LerpTag( orientation_t *tag, const refEntity_t 
*refent, const char *tagNam
 
                // failed
                return -1;
-
        } else {
                // failed
                return -1;
@@ -2260,6 +2248,9 @@ int R_LerpTag( orientation_t *tag, const refEntity_t 
*refent, const char *tagNam
                return -1;
        }
 
+       frontLerp = frac;
+       backLerp = 1.0f - frac;
+
        for ( i = 0 ; i < 3 ; i++ ) {
                tag->origin[i] = start->origin[i] * backLerp +  end->origin[i] 
* frontLerp;
                tag->axis[0][i] = start->axis[0][i] * backLerp +  
end->axis[0][i] * frontLerp;
diff --git a/MP/code/renderer/tr_model.c b/MP/code/renderer/tr_model.c
index cb87efc..74a24dc 100644
--- a/MP/code/renderer/tr_model.c
+++ b/MP/code/renderer/tr_model.c
@@ -2005,7 +2005,7 @@ static int R_GetMDSTag( byte *mod, const char *tagName, 
int startTagIndex, mdsTa
 }
 */
 
-void R_GetAnimTag( mdrHeader_t *mod, int framenum, const char *tagName, 
md3Tag_t * dest) 
+md3Tag_t *R_GetAnimTag( mdrHeader_t *mod, int framenum, const char *tagName, 
md3Tag_t * dest)
 {
        int                             i, j, k;
        int                             frameSize;
@@ -2040,13 +2040,11 @@ void R_GetAnimTag( mdrHeader_t *mod, int framenum, 
const char *tagName, md3Tag_t
                        
dest->origin[1]=frame->bones[tag->boneIndex].matrix[1][3];
                        
dest->origin[2]=frame->bones[tag->boneIndex].matrix[2][3];                      
        
 
-                       return;
+                       return dest;
                }
        }
 
-       AxisClear( dest->axis );
-       VectorClear( dest->origin );
-       strcpy(dest->name,"");
+       return NULL;
 }
 
 /*
@@ -2088,30 +2086,20 @@ int R_LerpTag( orientation_t *tag, const refEntity_t 
*refent, const char *tagNam
        if ( !model->md3[0] && !model->mdc[0] && !model->mds ) {
                if(model->type == MOD_MDR)
                {
-                       start = &start_space;
-                       end = &end_space;
-                       R_GetAnimTag((mdrHeader_t *) model->modelData, 
startFrame, tagName, start);
-                       R_GetAnimTag((mdrHeader_t *) model->modelData, 
endFrame, tagName, end);
+                       start = R_GetAnimTag((mdrHeader_t *) model->modelData, 
startFrame, tagName, &start_space);
+                       end = R_GetAnimTag((mdrHeader_t *) model->modelData, 
endFrame, tagName, &end_space);
                }
                else if ( model->type == MOD_IQM ) {
                        return R_IQMLerpTag( tag, model->modelData,
                                        startFrame, endFrame,
                                        frac, tagName );
                } else {
-                       AxisClear( tag->axis );
-                       VectorClear( tag->origin );
-                       return -1;
+                       start = end = NULL;
                }
-       }
-
-       frontLerp = frac;
-       backLerp = 1.0f - frac;
-
-       if ( model->type == MOD_MESH ) {
+       } else if ( model->type == MOD_MESH ) {
                // old MD3 style
                retval = R_GetTag( (byte *)model->md3[0], startFrame, tagName, 
startIndex, &start );
                retval = R_GetTag( (byte *)model->md3[0], endFrame, tagName, 
startIndex, &end );
-
        } else if ( model->type == MOD_MDS ) {    // use bone lerping
 
                retval = R_GetBoneTag( tag, model->mds, startIndex, refent, 
tagNameIn );
@@ -2122,7 +2110,6 @@ int R_LerpTag( orientation_t *tag, const refEntity_t 
*refent, const char *tagNam
 
                // failed
                return -1;
-
        } else {
                // psuedo-compressed MDC tags
                mdcTag_t    *cstart, *cend;
@@ -2145,10 +2132,8 @@ int R_LerpTag( orientation_t *tag, const refEntity_t 
*refent, const char *tagNam
                        start = &ustart;
                        end = &uend;
                } else {
-                       start = NULL;
-                       end = NULL;
+                       start = end = NULL;
                }
-
        }
 
        if ( !start || !end ) {
@@ -2157,6 +2142,9 @@ int R_LerpTag( orientation_t *tag, const refEntity_t 
*refent, const char *tagNam
                return -1;
        }
 
+       frontLerp = frac;
+       backLerp = 1.0f - frac;
+
        for ( i = 0 ; i < 3 ; i++ ) {
                tag->origin[i] = start->origin[i] * backLerp +  end->origin[i] 
* frontLerp;
                tag->axis[0][i] = start->axis[0][i] * backLerp +  
end->axis[0][i] * frontLerp;
diff --git a/SP/code/rend2/tr_model.c b/SP/code/rend2/tr_model.c
index 0f932f5..fd46d1c 100644
--- a/SP/code/rend2/tr_model.c
+++ b/SP/code/rend2/tr_model.c
@@ -2139,7 +2139,7 @@ static int R_GetTag(mdvModel_t * model, int frame, const 
char *_tagName, int sta
        return -1;
 }
 
-void R_GetAnimTag( mdrHeader_t *mod, int framenum, const char *tagName, 
mdvTag_t * dest)
+mdvTag_t *R_GetAnimTag( mdrHeader_t *mod, int framenum, const char *tagName, 
mdvTag_t * dest)
 {
        int                             i, j, k;
        int                             frameSize;
@@ -2172,12 +2172,11 @@ void R_GetAnimTag( mdrHeader_t *mod, int framenum, 
const char *tagName, mdvTag_t
                        
dest->origin[1]=frame->bones[tag->boneIndex].matrix[1][3];
                        
dest->origin[2]=frame->bones[tag->boneIndex].matrix[2][3];                      
        
 
-                       return;
+                       return dest;
                }
        }
 
-       AxisClear( dest->axis );
-       VectorClear( dest->origin );
+       return NULL;
 }
 
 
@@ -2211,26 +2210,17 @@ int R_LerpTag( orientation_t *tag, const refEntity_t 
*refent, const char *tagNam
        if ( !model->mdv[0] /*&& !model->mdc[0]*/ && !model->mds ) {
                if(model->type == MOD_MDR)
                {
-                       start = &start_space;
-                       end = &end_space;
-                       R_GetAnimTag((mdrHeader_t *) model->modelData, 
startFrame, tagName, start);
-                       R_GetAnimTag((mdrHeader_t *) model->modelData, 
endFrame, tagName, end);
+                       start = R_GetAnimTag((mdrHeader_t *) model->modelData, 
startFrame, tagName, &start_space);
+                       end = R_GetAnimTag((mdrHeader_t *) model->modelData, 
endFrame, tagName, &end_space);
                }
                else if ( model->type == MOD_IQM ) {
                        return R_IQMLerpTag( tag, model->modelData,
                                        startFrame, endFrame,
                                        frac, tagName );
                } else {
-                       AxisClear( tag->axis );
-                       VectorClear( tag->origin );
-                       return -1;
+                       start = end = NULL;
                }
-       }
-
-       frontLerp = frac;
-       backLerp = 1.0f - frac;
-
-       if ( model->type == MOD_MESH ) {
+       } else if ( model->type == MOD_MESH ) {
                // old MD3 style
                retval = R_GetTag(model->mdv[0], startFrame, tagName, 
startIndex, &start);
                retval = R_GetTag(model->mdv[0], endFrame, tagName, startIndex, 
&end);
@@ -2244,7 +2234,6 @@ int R_LerpTag( orientation_t *tag, const refEntity_t 
*refent, const char *tagNam
 
                // failed
                return -1;
-
        } else {
                // failed
                return -1;
@@ -2256,6 +2245,9 @@ int R_LerpTag( orientation_t *tag, const refEntity_t 
*refent, const char *tagNam
                return -1;
        }
 
+       frontLerp = frac;
+       backLerp = 1.0f - frac;
+
        for ( i = 0 ; i < 3 ; i++ ) {
                tag->origin[i] = start->origin[i] * backLerp +  end->origin[i] 
* frontLerp;
                tag->axis[0][i] = start->axis[0][i] * backLerp +  
end->axis[0][i] * frontLerp;
diff --git a/SP/code/renderer/tr_model.c b/SP/code/renderer/tr_model.c
index 0953b85..7f09fcc 100644
--- a/SP/code/renderer/tr_model.c
+++ b/SP/code/renderer/tr_model.c
@@ -1998,7 +1998,7 @@ static int R_GetMDSTag( byte *mod, const char *tagName, 
int startTagIndex, mdsTa
 */
 
 
-void R_GetAnimTag( mdrHeader_t *mod, int framenum, const char *tagName, 
md3Tag_t * dest) 
+md3Tag_t *R_GetAnimTag( mdrHeader_t *mod, int framenum, const char *tagName, 
md3Tag_t * dest)
 {
        int                             i, j, k;
        int                             frameSize;
@@ -2033,13 +2033,11 @@ void R_GetAnimTag( mdrHeader_t *mod, int framenum, 
const char *tagName, md3Tag_t
                        
dest->origin[1]=frame->bones[tag->boneIndex].matrix[1][3];
                        
dest->origin[2]=frame->bones[tag->boneIndex].matrix[2][3];                      
        
 
-                       return;
+                       return dest;
                }
        }
 
-       AxisClear( dest->axis );
-       VectorClear( dest->origin );
-       strcpy(dest->name,"");
+       return NULL;
 }
 
 
@@ -2082,30 +2080,20 @@ int R_LerpTag( orientation_t *tag, const refEntity_t 
*refent, const char *tagNam
        if ( !model->md3[0] && !model->mdc[0] && !model->mds ) {
                if(model->type == MOD_MDR)
                {
-                       start = &start_space;
-                       end = &end_space;
-                       R_GetAnimTag((mdrHeader_t *) model->modelData, 
startFrame, tagName, start);
-                       R_GetAnimTag((mdrHeader_t *) model->modelData, 
endFrame, tagName, end);
+                       start = R_GetAnimTag((mdrHeader_t *) model->modelData, 
startFrame, tagName, &start_space);
+                       end = R_GetAnimTag((mdrHeader_t *) model->modelData, 
endFrame, tagName, &end_space);
                }
                else if ( model->type == MOD_IQM ) {
                        return R_IQMLerpTag( tag, model->modelData,
                                        startFrame, endFrame,
                                        frac, tagName );
                } else {
-                       AxisClear( tag->axis );
-                       VectorClear( tag->origin );
-                       return -1;
+                       start = end = NULL;
                }
-       }
-
-       frontLerp = frac;
-       backLerp = 1.0f - frac;
-
-       if ( model->type == MOD_MESH ) {
+       } else if ( model->type == MOD_MESH ) {
                // old MD3 style
                retval = R_GetTag( (byte *)model->md3[0], startFrame, tagName, 
startIndex, &start );
                retval = R_GetTag( (byte *)model->md3[0], endFrame, tagName, 
startIndex, &end );
-
        } else if ( model->type == MOD_MDS ) {    // use bone lerping
 
                retval = R_GetBoneTag( tag, model->mds, startIndex, refent, 
tagNameIn );
@@ -2116,7 +2104,6 @@ int R_LerpTag( orientation_t *tag, const refEntity_t 
*refent, const char *tagNam
 
                // failed
                return -1;
-
        } else {
                // psuedo-compressed MDC tags
                mdcTag_t    *cstart, *cend;
@@ -2139,10 +2126,8 @@ int R_LerpTag( orientation_t *tag, const refEntity_t 
*refent, const char *tagNam
                        start = &ustart;
                        end = &uend;
                } else {
-                       start = NULL;
-                       end = NULL;
+                       start = end = NULL;
                }
-
        }
 
        if ( !start || !end ) {
@@ -2151,6 +2136,9 @@ int R_LerpTag( orientation_t *tag, const refEntity_t 
*refent, const char *tagNam
                return -1;
        }
 
+       frontLerp = frac;
+       backLerp = 1.0f - frac;
+
        for ( i = 0 ; i < 3 ; i++ ) {
                tag->origin[i] = start->origin[i] * backLerp +  end->origin[i] 
* frontLerp;
                tag->axis[0][i] = start->axis[0][i] * backLerp +  
end->axis[0][i] * frontLerp;

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-games/iortcw.git

_______________________________________________
Pkg-games-commits mailing list
Pkg-games-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

Reply via email to