7 function create(x
, y
:integer):integer;
8 procedure destroy(drp
:boolean; x
, y
:integer);
10 function getItem(n
, i
:integer):integer;
11 function getSum(n
, i
:integer):integer;
12 procedure setItem(val
, n
, i
:integer);
13 procedure setSum(val
, n
, i
:integer);
20 uses maps
, drop
, vars
, jsr75i
, func
;
25 chest_b
: array [0..MAX_CHEST
] of boolean;
26 chest_item
, chest_sum
: array [0..MAX_CELL
, 0..MAX_CHEST
] of integer;
28 function getItem(n
, i
:integer):integer;
30 getItem
:=chest_item
[n
, i
];
33 function getSum(n
, i
:integer):integer;
35 getSum
:=chest_sum
[n
, i
];
38 procedure setItem(val
, n
, i
:integer);
40 chest_item
[n
, i
]:=val
;
43 procedure setSum(val
, n
, i
:integer);
48 function create(x
, y
:integer):integer;
52 for i
:=0 to MAX_CHEST
do
53 if chest_b
[i
]=false then
56 for j
:=0 to MAX_CELL
do
68 procedure destroy(drp
:boolean; x
, y
:integer);
74 for j
:=0 to MAX_CELL
do
77 drop
.create(getItem(j
, i
), getSum(j
, i
), x
*16+4, y
*16+4);
87 for i
:=0 to MAX_CHEST
do
90 for j
:=0 to MAX_CELL
do
102 for i
:=0 to MAX_CHEST
do
104 writebool(chest_b
[i
]);
105 for j
:=0 to MAX_CELL
do
107 write_byte(getItem(j
, i
));
108 writeint(getSum(j
, i
));
117 for i
:=0 to MAX_CHEST
do
119 chest_b
[i
]:=readbool
;
120 for j
:=0 to MAX_CELL
do
122 setItem(read_byte
, j
, i
);
123 setSum(ReadInt
, j
, i
);