return -1;
fh = fopen(pFilename, FILE_READ);
if(fh < 0)
- return buf;
+ {
+ buf_del(buf);
+ return -1;
+ }
i = 0;
while((l = fgets(fh)))
{
else if (g == GAME_RACE) return "rc";
else if (g == GAME_NEXBALL) return "nexball";
else if (g == GAME_CTS) return "cts";
+ else if (g == GAME_FREEZETAG) return "freezetag";
+ else if (g == GAME_KEEPAWAY) return "ka";
return "dm";
}
fn = get_model_datafilename(m, sk, "txt");
fh = fopen(fn, FILE_READ);
if(fh < 0)
- return 0;
+ {
+ sk = 0;
+ fn = get_model_datafilename(m, sk, "txt");
+ fh = fopen(fn, FILE_READ);
+ if(fh < 0)
+ return 0;
+ }
get_model_parameters_modelname = m;
get_model_parameters_modelskin = sk;
return vercmp_recursive(v1, v2);
}
+
+float u8_strsize(string s)
+{
+ float l, i, c;
+ l = 0;
+ for(i = 0; ; ++i)
+ {
+ c = str2chr(s, i);
+ if(c <= 0)
+ break;
+ ++l;
+ if(c >= 0x80)
+ ++l;
+ if(c >= 0x800)
+ ++l;
+ if(c >= 0x10000)
+ ++l;
+ }
+ return l;
+}
+
+// translation helpers
+string language_filename(string s)
+{
+ string fn;
+ float fh;
+ fn = prvm_language;
+ if(fn == "" || fn == "dump")
+ return s;
+ fn = strcat(s, ".", fn);
+ if((fh = fopen(fn, FILE_READ)) >= 0)
+ {
+ fclose(fh);
+ return fn;
+ }
+ return s;
+}
+string CTX(string s)
+{
+ float p = strstrofs(s, "^", 0);
+ if(p < 0)
+ return s;
+ return substring(s, p+1, -1);
+}