// -------------------------------
// Quake CD track parsing analyser
// -------------------------------
// Compile this DEM text file to a binary DEM file with LMPC (version>=3.1.6):
// lmpc --to-bin --game QUAKE cd.txt cd.dem
// and copy it in your quake/id1 directory.
// Playback the binary DEM file with
// <insert your Quake binary here> +playdemo cd
// The playback should print a short message on the console, which says
// what CD track parsing method your Quake binary uses.
// Find out more about CD track parsing methods in
// "The unofficial DEM format description" on
// http://demospecs.half-empty.de/dem
// Get the current version of "The Little Movie Processing Centre" from
// http://demospecs.half-empty.de
// Get the precompiled binary DEM file from
// http://demospecs.half-empty.de/misc/cd.dem
// Get the DEM text file from
// http://demospecs.half-empty.de/misc/cd.txt
// 6/16/1998, Uwe Girlich (uwe@half-empty.de)
// This track can only be parsed correctly by the fscanf method
// The byte-by-byte method simply continues.
track "-1 ";
// This block will be parsed as usual from the fscanf method but
// the byte-by-byte method starts reading after the first 0x0A byte (\n).
block {
camera 0.0 0.0 0.0;
// Print the message for the old fscanf method.
// \n is not allowed here because it would stop the byte-by-byte method.
print " old: fscanf ";
// Stop further reading.
disconnect;
unknown {
// This is a 0x0A (\n) to stop the byte-by-byte parsing method.
id 0x0A;
// 0x1D (29) is the length of the following data block.
data 0x1D 0x00 0x00 0x00
// 12 bytes for the camera.
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00;
}
// Print the message for the byte-by-byte method.
print " new: byte-by-byte\n";
// Stop further reading.
disconnect;
}