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

smcv pushed a commit to branch debian/master
in repository ioquake3.

commit dd73e1954653b73e05668732843b7e9b97a4ee4e
Author: Zack Middleton <z...@cloemail.com>
Date:   Tue Jul 4 15:20:45 2017 -0500

    Improve warning for too many skin surfaces
---
 code/renderergl1/tr_image.c | 19 ++++++++++++-------
 code/renderergl2/tr_image.c | 19 ++++++++++++-------
 2 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/code/renderergl1/tr_image.c b/code/renderergl1/tr_image.c
index a926dd8..7a4b1ba 100644
--- a/code/renderergl1/tr_image.c
+++ b/code/renderergl1/tr_image.c
@@ -1519,6 +1519,7 @@ qhandle_t RE_RegisterSkin( const char *name ) {
        char            *text_p;
        char            *token;
        char            surfName[MAX_QPATH];
+       int                     totalSurfaces;
 
        if ( !name || !name[0] ) {
                ri.Printf( PRINT_DEVELOPER, "Empty name passed to 
RE_RegisterSkin\n" );
@@ -1569,6 +1570,7 @@ qhandle_t RE_RegisterSkin( const char *name ) {
                return 0;
        }
 
+       totalSurfaces = 0;
        text_p = text.c;
        while ( text_p && *text_p ) {
                // get surface name
@@ -1592,19 +1594,22 @@ qhandle_t RE_RegisterSkin( const char *name ) {
                // parse the shader name
                token = CommaParse( &text_p );
 
-               if ( skin->numSurfaces >= MAX_SKIN_SURFACES ) {
-                       ri.Printf( PRINT_WARNING, "WARNING: Ignoring surfaces 
in '%s', the max is %d surfaces!\n", name, MAX_SKIN_SURFACES );
-                       break;
+               if ( skin->numSurfaces < MAX_SKIN_SURFACES ) {
+                       surf = &parseSurfaces[skin->numSurfaces];
+                       Q_strncpyz( surf->name, surfName, sizeof( surf->name ) 
);
+                       surf->shader = R_FindShader( token, LIGHTMAP_NONE, 
qtrue );
+                       skin->numSurfaces++;
                }
 
-               surf = &parseSurfaces[skin->numSurfaces];
-               Q_strncpyz( surf->name, surfName, sizeof( surf->name ) );
-               surf->shader = R_FindShader( token, LIGHTMAP_NONE, qtrue );
-               skin->numSurfaces++;
+               totalSurfaces++;
        }
 
        ri.FS_FreeFile( text.v );
 
+       if ( totalSurfaces > MAX_SKIN_SURFACES ) {
+               ri.Printf( PRINT_WARNING, "WARNING: Ignoring excess surfaces 
(found %d, max is %d) in skin '%s'!\n",
+                                       totalSurfaces, MAX_SKIN_SURFACES, name 
);
+       }
 
        // never let a skin have 0 shaders
        if ( skin->numSurfaces == 0 ) {
diff --git a/code/renderergl2/tr_image.c b/code/renderergl2/tr_image.c
index 7340377..3672910 100644
--- a/code/renderergl2/tr_image.c
+++ b/code/renderergl2/tr_image.c
@@ -3071,6 +3071,7 @@ qhandle_t RE_RegisterSkin( const char *name ) {
        char            *text_p;
        char            *token;
        char            surfName[MAX_QPATH];
+       int                     totalSurfaces;
 
        if ( !name || !name[0] ) {
                ri.Printf( PRINT_DEVELOPER, "Empty name passed to 
RE_RegisterSkin\n" );
@@ -3121,6 +3122,7 @@ qhandle_t RE_RegisterSkin( const char *name ) {
                return 0;
        }
 
+       totalSurfaces = 0;
        text_p = text.c;
        while ( text_p && *text_p ) {
                // get surface name
@@ -3144,19 +3146,22 @@ qhandle_t RE_RegisterSkin( const char *name ) {
                // parse the shader name
                token = CommaParse( &text_p );
 
-               if ( skin->numSurfaces >= MAX_SKIN_SURFACES ) {
-                       ri.Printf( PRINT_WARNING, "WARNING: Ignoring surfaces 
in '%s', the max is %d surfaces!\n", name, MAX_SKIN_SURFACES );
-                       break;
+               if ( skin->numSurfaces < MAX_SKIN_SURFACES ) {
+                       surf = &parseSurfaces[skin->numSurfaces];
+                       Q_strncpyz( surf->name, surfName, sizeof( surf->name ) 
);
+                       surf->shader = R_FindShader( token, LIGHTMAP_NONE, 
qtrue );
+                       skin->numSurfaces++;
                }
 
-               surf = &parseSurfaces[skin->numSurfaces];
-               Q_strncpyz( surf->name, surfName, sizeof( surf->name ) );
-               surf->shader = R_FindShader( token, LIGHTMAP_NONE, qtrue );
-               skin->numSurfaces++;
+               totalSurfaces++;
        }
 
        ri.FS_FreeFile( text.v );
 
+       if ( totalSurfaces > MAX_SKIN_SURFACES ) {
+               ri.Printf( PRINT_WARNING, "WARNING: Ignoring excess surfaces 
(found %d, max is %d) in skin '%s'!\n",
+                                       totalSurfaces, MAX_SKIN_SURFACES, name 
);
+       }
 
        // never let a skin have 0 shaders
        if ( skin->numSurfaces == 0 ) {

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-games/ioquake3.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