Yep, i won't wait You can track progress here if want:
http://code.google.com/p/nxpascal/so...ools%2Ftilegen

It is much more complicated structure than one could imagine at first glance. I'm still working out some details, but i believe that after (propably) finishing "Tile styles"-dialog today, it cleared up alot. Also found and reported a Lazarus bug in the process... everybody benefits, lol.

Also experimented temporarily with class default properties with record array as type, it failed. I won't need it now, but is it even possible to get such working? Something like (simplified):
Code:
type
  TTileStyle = record
    name: string;
    ...
  end;

  TTileStyles = class
  private
    FStyle: array of TTileStyle;
    function GetStyle(index: integer): TTileStyle;
    procedure SetStyle(index: integer; value: TTileStyle);
  public
    property style[index: integer]: TTileStyle read GetStyle write SetStyle; default;
  end;
...
function TTileStyles.GetStyle(index: integer): TTileStyle;
begin
  result:=FStyle[index];
end;

procedure TTileStyles.SetStyle(index: integer; value: TTileStyle);
begin
  FStyle[index]:=value;
end;
I tried above'ish code, it compiles and all. But when i changed value from some record, it didn't change. Reading propably worked. I have a guess that it should've been pointer to record, so writing would work.
Also another problem with "name" clashing with propably some internal "name" related to default parameter.