Hi T-Bear,

If you are storing an X,Y pair for each item in the Tiles and Objects array, then you can improve things quite a bit by moving to a two dimensional array.

Code:
Tiles : array[0..200,0..200] of TTile;
Objects : array[0..200,0..200] of TObject;

How would this work if the objects are larger than a single tile though? Basically on the map there are buildings which can span many tiles, and trees which are on a single tile.
As you said this probably won't work with dynamic size of the objects.

When I wrote a tile based game for one of our competitions, I used pointer based datastorage which is in fact much like the dynamic array with index calculations.
How exactly would this work? Pointers from each tile object to the object on the tile? How would this work with objects larger than single tiles?

Can you post some of the code where you are actually using the map?
Anyway if you provide more information about your game and general map structure we would be able to offer you better advice particulary more suitable to your game.
I am mostly just doing some information gathering for my new project, reading about stuff and so on, so I don't have any code sample for how the map structure is going to work exactly. I tried finding some old code illustrating how I did this, but couldn't find any.