[ioquake3] 31/50: Improve warning for too many skin surfaces
Simon McVittie
smcv at debian.org
Sun Jul 23 21:55:25 UTC 2017
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 <zack at 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
More information about the Pkg-games-commits
mailing list