So the memory situation is getting a little bad. As you may have noticed, the game loads 200MB of content on load, and most of this is wall data:
(floor data is like, 20?)
The wall and floor data is a bit special right now in that we actually load all of it, and as you can see from the patterns list, there are a lot of them. This is actually our biggest memory sink right now, hands down.
So how do we fix this? The walls and floors are loaded both from two global iff files and a collection of iff files inside a far archive. The problem is loading these iff files without loading the entire far archive, which is something the objects already do with FAR1Provider, but hasn't yet been ported to the walls. This is because we don't store any packing slips storing information on where what wall lies, so we can't really point from a "wall id" to a far archive and .wll filename. The million dollar question is, do we generate more packing slips for walls and floors, and get them (with catalog strings, icon) when needed? Or generate it at runtime? I'll probably go with the packing slip solution, which means seeing what Mr. Shipper actually does.
As for removing unused walls/object resources from the cache, we'll probably do some form of garbage collection every minute or so that gets all resources present on the lot, and purges those that aren't from the cache entirely (using Texture2D.Dispose where it is applicable, a lack of this is crashing the game on my system) so that we get a relatively low memory footprint. It can never be as low as the original game, because we're doing a lot of hardware rendering so we can't render SPR2 directly, want to keep all of an object loaded for performance reasons, etc. I'm pretty sure that I can get it to around 300MB hard maximum though.
I'll probably start work on all this after I've rewritten floor components to be more friendly to purely visual changes, and written the floor tool. There will be many actual performance improvements for rendering everything too, but these will likely come later.