X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fview.c;h=0c274fc81103c55d5cdfc8970f22a79177996156;hb=584adc9c1911a6941ef07443a6fc6ff922d7c8ea;hp=034b0aa80a6a7bf5956d901f5c3c9e84cce4bee2;hpb=da79be9b6a4134aa9cd19e6f5909fedb20d318cb;p=flatwaifu.git diff --git a/src/view.c b/src/view.c index 034b0aa..0c274fc 100644 --- a/src/view.c +++ b/src/view.c @@ -39,6 +39,7 @@ #include "misc.h" #include "map.h" #include "sound.h" +#include "my.h" #define ANIT 5 @@ -55,7 +56,6 @@ int HT; // extern map_block_t blk; -extern byte clrmap[256*12]; void V_remap_rect(int,int,int,int,byte *); byte w_horiz=ON; @@ -75,13 +75,15 @@ byte fld[FLDH][FLDW]; extern int lt_time,lt_type,lt_side,lt_ypos; extern void *ltn[2][2]; -static void getname(int n,char *s) { - if(walh[n]==-1) {memset(s,0,8);return;} - if(walh[n]==-2) { - memcpy(s,"_WATER_",8);s[7]=(byte)walp[n]-1+'0'; - return; +static void getname (int n, char *s) { + if (walh[n] == -1) { + memset(s, 0, 8); + } else if (walh[n] == -2) { + memcpy(s, "_WATER_", 8); + s[7] = (char)((intptr_t)walp[n] - 1 + '0'); + } else { + F_getresname(s, walh[n] & 0x7FFF); } - F_getresname(s,walh[n]&0x7FFF); } static short getani(char *n) { @@ -114,7 +116,7 @@ void W_savegame(FILE* h) { void W_loadgame(FILE* h) { char s[8]; int i; - myfread32(&sky_type, h); + sky_type = myfread32(h); for (i = 1; i < 256; ++i) { walani[i]=0; myfread(s, 8, 1, h); @@ -125,7 +127,7 @@ void W_loadgame(FILE* h) { walani[i] = getani(s); if (strncasecmp(s, "_WATER_", 7) == 0) { walh[i] = -2; - walp[i] = (void*)(s[7] - '0' + 1); + walp[i] = (void*)((intptr_t)s[7] - '0' + 1); } else { walh[i] = F_getresid(s); walp[i] = V_getvgaimg(walh[i]); @@ -133,13 +135,13 @@ void W_loadgame(FILE* h) { } } for (i = 0; i < 256; i++) { - myfread32(&walf[i], h); + walf[i] = myfread32(h); if (i > 0 && walf[i] & 1) { walh[i] |= 0x8000; } } for (i = 0; i < 256; i++) { - myfread8(&walswp[i], h); + walswp[i] = myfread8(h); } myfread(fldb, FLDW*FLDH, 1, h); myfread(fld, FLDW*FLDH, 1, h); @@ -150,61 +152,6 @@ void W_loadgame(FILE* h) { horiz = V_loadvgaimg(s); } -void W_adjust(void) { - int MAXX =(FLDW*CELW-WD/2);// - int MAXY =(FLDH*CELH-HT/2);// - - if(w_xMAXX) w_x=MAXX; - if(w_y>MAXY) w_y=MAXY; -} - -void W_draw(void) { - W_adjust(); - V_setrect(0,WD,w_o+1,HT); - if(w_horiz) { - - - //V_pic(127-(word)(w_x-WD/2)*56U/(word)(MAXX-WD/2),w_o+123-(word)(w_y-HT/2)*28U/(word)(MAXY-HT/2),horiz); - vgaimg *img = (vgaimg*)horiz; - int x=0; - int d=0; - do { - int y=w_o; - d &= ~2; - do { - V_rotspr(x,y,img,d); - y+=img->h; - d^=2; - } while (yw; - d^=1; - } while (x 0; ++i, blk.sz -= 9) { myfread(w.n, 8, 1, h); - myfread8(&w.t, h); + w.t = myfread8(h); if (strncasecmp(w.n, "_WATER_", 7) == 0) { - walp[i] = (void*)(w.n[7] - '0' + 1); + walp[i] = (void*)((intptr_t)w.n[7] - '0' + 1); walh[i] = -2; } else { walh[i] = F_getresid(w.n); @@ -355,7 +302,7 @@ int W_load (FILE *h) { } return 1; case MB_SKY: - myfread16(&sky_type, h); + sky_type = myfread16(h); strcpy(w.n, "RSKY1"); w.n[4] = '0' + sky_type; M_unlock(horiz);