Quote Originally Posted by Alimonster
What does your tile record/class/whatever look like?
[pascal]
type TTile = Record
SmallLib: SmallInt; {library file}
SmallTile: SmallInt; {tile number}
LargeLib: SmallInt;
LargeTile: SmallInt;
ItemLib: SmallInt;
ItemTile: SmallInt;
Frames: Byte; {for animation}
Data: Byte; {1 = no walk / walk, 2 = safe / not safe}
Sound: Word; {track number}
SoundControl: Byte; {1 = start / stop, 2 = repeat, 3 = random, bits 4,5,6,7,8 are volume}
Music: Byte; {track number}
MusicControl: Byte; {1 = start / stop, 2 = repeat}
end; {19 bytes}
[/pascal]

I know this can be optimized, For example, using a bitmask I can merge the lib data into one byte, instead of using 2 bytes each. Potentially I can merge the sound and music data into 1/2 or 1/4 of the size as well. The only data the server needs to be aware of is the walk / don't walk data. This is stored in one bit. I suppose that means I could reduce the stored tile data by 8...