Helper Procedure Repository

Repository of helper procedures and functions that can be copied in to your script and be used from many of the different system scripts, hardware scripts etc.

Finding elements on a product

{Returns True if the product has elements of the specified elementkind 
in the specified square}
function HasElementOfKindInSquare(aProduct:TProductWrapper; 
   aElementKind:TElementKind; aSquare:integer):boolean; 
var
  I: integer;
begin
  Result := False;
  for I := 0 to aProduct.ElementList.Count - 1 do    
  begin
    if (aProduct.Elementlist.Elements[I].Elementkind = aElementKind)
      and (aProduct.Elementlist.Elements[I].Square[1] = aSquare) then
    begin
      Result := True;
      Exit;
    end;
  end;
end;
{Returns the "Piece sash" element in the specified square and level if found}
function GetSashElementInSquare(aProduct:TProductWrapper; aSquare:integer; aLevel:TLevel):TCustomElementWrapper; 
var
  I: integer;
begin
  Result := nil;
  for I := 0 to aProduct.ElementList.Count - 1 do    
  begin
    if (aProduct.Elementlist.Elements[I].Elementkind in [ekPieceSash, ekPieceDoorBlade])
      and (aProduct.Elementlist.Elements[I].Square[1] = aSquare) 
      and (aProduct.Elementlist.Elements[I].Level = aLevel) then
    begin
      Result := aProduct.Elementlist.Elements[I];
      Exit;
    end;
  end;
end;

Last updated

Was this helpful?