2025-08-07 10:34 CEST

spring: develop 2c150407 Diff ] Back to Repository ]
Author Committer Branch Timestamp Parent
hoijui hoijui develop 2010-12-13 01:49:55 develop 5a307093
Changeset check if certain meta-info files in archives are easily available
If they are not, the archive is either marked as broken,
or a warning message is logged, in case the meta-file is considered
2nd class only.
Needs SPRING_LOG_SUBSYSTEMS="ArchiveScanner" to appear in infolog.

Also saves a description for why an archive is considered
broken to the archive cache file.

The map files (.smf/.sm3) are not marked as meta-files yet,
cause many of the current maps would be invalid.

Thanks goes to Igor Pavlov from 7zip, for pointing me to this solution.

How to optimally pack your archives:

    # delete old archive
    rm MyMod.sd7

    # package meta files with default compression, max 32kB solid blocks
    7z a -t7z -m0=lzma -mx=5 -ms=e512k MyMod.sd7 @metaFilesList.txt

    # package non-meta files with maximum compression (2nd highest), single solid block
    7z a -t7z -m0=lzma -mx=7 -ms=on MyMod.sd7 . -x@metaFilesList.txt -x\!metaFilesList.txt -x\!MyMod.sd7 -x\!\*~

with `metaFilesList.txt` looking somehow like:
    MapInfo.lua
    maps/*.smf
    maps/*.sm3
    ModOptions.lua
    EngineOptions.lua
    ValidMaps.lua
    LuaAI.lua
    LuaUI.lua
    sidepics
    gamedata
    units

related 7zip doc:
http://bugaco.com/7zip/MANUAL/switches/method.htm#SevenZipX
http://bugaco.com/7zip/MANUAL/switches/method.htm#Solid
mod - rts/System/FileSystem/ArchiveScanner.cpp Diff ] File ]
mod - rts/System/FileSystem/ArchiveScanner.h Diff ] File ]