3 interface
6 (*
7 procedure draw_block(xx,yy:integer);
8 procedure drawSmallItem(item, x, y:integer);
9 procedure drawItem(item, sum, x, y:integer; indicator:boolean;);
10 *)
22 implementation
25 //Загрузка текстуры с автоматическим выбором источника
27 var
29 begin
32 //Debug("ld_tex (tex_pack:" + tex_pack + ") : " + path + n);
36 else
41 var
43 begin
52 begin
60 begin
63 else
68 begin
73 var
75 begin
81 var
84 begin
85 repeat
93 //Получение точки спавна
95 begin
100 var
102 begin
107 (*
108 procedure drawSmallItem(item, x, y:integer);
109 begin
110 if getItemTexType(item)=0 then
111 drawimage(tex8[getBlockTex(item)], x, y);
112 else
113 if getItemTexType(item)=1 then
114 drawimage(item8[getItemTex(item)], x, y);
115 end;
116 *)
118 (*
119 procedure draw_block(xx,yy:integer);
120 begin
121 if (getmap(xx,yy)=123) or (getmap(xx,yy)=124) then
122 begin
123 setclip((xx*16)-camx,(yy*16)-camy,16,16);
124 if getmapinfo(xx,yy)<9 then drawimage(tex[142],(xx*16)-camx,(yy*16)-camy+(16-getmapinfo(xx,yy)*2)); else
125 if getmapinfo(xx,yy)=9 then drawimage(tex[143],(xx*16)-camx,(yy*16)-camy);
126 setclip(0,0,getwidth,getheight);
127 end; else
128 if (getmap(xx,yy)=92) or (getmap(xx,yy)=93) then
129 begin
130 if (Blocks.IsOverlapped(getmap(xx - 1, yy)) = false) and (Blocks.IsOverlapped(getmap(xx + 1, yy)) = true) then setclip((xx*16)-camx,(yy*16)-camy,10,16); else
131 if (Blocks.IsOverlapped(getmap(xx + 1, yy)) = false) and (Blocks.IsOverlapped(getmap(xx - 1, yy)) = true) then setclip((xx*16)-camx+6,(yy*16)-camy,10,16); else
132 if (Blocks.IsOverlapped(getmap(xx + 1, yy)) = true) and (Blocks.IsOverlapped(getmap(xx - 1, yy)) = true) then setclip((xx*16)-camx+6,(yy*16)-camy,4,16);
133 drawimage(tex[getBlockTex(getmap(xx,yy))],(xx*16)-camx,(yy*16)-camy);
134 setclip(0,0,getwidth,getheight);
135 end; else
136 if getmap(xx,yy)=27 then
137 begin
138 drawimage(tex[getBlockTex(getmap(xx,yy))],(xx*16)-camx,(yy*16)-camy);
139 if getmapinfo(xx,yy)<>0 then begin if random(8)<random(6) then begin setcolor(255,255,255); fillrect((xx*16)-camx,(yy*16)-camy,16,16); end; end;
140 end; else
141 if getmap(xx,yy)=50 then
142 begin
143 drawimage(tex[getBlockTex(getmap(xx,yy))+bl_ani5],(xx*16)-camx,(yy*16)-camy);
144 end; else
145 if getmap(xx,yy)=51 then
146 begin
147 drawimage(tex[getBlockTex(getmap(xx,yy))+bl_ani5],(xx*16)-camx,(yy*16)-camy);
148 end; else
149 if getmap(xx,yy)=110 then
150 begin
151 drawimage(tex[getBlockTex(getmap(xx,yy))+bl_ani5],(xx*16)-camx,(yy*16)-camy);
152 end; else
153 /*if getmap(xx,yy)=106 then
154 begin
155 if (furnace_gg[getmapinfo(xx,yy)].f_gor<15) or (furnace_gg[getmapinfo(xx,yy)].f_got>0) then
156 drawimage(tex[134],xx*16-camx,yy*16-camy);
157 else
158 drawimage(tex[get_block(0,getmap(xx,yy))],(xx*16)-camx,(yy*16)-camy);
159 end; else*/
160 if getmap(xx,yy)=121 then
161 begin
162 setclip((xx*16)-camx,(yy*16)-camy,getmapinfo(xx,yy),16);
163 drawimage(tex[getBlockTex(getmap(xx,yy))],(xx*16)-camx,(yy*16)-camy);
164 setclip(0,0,getWidth,getHeight);
165 end; else
166 if getmap(xx,yy)=122 then
167 begin
168 drawimage(tex[getBlockTex(getmap(xx,yy))+getmapinfo(xx,yy)],(xx*16)-camx,(yy*16)-camy);
169 end; else
170 if getmap(xx,yy)<>0 then
171 drawimage(tex[getBlockTex(getmap(xx,yy))],(xx*16)-camx,(yy*16)-camy);
172 end;
173 *)
175 (*
176 procedure drawItem(item, sum, x, y:integer; indicator:boolean;);
177 var
178 pa_xo,ugol:integer;
179 begin
180 if sum>0 then
181 begin
182 if getItemTexType(item)=0 then
183 drawimage(tex[getBlockTex(item)], x, y);
184 else
185 if getItemTexType(item)=1 then
186 drawimage(vars.item[getItemTex(item)], x, y);
188 if item=216 then
189 begin
190 drawimage(compas, x, y);
191 setcolor(255,0,0);
192 setclip(x+2, y+2, 12, 10);
193 if pl_world=0 then
194 drawline(get_spawn_x*16-camx, get_spawn_y*16-camy, x+8, y+7);
195 else
196 if pl_world=1 then
197 drawline(random(getWidth), random(getHeight), x+8, y+7);
198 setclip(0, 0, getWidth, getheight);
199 end;
200 else
201 if item=215 then
202 begin
203 drawimage(clock[clock_stage], x, y);
204 end;
205 end;
207 if (sum>1) and indicator then
208 begin
209 if getItemIndLine(item) then
210 begin
211 pa_xo:=10000*16/getItemMax(item)*sum/10000;
212 if pa_xo<=3 then
213 setcolor(255,0,0);
214 else
215 setcolor(0,255,0);
216 drawline(x, y+14, x+pa_xo, y+14);
217 end;
219 if getItemIndNum(item) then
220 drawfonttext(''+sum, x, y+8);
221 end;
222 end;
223 *)
225 //Загрузка шрифта из файла под именем s
227 var
230 begin
236 //Рисование текста графическим шрифтом
238 const
241 var
244 begin
246 begin
250 begin
254 begin
259 else
262 else
265 else
268 else
271 else
274 else
277 else
280 else
283 else
286 else
289 else
292 else
295 else
298 else
301 else
304 else
305 begin
321 else
326 //Рисование текста графическим шрифтом со стандартным цветом
328 begin