DEADSOFTWARE

manager: remove flag 0x8000 from resource handle id
[flatwaifu.git] / src / view.c
index 73953d7dea30d469ec88408bf47f4cd230cc1ff1..f902e23648dbe7727678f94a702feda84f22d4d9 100644 (file)
@@ -23,7 +23,6 @@
 #include "glob.h"
 #include <string.h>
 #include <stdlib.h>
-#include "vga.h"
 #include "memory.h"
 #include "files.h"
 #include "error.h"
 #include "my.h"
 #include "render.h"
 
-int WD;
-int HT;
-
-extern map_block_t blk;
-
-byte w_horiz=ON;
-int w_o,w_x,w_y,sky_type=1;
+int sky_type=1;
 dword walf[256];
-byte walswp[256];
 byte fldb[FLDH][FLDW];
 byte fldf[FLDH][FLDW];
 byte fld[FLDH][FLDW];
 
-extern int lt_time,lt_type,lt_side,lt_ypos;
-extern void *ltn[2][2];
-
 void W_savegame (FILE* h) {
   char s[8];
   int i;
@@ -70,7 +59,7 @@ void W_savegame (FILE* h) {
     myfwrite32(walf[i], h);
   }
   for (i = 0; i < 256; i++) {
-    myfwrite8(walswp[i], h);
+    myfwrite8(R_get_swp(i), h);
   }
   myfwrite(fldb, FLDW*FLDH, 1, h);
   myfwrite(fld, FLDW*FLDH, 1, h);
@@ -79,29 +68,29 @@ void W_savegame (FILE* h) {
 
 void W_loadgame (FILE* h) {
   int i;
-  char s[256][8];
+  char s[8];
   sky_type = myfread32(h);
   R_loadsky(sky_type);
+  R_begin_load();
   for (i = 1; i < 256; ++i) {
-    myfread(s[i], 8, 1, h);
+    myfread(s, 8, 1, h);
+    if (s[0]) {
+      R_load(s);
+    }
   }
-  R_begin_load();
-  R_load("", 0); // empty
-  i = myfread32(h); // ignore
-  for (i = 1; i < 256; i++) {
-    walf[i] = myfread32(h);
-    R_load(s[i], walf[i] & 1);
+  R_end_load();
+  for (i = 0; i < 256; i++) {
+    myfread32(h); // useless
   }
   for (i = 0; i < 256; i++) {
-    walswp[i] = myfread8(h);
+    walf[i] = myfread8(h);
   }
   myfread(fldb, FLDW*FLDH, 1, h);
   myfread(fld, FLDW*FLDH, 1, h);
   myfread(fldf, FLDW*FLDH, 1, h);
-  R_end_load();
 }
 
-void W_init(void) {
+void W_init (void) {
   DOT_init();
   SMK_init();
   FX_init();
@@ -111,10 +100,9 @@ void W_init(void) {
   PL_init();
   MN_init();
   R_loadsky(1);
-  free_chunks();
 }
 
-static void unpack(void *buf, int len, void *obuf) {
+static void unpack (void *buf, int len, void *obuf) {
   int i = 0;
   int j = 0;
   unsigned char *p = buf;
@@ -134,17 +122,17 @@ static void unpack(void *buf, int len, void *obuf) {
 }
 
 int W_load (FILE *h) {
+  int i;
   char s[8];
-  int i, j, t;
   void *p, *buf;
   switch (blk.t) {
   case MB_WALLNAMES:
     R_begin_load();
-    R_load("", 0); // empty
+    memset(walf, 0, sizeof(walf));
     for (i = 1; i < 256 && blk.sz > 0; i++, blk.sz -= 9) {
       myfread(s, 8, 1, h);
-      t = myfread8(h);
-      R_load(s, t);
+      walf[i] = myfread8(h) ? 1 : 0; // ???
+      R_load(s);
       if (strncasecmp(s, "VTRAP01", 8) == 0) {
         walf[i] |= 2;
       }