All you have to do is to check the hierarchy of the b3d recursively and EntityTexture those children that are meshes. See the "how to make entityalpha work with animated meshes" (or alike) in the archives for an example on recursively parsing the entity hierarchy.
For multitextured stuff you may track down the used textures as seen in the "SaveB3D" source and then use PaintSurface to replace certain textures.
AFAIK Blitz will do an automatic Garbage collection. When a Texture is freed, its space is available. Although physicly still there and even the entity handle still working, but you could compare this to the file system that only releases the space occupation referenced in the FAT, the data is still there.
Blitz has no known memory leak and manages memory nicely. When you try to load something twice, it will reuse the loaded data and only create an instance. When you AddMesh a few meshes together and some of them use the same textures, it will minimize the surface count automaticly.
For multitextured stuff you may track down the used textures as seen in the "SaveB3D" source and then use PaintSurface to replace certain textures.
AFAIK Blitz will do an automatic Garbage collection. When a Texture is freed, its space is available. Although physicly still there and even the entity handle still working, but you could compare this to the file system that only releases the space occupation referenced in the FAT, the data is still there.
Blitz has no known memory leak and manages memory nicely. When you try to load something twice, it will reuse the loaded data and only create an instance. When you AddMesh a few meshes together and some of them use the same textures, it will minimize the surface count automaticly.