memset(blend, 0, MAX_FRAMEBLENDS * sizeof(*blend));
- if (!model || !model->surfmesh.isanimated)
+ // rpolzer: Not testing isanimated here - a model might have
+ // "animations" that move no vertices (but only bones), thus rendering
+ // may assume it's not animated while processing can't.
+ if (!model)
{
blend[0].lerp = 1;
return;
*/
void VM_altstr_prepare(prvm_prog_t *prog)
{
- char *out;
const char *instr, *in;
- int size;
char outstr[VM_STRINGTEMP_LENGTH];
+ size_t outpos;
VM_SAFEPARMCOUNT( 1, VM_altstr_prepare );
instr = PRVM_G_STRING( OFS_PARM0 );
- for( out = outstr, in = instr, size = sizeof(outstr) - 1 ; size && *in ; size--, in++, out++ )
- if( *in == '\'' && size > 1) {
- *out++ = '\\';
- *out = '\'';
- size--;
- } else
- *out = *in;
- *out = 0;
+ for (in = instr, outpos = 0; *in && outpos < sizeof(outstr) - 1; ++in)
+ {
+ if (*in == '\'' && outpos < sizeof(outstr) - 2)
+ {
+ outstr[outpos++] = '\\';
+ outstr[outpos++] = '\'';
+ }
+ else
+ outstr[outpos++] = *in;
+ }
+ outstr[outpos] = 0;
PRVM_G_INT( OFS_RETURN ) = PRVM_SetTempString(prog, outstr );
}
return strncmp(b, a, stringbuffers_sortlength);
}
-prvm_stringbuffer_t *BufStr_FindCreateReplace (prvm_prog_t *prog, int bufindex, int flags, char *format)
+prvm_stringbuffer_t *BufStr_FindCreateReplace (prvm_prog_t *prog, int bufindex, int flags, const char *format)
{
prvm_stringbuffer_t *stringbuffer;
int i;