Tutorial¶
Using a ReadWriteFile Class¶
The most common way of working with video game file formats in the
vgio
library is a class derived from the
ReadWriteFile
class. You can create instances of this
class by loading from a file or from scratch.
To load a video game file format object from a file use the
open(file, mode='r')
classmethod on the derived
ReadWriteFile
class. Because
ReadWriteFile
is a base class this example will use the
Quake Mdl
model format:
>>> from vgio.quake.mdl import Mdl
>>> mdl_file = Mdl.open('armor.mdl')
If successful, it will return an Mdl
object. You
can now use instance attributes to examine the file contents:
>>> print(mdl_file.version)
6
>>> print(mdl_file.identifier)
b'IDPO'
Using an ArchiveFile Class¶
It is common for video games to bundle their files in an archive and
the vgio
library provides classes derived from
ArchiveFile
and ArchiveInfo
to
work with that data.
Note
An ArchiveFile
object must be created using a file or
file-like object.
Since the ArchiveFile
is a base class, this example will
use the Duke3D GrpFile
archive format:
>>> from vgio.duke3d.grp import GrpFile
>>> grp_file = GrpFile('DUKE3D.GRP')
If successful, it will return an GrpFile
object.
You can now get a GrpInfo
object and can use the
instance attributes to examine the file contents:
>>> info = grp_file.infolist()[0]
>>> print(info.filename)
LOGO.ANM
>>> print(info.file_size)
1507336