DEADSOFTWARE

Fix furnace and mob data save
[cavecraft.git] / src / furnace.mpsrc
index 7f568dfe10252c743cfc0495de0a26612f5b45e2..0d195642186697463307e752a6dc2c29e52f751c 100644 (file)
@@ -38,8 +38,13 @@ interface
  function furnaceBurn(i:integer):boolean;\r
  function itemBurn(i:integer):boolean;\r
 \r
+ procedure SaveData;\r
+ procedure LoadData;\r
+ procedure ResetData;\r
+\r
 implementation\r
- uses maps, drop, items_store, items;\r
+ uses maps, drop, items_store, items, jsr75i, func;\r
+\r
  var\r
   furnace_b: array [0..MAX_FURNACE] of boolean;\r
   furnace_item, furnace_sum: array [0..MAX_FURNACE, 0..MAX_FURNACE_CELLS] of integer;\r
@@ -366,4 +371,58 @@ implementation
    UpdateTime;\r
   end;\r
 \r
+  procedure SaveData;\r
+    var\r
+      i, j : Integer;\r
+    begin\r
+      for i := 0 to MAX_FURNACE do\r
+        begin\r
+          writebool(furnace_b[i]);\r
+          for j := 0 to MAX_FURNACE_CELLS do\r
+            begin\r
+              write_byte(furnace_item[i, j]);\r
+              writeint(furnace_sum[i, j]);\r
+            end;\r
+          writeint(furnace_fstart[i]);\r
+          writeint(furnace_ftime[i]);\r
+          writeint(furnace_prstart[i]);\r
+        end;\r
+    end;\r
+\r
+  procedure LoadData;\r
+    var\r
+      i, j : Integer;\r
+    begin\r
+      for i := 0 to MAX_FURNACE do\r
+        begin\r
+          furnace_b[i] := readbool;\r
+          for j := 0 to MAX_FURNACE_CELLS do\r
+            begin\r
+              furnace_item[i, j] := read_byte;\r
+              furnace_sum[i, j]  := readint;\r
+            end;\r
+          furnace_fstart[i]  := readint;\r
+          furnace_ftime[i]   := readint;\r
+          furnace_prstart[i] := readint;\r
+        end;      \r
+    end;\r
+\r
+  procedure ResetData;\r
+    var\r
+      i, j : Integer;\r
+    begin\r
+      for i := 0 to MAX_FURNACE do\r
+        begin\r
+          furnace_b[i] := false;\r
+          for j := 0 to MAX_FURNACE_CELLS do\r
+            begin\r
+              furnace_item[i, j] := 0;\r
+              furnace_sum[i, j]  := 0;\r
+            end;\r
+          furnace_fstart[i]  := 0;\r
+          furnace_ftime[i]   := 0;\r
+          furnace_prstart[i] := 0;\r
+        end;      \r
+    end;\r
+\r
 end.\r