Deine zwei Listen sind ja global und stellen eine Sammlung von Objekten dar (z.B. TGebiet).
Aus dem Objekt selbst greifst Du dann auf die globale Liste zu...
statt
for i:= 0 to Gebiete[ID].Tiles.Count-1 do
sollte doch
for i:= 0 to Tiles.Count-1 do
auch reichen!?
Und darüber hinaus könntest Du die optisch komplizierten Anweisungen in eine globale Funktion bzw. Prozeduren auslagern:
Delphi-Quellcode:
for i:= 0 to Tiles.Count-1 do
TileListDraw(MapID, I);
procedure TileListDraw(MapId, I: Integer);
begin
TileList[Gebiete[MapID].Tiles[I].ID].Draw;
end;
Das ändert zwar an der Anweisung nichts, vereinfacht aber etwas die Lesbarkeit Deines "eigentlichen" Programmcodes.
stahli