ipack(1) Manipulate Flex files containing Shapes


ipack -c SCRIPT

ipack -x SCRIPT

ipack -u SCRIPT


Flex files containing Shapes are used for the storage visual elements by the games Exult supports. While expack(1) can operate on such files, using ipack is more comfortable. It can extract images from the Flex file directly into PNG-format, and create or update Flex files from a list of PNG files.

The first parameter determines the mode of operation:

-c Creation
New Flex and palette files are created according to the instructions contained in the SCRIPT file.

-u Update
Works like Creation, but updates an existing Flex file.

-x Extraction
The contents of the Flex file described in the SCRIPT file are extracted as PNG is dissected into its contents, as described in this script file.

Script File Format

Empty lines, and lines starting with a pound sign (#) are ignored.

The names of the associated Flex archive and palette files are given in lines containing optional whitespace, one of the tokens archive or palette, whitespace, and the filename.

Other lines define one shape each, and must begin with an image slot number, followed by a slash (/), the number of frames, a colon (:), and finally the PNG file specification. The numbers may be given either in decimal, in octal prefixed with 0; or in hexadecimal prefixed with 0x. The file specification consists of the filename PREFIX, optionally followed by a number and direction in brackets, optionally followed by whitespace and the word flat.

Per default, each shape corresponds to a number of PNG files (one for each frame) named PREFIXnn.png with nn replaced by the frame number. If the optional bracket expression is used in the specification the Shape corresponds to a single PNG file instead. This file contains all frames, each of which is 8 by 8 pixels in size, arranged next to each other in a rectangular grid. The number in the bracket expression gives the size of this grid in the direction indicated. The direction can be either down or across.


ipack -c island.scr
Creates a Flex file and a palette file as specified by island.scr.

ipack -x island.scr
Extracts all components described in island.scr from the Flex file given therein.

Example script

# script file for island.flx
archive island.flx
# put the palette into this file
palette island.pal
# the zeroth image has 32 frames in the files
# zero00.png to zero31.png
# image 5 consists of 22 frames stored in file
# five.png in a grid 5 frames across (which means
# 5 rows of which the last holds only 2 frames)
5/22:five(5 across) flat
# image 4 consists of 12 frames stored in file
# four.png in a 3 by 4 grid
4/12:four(4 down) flat
# images 1 to 3 are unspecified


Tiled Shapes are currently extracted into multiple PNG files, not a single file as expected during Create/Update.


This manpage was written by Robert Bihlmeyer. It may be freely redistributed and modified under the terms of the GNU General Public License version 2 or higher.