File: ipack.txt

package info (click to toggle)
exult 1.12.0-2
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid
  • size: 43,608 kB
  • sloc: cpp: 169,917; xml: 7,400; yacc: 2,850; makefile: 2,419; java: 1,901; ansic: 1,654; lex: 673; sh: 539; objc: 416
file content (140 lines) | stat: -rw-r--r-- 4,210 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
Ipack Documentation
JSF
Feb 22, 2002

Overview
--------
Ipack (Image Packer) is a tool for creating and updating Exult and U7 image
archives,  such as 'shapes.vga'. It is script-based, accepts '.png'
files as inputs, and is also capable of extracting '.png' files from
an image archive.

Usage
-----
Ipack is invoked as 'ipack [-c|-u|-x] [scriptfile]', where:
      -c means 'create a new archive'
      -u means 'update an existing archive'
      -x means 'extract .png's from an archive'

Script
------
The script file contains the following entries:

    1. Comments:	 Any line beginning with a '#'.
    2. Archive name:	 archive <path to archive file>
    3. Palette name:	 palette <path to palette file>
    4. Shape spec.:	 sss/fff: <basename> [flat]
			 Here 'sss' is the shape#, fff is the #frames,
			 and the basename is used to create each
			 frame's filename as 'basenameNN.png', where
			 NN ranges from 00 to #frames - 1.  'Flat' is
			 optional, and indicates an 8x8 non-encoded
			 shape is to be stored (which Exult requires
			 for shapes 0-0x95 in 'shapes.vga').
         OR:		 sss/fff: <tile-filename> flat
			 In this case (for flat only), tile-filename
			 is a .png file containing a series of 8x8
			 tiles.  It is specified as:
				 xxx.png(nn across) OR
				 xxx.png(nn down)
			 In the first case, the tiles are taken across
			 first (nn being the #columns), a row at a
			 time.  In the second, the tiles are taken
			 downward first (nn being the #rows), a column
			 at a time.
	OR:		 all: <basename>
			 This will extract every shape/frame into its
			 own .png file of the form basenameMMMM_NN,
			 where MMMM is the shape# and NN is the
			 frame#.  

Examples will be given below.

Functions
---------
Create
------

Use:  'ipack -c scriptfile'

A new archive is created, consisting entirely of shapes specified in
the script.  If the archive already exists, it is entirely replaced.

The archive name is required.

The palette name is optional.  If provided, and if the file doesn't
yet exist, ipack will create it as a Flex file with the first input
.png's palette stored as entry 0, and entries 1-10 automatically
generated to approximate what we use in Exult (see palettes.h).  
It will also write palette 0 in text format with .txt appended to the 
paletted name.  This format is recognized by the Gimp.

     Example:

     archive ../static/shapes.vga
     palette ../static/palettes.flx
     0/8:    flats/grass.png(4 across) flat
     1/2:    flats/sand flat
     783/1:   trees/birch

This will create a 'shapes.vga' from the following files:
     flats/grass.png, consisting of 2 rows, each 4 columns of 8x8 tiles.
     flats/sand00.png	flats/sand01.png
     trees/birch00.png

Shape 0 will have 8 frames; shape 1 will have 2, and shape 783 will
have 1.  Note that the files for all the frames must exist.

The shapes that aren't specified (2-782) are set to null (which Exult
should handle with warnings).

Update
-------

Use:  'ipack -u scriptfile'

An existing archive is updated with the shapes specified in the
scripts. This is useful for patching 'shapes.vga' with new shapes.

The archive name is required, and the file must already exist.

The palette name is optional, and is created if it doesn't exist, as
described above in the 'Create' description.

     Example:

     archive ../static/shapes.vga
     783/2:   trees/birch

The 'shapes.vga' file will have shape # 783 replaced by the files
'trees/birch00.png' (frame 0) and 'trees/birch01.png' (frame 1).

Extract
-------

Use: 'ipack -x scriptfile'

The shapes listed in the script are extracted from the archive, and
stored as .png files.

The archive name is required, and the file must exist.
The palette name is also required, and the file must exist.

    Example:

    archive ../static/shapes.vga
    palette ../static/palettes.flx
    781/2:   ships/gangplank

The files 'ships/gangplank00.png' and 'ships/gangplank01.png' should
be extracted from the shapes file using palette 0 in 'palettes.flx'.

    Example:

    archive ../static/shapes.vga
    palette ../static/palettes.flx
    all:    allshapes/shape

All frames will be extracted into files of the form
allshapes/shapeMMMM_NN.