diff --git a/src/furnace.mpsrc b/src/furnace.mpsrc
index 7f568dfe10252c743cfc0495de0a26612f5b45e2..7b37737a908d16f9bdad203f2c6b188b8459d6d3 100644 (file)
--- a/src/furnace.mpsrc
+++ b/src/furnace.mpsrc
MAX_FURNACE=31;\r
MAX_FURNACE_CELLS=2;\r
\r
- ITEM_IN_FIRE=10000;\r
+ ITEM_IN_FIRE=9950; // <== Костыль "исправляющий" тайминги. Должно быть 10000.\r
\r
FURNACE_IN=0;\r
FURNACE_FUEL=1;\r
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
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