diff --git a/src/files.c b/src/files.c
index 55271713c2d95bf12f07fecb44e52790934f6dfc..dc897ed23cb0fd1daa2c2fd96dc19cc890dc0c3c 100644 (file)
--- a/src/files.c
+++ b/src/files.c
#include "switch.h"
#include "weapons.h"
#include "error.h"
+#include "cp866.h"
typedef struct {
byte n, i, v, d;
}
}
-void F_addwad (char *fn) {
+void F_addwad (const char *fn) {
int i;
for(i=0;i<MAX_WADS;++i) if(wads[i][0]==0) {
ERR_failinit("Не могу открыть файл2: %s", wads[i]);
}
mysplitpath(wads[i], f_drive, f_dir, f_name, f_ext);
- if (strcasecmp(f_ext, ".lmp") == 0) {
+ if (cp866_strcasecmp(f_ext, ".lmp") == 0) {
for (k = 0; k < MAX_WAD; ++k) {
- if (strncasecmp(wad[k].n, f_name, 8) == 0) {
+ if (cp866_strncasecmp(wad[k].n, f_name, 8) == 0) {
wad[k].o = 0;
wad[k].l = myfilelength(h);
wad[k].f = i;
w.o = myfread32(h); // len
myfread(w.n, 1, 8, h); // name
for (k = 0; k < MAX_WAD; ++k) {
- if (strncasecmp(wad[k].n, w.n, 8) == 0) {
+ if (cp866_strncasecmp(wad[k].n, w.n, 8) == 0) {
wad[k].o = w.o;
wad[k].l = w.l;
wad[k].f = i;
int F_findres (const char n[8]) {
int i;
for (i = 0; i < wad_num; i++) {
- if (strncasecmp(wad[i].n, n, 8) == 0) {
+ if (cp866_strncasecmp(wad[i].n, n, 8) == 0) {
return i;
}
}
}
// get sprite id
-int F_getsprid (const char n[4], int s, int d) {
+int F_getsprid (const char n[4], int s, int d, char *dir) {
int i;
- byte a,b;
-
- s+='A';d+='0';
- for(i=s_start+1;i<s_end;++i)
- if(strncasecmp(wad[i].n,n,4)==0 && (wad[i].n[4]==s || wad[i].n[6]==s)) {
- if(wad[i].n[4]==s) a=wad[i].n[5]; else a=0;
- if(wad[i].n[6]==s) b=wad[i].n[7]; else b=0;
- if(a=='0') return i;
- if(b=='0') return(i|0x8000);
- if(a==d) return i;
- if(b==d) return(i|0x8000);
+ byte a, b;
+ s += 'A';
+ d += '0';
+ for (i = s_start + 1; i < s_end; i++) {
+ if (cp866_strncasecmp(wad[i].n, n, 4) == 0 && (wad[i].n[4] == s || wad[i].n[6] == s)) {
+ a = wad[i].n[4] == s ? wad[i].n[5] : 0;
+ b = wad[i].n[6] == s ? wad[i].n[7] : 0;
+ if (a == '0' || b == '0' || a == d || b == d) {
+ if (dir != NULL) {
+ *dir = a != '0' && b == '0' || a != d && b == d;
+ }
+ return i;
+ }
}
- ERR_fatal("F_getsprid: изображение %.4s%c%c не найдено",n,(byte)s,(byte)d);
+ }
+ ERR_fatal("F_getsprid: image %.4s%c%c not found", n, s, d);
return -1;
}
for(++i;;++i) {
if(i>=m_end) i=m_start+1;
- if (strcasecmp(wad[i].n,"MENU") == 0 ||
- strcasecmp(wad[i].n,"INTERMUS") == 0 ||
- strcasecmp(wad[i].n,"\x8a\x8e\x8d\x85\x96\x0") == 0)
+ if (cp866_strcasecmp(wad[i].n,"MENU") == 0 ||
+ cp866_strcasecmp(wad[i].n,"INTERMUS") == 0 ||
+ cp866_strcasecmp(wad[i].n,"\x8a\x8e\x8d\x85\x96\x0") == 0)
continue;
- if(strncasecmp(wad[i].n,"DMI",3)!=0) break;
+ if(cp866_strncasecmp(wad[i].n,"DMI",3)!=0) break;
}
memcpy(s,wad[i].n,8);
}