Jazz2::Compatibility::AssetConverter::ConversionOptions struct

What is converted out of the source directory, and what of it is carried over.

Which levels are wanted

A source directory is usually an installation that has collected levels from everywhere, and most of them are of no use to a build that only has to carry the game itself - a console disc especially, where they cost space that is not there. Both of these are off by default, so the whole directory is converted unless something asks otherwise.

Public variables

bool OriginalsOnly
Convert only what the original game and its expansions shipped.
bool SharewareOnly
Convert only what the Shareware Demo came with.
bool SkipNonEpisodeLevels
Skip levels that belong to no episode (the ones that would land in Episodes/unknown).
bool CopyUsedMusic
Copy the music the converted levels ask for into a Music subdirectory.
SmallVectorImpl<String>* SkippedLevels
Receives the name of every level that was skipped, so a caller can report them.

Variable documentation

bool Jazz2::Compatibility::AssetConverter::ConversionOptions::OriginalsOnly

Convert only what the original game and its expansions shipped.

The episodes are recognised by name and every level reachable from one of them is followed, so an episode does not lose a level just because it is not in the table of known ones. Levels that belong to no episode are matched against a list of the ones the original game came with - see StockStandaloneLevels in the implementation, and SkippedLevels if it needs correcting.

bool Jazz2::Compatibility::AssetConverter::ConversionOptions::SharewareOnly

Convert only what the Shareware Demo came with.

A subset of OriginalsOnly - its one episode and the three multiplayer levels that shipped alongside - and it wins if both are set. The custom-levels entry is still kept, so a build that lets the player bring their own data (see ImportSection) does not lose the menu item for it.

Note that this cannot narrow Source.pak: sprites and sounds are shared across every episode, so what ends up in there is decided by which Anims.j2a the source directory has.

bool Jazz2::Compatibility::AssetConverter::ConversionOptions::CopyUsedMusic

Copy the music the converted levels ask for into a Music subdirectory.

For a target whose output is the content tree the game loads, which is where it looks for music. The desktop game instead reads it from its own content directory, falling back to the original files, and never looks in the cache - so copying it there would only take up space.