summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBen Millwood <thebenmachine@gmail.com>2009-10-03 11:48:57 +0000
committerTim Angus <tim@ngus.net>2013-01-03 00:15:22 +0000
commit0f004824c2b380d3477aaaf36d0049d488816866 (patch)
tree12471da16d17b9de1de537cf2512f57bde7a0634 /src
parent88bbd3acea29772ce23ca8837cfe15298e441746 (diff)
* Experimental fix for the colour wrapping fail
Diffstat (limited to 'src')
-rw-r--r--src/game/g_local.h1
-rw-r--r--src/ui/ui_shared.c30
2 files changed, 18 insertions, 13 deletions
diff --git a/src/game/g_local.h b/src/game/g_local.h
index ab6d82f0..49a5ceac 100644
--- a/src/game/g_local.h
+++ b/src/game/g_local.h
@@ -655,6 +655,7 @@ char *G_NewString( const char *string );
// g_cmds.c
//
void G_StopFollowing( gentity_t *ent );
+void G_StopFromFollowing( gentity_t *ent );
void G_FollowLockView( gentity_t *ent );
qboolean G_FollowNewClient( gentity_t *ent, int dir );
void G_ToggleFollow( gentity_t *ent );
diff --git a/src/ui/ui_shared.c b/src/ui/ui_shared.c
index 027ca75a..e708c9bb 100644
--- a/src/ui/ui_shared.c
+++ b/src/ui/ui_shared.c
@@ -4541,7 +4541,7 @@ static const char *Item_Text_Wrap( const char *text, float scale, float width )
{
static char out[ 8192 ];
char *paint = out;
- char c[ 3 ];
+ char startcolour[ 3 ], endcolour[ 3 ];
const char *p = text;
const char *eol;
const char *q = NULL, *qMinus1 = NULL;
@@ -4557,7 +4557,8 @@ static const char *Item_Text_Wrap( const char *text, float scale, float width )
while( *p )
{
- Com_Memset( c, 0, sizeof( c ) );
+ Com_Memset( startcolour, 0, sizeof( startcolour ) );
+ Com_Memset( endcolour, 0, sizeof( endcolour ) );
// Skip leading whitespace
@@ -4565,8 +4566,8 @@ static const char *Item_Text_Wrap( const char *text, float scale, float width )
{
if( Q_IsColorString( p ) )
{
- c[ 0 ] = p[ 0 ];
- c[ 1 ] = p[ 1 ];
+ startcolour[ 0 ] = p[ 0 ];
+ startcolour[ 1 ] = p[ 1 ];
p += 2;
}
else if( *p != '\n' && isspace( *p ) )
@@ -4586,8 +4587,8 @@ static const char *Item_Text_Wrap( const char *text, float scale, float width )
while( Q_IsColorString( q ) )
{
- c[ 0 ] = q[ 0 ];
- c[ 1 ] = q[ 1 ];
+ startcolour[ 0 ] = q[ 0 ];
+ startcolour[ 1 ] = q[ 1 ];
q += 2;
}
@@ -4595,8 +4596,8 @@ static const char *Item_Text_Wrap( const char *text, float scale, float width )
while( Q_IsColorString( q ) )
{
- c[ 0 ] = q[ 0 ];
- c[ 1 ] = q[ 1 ];
+ startcolour[ 0 ] = q[ 0 ];
+ startcolour[ 1 ] = q[ 1 ];
q += 2;
}
@@ -4616,8 +4617,8 @@ static const char *Item_Text_Wrap( const char *text, float scale, float width )
// Skip color escapes
while( Q_IsColorString( q ) )
{
- c[ 0 ] = q[ 0 ];
- c[ 1 ] = q[ 1 ];
+ endcolour[ 0 ] = q[ 0 ];
+ endcolour[ 1 ] = q[ 1 ];
q += 2;
}
while( UI_Text_Emoticon( q, &emoticonEscaped, &emoticonLen, NULL, NULL ) )
@@ -4636,8 +4637,8 @@ static const char *Item_Text_Wrap( const char *text, float scale, float width )
// Some color escapes might still be present
while( Q_IsColorString( q ) )
{
- c[ 0 ] = q[ 0 ];
- c[ 1 ] = q[ 1 ];
+ endcolour[ 0 ] = q[ 0 ];
+ endcolour[ 1 ] = q[ 1 ];
q += 2;
}
while( UI_Text_Emoticon( q, &emoticonEscaped, &emoticonLen, NULL, NULL ) )
@@ -4665,6 +4666,9 @@ static const char *Item_Text_Wrap( const char *text, float scale, float width )
if( eol == p )
eol = q;
+ // Add colour code (might be empty)
+ Q_strcat( out, sizeof( out ), startcolour );
+
paint = out + strlen( out );
// Copy text
@@ -4676,7 +4680,7 @@ static const char *Item_Text_Wrap( const char *text, float scale, float width )
if( out[ strlen( out ) - 1 ] != '\n' )
{
Q_strcat( out, sizeof( out ), "\n " );
- Q_strcat( out, sizeof( out ), c );
+ Q_strcat( out, sizeof( out ), endcolour );
}
paint = out + strlen( out );