Возникла проблема с бак командой sp_brick
на некоторых картах при использовании этой комманды появляется жесткий глюк и я не могу понять в чем дело
проблема в Брик-Бак-спрайт , НООО ВРОДЕ всё правильно =(( хз чё такое, мб ктонить знает где тут трабла... // Замена бриков на фронт-брики...
procedure ChangeFrontImages(oldimage, newimage: int);
var
w, h, x, y: int;
begin
w:=strtoint(GetSystemVariable('bricks_x'))+1;
h:=strtoint(GetSystemVariable('bricks_y'))+1;
for x:=0 to w-1 do
for y:=0 to h-1 do
if GetBrickStruct(x, y).image=oldimage then
begin
setlength(xobject, 2);
XOBJX:=951;
xobject[XOBJX] := frontSprites.AddSprite;
xobject[XOBJX]^.ImageNumber := 48;
xobject[XOBJX]^.X := x*32+16;
xobject[XOBJX]^.Y := y*16+8;
xobject[XOBJX]^.SpriteType := 1;
xobject[XOBJX]^.frame := newimage-54;
ChangeBrickImage(x, y, 0, 2);
end;
end;
// Брик-Бак-спрайт (хитрый костыль)...
procedure addbricksprite(idd,bimage,xa,ya: int);
var
w, h, x, y: int;
begin
w:=strtoint(GetSystemVariable('bricks_x'))+1;
h:=strtoint(GetSystemVariable('bricks_y'))+1;
for x:=0 to w-1 do
for y:=0 to h-1 do
if (GetBrickStruct(x, y).image=bimage) and (idd > 499) and (idd < 950) then
begin
setlength(xobject, 2);
XOBJX:=idd;
xobject[XOBJX] := backSprites.AddSprite;
xobject[XOBJX]^.ImageNumber := idd;
xobject[XOBJX]^.X := (x*32-128)+(32*xa);
xobject[XOBJX]^.Y := (y*16-128)+(16*ya);
xobject[XOBJX]^.SpriteType := 1;
xobject[XOBJX]^.frame := 0;
end;
end;