• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

[Misc] Listfile for Warcraft 3 (1.30+)

Last update July 13, 2018.


Overview


As of patch 1.30 PTR, Blizzard changed Warcraft 3's game data files to use a CASC file system instead of plain MPQ files. This post is a simple reference for those who want to programmatically access files using something like CascLib.

First:
  • What is a listfile? A listfile is just a list of all the file paths within an archive. For our purposes, we just use them to look-up a particular asset in an archive. For example, Arthas' theme is stored under "war3.mpq:sound/music/mp3music/arthastheme.mp3" in CASC.

  • What is CASC? CASC (Content Addressable Storage Container) is a new file system that Blizzard has been using to manage game assets. It is the successor to good ol' MPQ storage. Technical details and specs can be found here!

The List


See the attached text file at the bottom of the post, or view the gist here. It is too long for a post.

Here is a sample on using one of the file names to open a file using CascLib:
C++:
    /// File handle for read operations
    HANDLE file;

    /// Attempt to open the file
    if (CascOpenFile(storage, "war3.mpq:sound/music/mp3music/comradeship.mp3", 0, CASC_OPEN_BY_NAME, &file)) {

        /// do stuff with the file handle

    }

I'll try to keep this updated!
 

Attachments

  • names.txt
    3.2 MB · Views: 1,256
Last edited:
Top