DEADSOFTWARE

first step to separate render
[flatwaifu.git] / src / view.c
index 034b0aa80a6a7bf5956d901f5c3c9e84cce4bee2..b6b52c88df9a29f0ab3f1d47b00d5b8b58fca44c 100644 (file)
@@ -39,6 +39,7 @@
 #include "misc.h"
 #include "map.h"
 #include "sound.h"
+#include "my.h"
 
 #define ANIT 5
 
@@ -75,13 +76,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 +117,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 +128,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 +136,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 +153,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_x<WD/2) w_x=WD/2;
-  if(w_y<HT/2) w_y=HT/2;
-  if(w_x>MAXX) 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 (y<HT+w_o);
-         x+=img->w;
-         d^=1;
-      } while (x<WD);
-
-
-
-    if(sky_type==2) if(lt_time<0) {
-      if(!lt_side) V_spr(0,w_o+lt_ypos,ltn[lt_type][(lt_time<-5)?0:1]);
-      else V_spr2(WD-1,w_o+lt_ypos,ltn[lt_type][(lt_time<-5)?0:1]);
-    }
-  }else V_clr(0,WD,w_o+1,HT,0x97);
-  Z_drawfld((byte *)fldb, 1);
-  DOT_draw();
-  IT_draw();
-  PL_draw(&pl1);
-  if(_2pl) PL_draw(&pl2);
-  MN_draw();
-  WP_draw();
-  SMK_draw();
-  FX_draw();
-  Z_drawfld((byte *)fldf, 0);
-  if(sky_type==2)
-    if(lt_time==-4 || lt_time==-2)
-      V_remap_rect(0,WD,w_o+1,HT,clrmap+256*11);
-}
-
-
 void W_init(void) {
   int i,j;
   static char *anm[ANIT-1][5]={
@@ -287,9 +235,9 @@ int W_load (FILE *h) {
     }
          for (i = 1; i < 256 && blk.sz > 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 +303,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);