Description
I've noticed the IMG I/O present on libgtaformats have the stabilities current 'ol tools out there have.
So what's the thing?
MoveToEnd /*!< Entries following the insertion position are moved to the end of the archive
until enough space is available to move the entries.
This mode is faster than MoveSwap, but it leaves holes in the archive, which
might need to be filled using pack() once in a while. Also, this mode does NOT
preserve the order of the other entries. */
There should never ever have holes in the img file, that because the game might read two or more consecutives entries at once, and having a empty block between the files will cause a castratophical failure on this optimization. This ends up creating another rule, directory entries (at .dir file or at the top of img files), should have the same order as the files in the img archive.
I've updated the IMG archieve documentation at GTAModding a month ago or so to include those informations: http://www.gtamodding.com/index.php?title=IMG_archive
I guess when you wrote the IMG I/O here, the article didn't contain those informations, so take a look at it again :)
btw, great work!!!