X-Git-Url: https://deadsoftware.ru/gitweb?p=cavecraft.git;a=blobdiff_plain;f=src%2Ffurnace.mpsrc;h=7b37737a908d16f9bdad203f2c6b188b8459d6d3;hp=7f568dfe10252c743cfc0495de0a26612f5b45e2;hb=ca3d488b219a113e49aee495246737cf0a61515e;hpb=1ef13d5bd0592dde48cc837e05b13e93e82db25b diff --git a/src/furnace.mpsrc b/src/furnace.mpsrc index 7f568df..7b37737 100644 --- a/src/furnace.mpsrc +++ b/src/furnace.mpsrc @@ -5,7 +5,7 @@ interface MAX_FURNACE=31; MAX_FURNACE_CELLS=2; - ITEM_IN_FIRE=10000; + ITEM_IN_FIRE=9950; // <== Костыль "исправляющий" тайминги. Должно быть 10000. FURNACE_IN=0; FURNACE_FUEL=1; @@ -38,8 +38,13 @@ interface function furnaceBurn(i:integer):boolean; function itemBurn(i:integer):boolean; + procedure SaveData; + procedure LoadData; + procedure ResetData; + implementation - uses maps, drop, items_store, items; + uses maps, drop, items_store, items, jsr75i, func; + var furnace_b: array [0..MAX_FURNACE] of boolean; furnace_item, furnace_sum: array [0..MAX_FURNACE, 0..MAX_FURNACE_CELLS] of integer; @@ -366,4 +371,58 @@ implementation UpdateTime; end; + procedure SaveData; + var + i, j : Integer; + begin + for i := 0 to MAX_FURNACE do + begin + writebool(furnace_b[i]); + for j := 0 to MAX_FURNACE_CELLS do + begin + write_byte(furnace_item[i, j]); + writeint(furnace_sum[i, j]); + end; + writeint(furnace_fstart[i]); + writeint(furnace_ftime[i]); + writeint(furnace_prstart[i]); + end; + end; + + procedure LoadData; + var + i, j : Integer; + begin + for i := 0 to MAX_FURNACE do + begin + furnace_b[i] := readbool; + for j := 0 to MAX_FURNACE_CELLS do + begin + furnace_item[i, j] := read_byte; + furnace_sum[i, j] := readint; + end; + furnace_fstart[i] := readint; + furnace_ftime[i] := readint; + furnace_prstart[i] := readint; + end; + end; + + procedure ResetData; + var + i, j : Integer; + begin + for i := 0 to MAX_FURNACE do + begin + furnace_b[i] := false; + for j := 0 to MAX_FURNACE_CELLS do + begin + furnace_item[i, j] := 0; + furnace_sum[i, j] := 0; + end; + furnace_fstart[i] := 0; + furnace_ftime[i] := 0; + furnace_prstart[i] := 0; + end; + end; + end.