Ah, ok I see.
what restrictions are there
Well, OpenTTD is Tile based, so it has to fit either on one tile or on multiples of those tiles
Be aware, that for Objects it is only possible to code full squares or rectangles (so 2x2, 3x3 etc or 1x3, 2x3 etc), unlike for example industries where you can leave room for roads/tracks/waterways in between.
Maximum floorsize is I believe 15x15 tiles for objects.
what's the highest I can draw them
255 pixels is I believe the highest a boundingbox of a single-tile sprite can be, so then you get no glitches/clipping issues. They can be drawn higher, but then you will get glitches and/or planes possibly flying through them.
For multitile graphics, you can use the high point of 255 pixels of the boundingbox from the tiles at the back. So lets say you have a 2x2, where you have a tower on the front tile, then you have some extra room regarding hight if you include the tower graphics into the back-tile. This may illustrate what I mean:
- Test255.png (37.66 KiB) Viewed 1511 times
So the tower is on the front-tile (in green), but as you can see, because of the backtile (in purple) you can get 31 pixels 'extra" hight without glitching issues if you include the tower graphics also on that tile.
So, a trick to safely get some extra hight
floor textures
Basically, 3 options:
1. You draw full tile floors yourself.
2. You use the code to show base-set groundtiles (for example grass, concrete), these will automatically adapt to landscape-GRFs that replace base-set graphics.
So, lets say you have a drawing of a tree, that you want placed on grass. You then only have to draw the tree and use the code to get a grassy groundtile. So, you wont have to draw the grass and that grass will also adapt to the grass of the landscape-GRF a player may be using. Or, to how the grass looks in a different climate.
3. Use a combination of both, so lets say you have a structure that has a road going towards it (for example, going into the entrance of an underground parking). If you use the code to show a base-set road as the groundtile towards that entrance, that road will adapt to the road-set a player is using. It cant be used by roadvehicles ofcourse, but it looks nicer as it is the same road a player is currently using.
properties for backgrounds
Not really sure what you mean by that
The perspective of OpenTTD does not really allow backgrounds (like horizons). The background is done by the tiles behind your structure.
Please elaborate a bit more about what you mean with backgrounds..
Finally, this may be an interesting read for you (page 55 to 57):
viewtopic.php?f=68&t=48891&start=1080#p1165354
It starts out with some stuff about single-tile slope-aware objects, also has some info about adding extra text, snow-awareness and finally it goes to multi-tile objects, with examples.
EDIT:
A shortcut
An example template of a 2x2 that is snow-aware and has extra texts for each of the 4 views can be found here:
viewtopic.php?f=68&t=48891&start=1120#p1168928