home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Game Killer
/
Game_Killer.bin
/
527.WOLFMAP.DOC
< prev
next >
Wrap
Text File
|
1992-10-20
|
19KB
|
431 lines
WOLFMAP - Wolfenstein 3D Map Processor. (c) 1992 Sysma Automatisering
Disclaimer
----------
The program is delivered to you as is. Although copyrighted, we are not
liable for any damage whatsoever when using this program, either in it's
origional form or any altered form.
Although distributed freely, this is copyrighted material. You are hereby
granted the rights to use and/or modify the program for your personal use.
You may (re)distribute this program or your own modifications, PROVIDED you
distribute the complete set of origional files with your own modified ones
and you distribute them without charging any money or any other form of
compensation.
History
-------
06/10/92 Version 1.0 After a few weeks of beta testing and adding some
functionality is this the first public release.
07/10/92 Version 1.01 Added automatic renaming of the game maps file
when using the shareware version and converting
maps between Wolf3D version 1.0, 1.1 and 1.2
11/10/92 Version 1.05 To allow for more efficient memory management and
to accomodate certain non-Borland C++ compilers,
all explicit far pointers were removed and replaced
by normal pointers and functions using them. At
the same time the memory model was changed to
Large to keep a large heap.
12/10/92 Version 1.5 Out of dissatisfaction about the functioning of
existing map editors, we added our own graphical
map editor to WolfMap.
29/10/92 Version 1.6 Added the feature of creating a specified version
of the map files when this version is not present.
Also fixed a bug causing system crashes when
creating maps that never existed in the map file.
Maps, created from scratch now get the same titles
as the same map number would get in the origional
version of Wolf3D.
Also, adjusted the drawing mode in the editor so
you can move the mouse cursor outside the map area
without losing the drawing mode when moving the
cursor back in.
Brief description
-----------------
The idea for wolfmap came in july 1992. After playing Wolf-3D for a while,
I started creating my own levels using the MapEdit program, written by Bill
Kirby. The problem arose when the Wolf3D version 1.1 came out. The maps,
generated by the MapEdit program, were unusable. It turned out that the 1.1
version of Wolf3D uses a different compression format than version 1.0
The origional purpose of the Wolfmap program was to convert the map file
back and forth between the Wolf3D versions 1.0 and 1.1. At a later stage
functions were added to make a printout of a map to a file or printer and to
display statistics about each map (such as how many secret doors there are,
etc.)
The resulting program was the version 1.0 of Wolfmap. It takes a command, a
set of Wolf3D map files and executes the command. Whenever changes are to be
made to the maps, Wolfmap first backs up the origional files before making
those changes.
The updated version 1.01 of Wolfmap adds support for Wolf3D version 1.2,
and automatically renames the game maps file whenever converting to or
from Wolf3D version 1.0 format files using the shareware version.
The updated version 1.5 adds an interactive, graphical editor. This is done
because the existing map editors do not either fully implement the storage
indirections used in the data files, or are limited to only one version of
Wolf3D.
Usage
-----
The Wolfmap program accepts one command, together with optional flags and
map numbers. Map numbers and flags may appear anywhere on the command line.
Note that a command must be present. When more than one command is issued,
only the first one will be executed.
When several different flags for the same basic function (format, version,
number of columns, output destination) are specified, only the last one
will be used. The other ones will be ignored.
Map numbers may be specified in two ways. The first one is to simply give a
list of map numbers, separated by spaces. The second one is to specify a
range of map numbers. A range is given by a map number, immediately followed
by a minus sign ('-') and a second map number. In this secuence no spaces
may be used and the first number must be less or equal to the second. All
numbers within and including the range will be selected. When no map numbers
are specifies, all maps are assumed.
Wolfmap executes it's commands on a set of Wolf3D map files. For the
shareware version these files have the extention .WL1, for the commercial
version .WL6. Wolfmap uses a third set (.LOC) of it's own when executing
certain commands. Wolfmap contains autodetection logic to determine which
version you have, so normally you don't have to specify a version explicitly.
When Wolfmap executes a command requiring changes to the origional map
files, it will write the changes first to a set of work files. These files
will have the extention .WRK, but normally these files will not be visible
when Wolfmap returns to DOS, since Wolfmap tries to delete them before
terminating. When the changes are made, the origional files will first be
copied to backup files (.BAK), overwriting any previous backups. When this
is successfull, it then copies the work files to the origional ones. This
ensures that you don't loose your origional map files when fatal errors
occur.
Wolf3D version 1.1 uses a different compression format for the map files
than Wolf3D version 1.0. Normally, though, you don't have to specify the
format, since Wolfmap contains autodetection logic to determine which
compression format was used and will adjust to this format automatically.
The compression format of Wolf3D version 1.2 is identical to that of
version 1.1, since version 1.2 is only a bugfix release.
Commands
--------
Wolfmap can execute several commands. A detailed description of each
command follows below.
h (or ?) Show usage information on the screen.
c0 Convert all maps to Wolf3D version 1.0 compression format.
c1 Convert all maps to Wolf3D version 1.1 compression format.
c2 Convert all maps to Wolf3D version 1.2 compression format. This
command is the same as c1, but is added for convenience.
e Export a selection of maps to a special set of map files. These
files have the extention .LOC
i Import a selection of maps from the special set of map files.
The import and export commands can be used to transfer maps from
one set of Wolf3D map files to another.
m Start the interactive, graphical editor / viewer. This command
ignores any given mapnumbers and enables editing of all maps, one
map at a time. See the editor section below for more details.
dt Display the map numbers plus map titles of every map in the map
files.
ds Display the map number, map title and statistics of every map in
the map files. The statistics are listed in 9 columns. Each
column is listed below.
Door The number of normal doors in the map.
Lock The number of locked doors in the map.
Secr The number of secret doors in the map.
Elev The number of elevators to other levels in the map.
Trea The number of treasures in the map. For this count all
treasures (Cross, Chalace, Jewels, Crowns and Spheres)
are added together.
Lvl1 The total number of actors when playing difficulty
level 1 (Can I play, daddy) or 2 (Don't hurt me).
Lvl3 The total number of actors when playing difficulty
level 3 (bring 'em on).
Lvl4 The total number of actors when playing difficulty
level 4 (I am death incarnate).
Huge The total number of huge guards in this map.
pm Prints a selection of maps.
ps Prints more detailed statistics of a selection of maps.
pl Prints the legend for symbols, used in maps generated by the pm
command.
Flags
-----
Many Wolfmap commands can be modified using flags. Below follows a list of
flags which can be used.
-s Use the shareware version of the map files (ie. .WL1 files)
-c Use the commercial version of the map files (ie. .WL6 files).
These files are the default when both sets are present.
-l Use the special version of the map files (ie. .LOC files). This
version cannot be used in conjunction with the import or export
command, since these commands use this version implicitly.
-f0 Override the autodetection logic for determining the format and
force Wolf3D version 1.0 compression. For the import, export or
modify command this flag specifies that the transferred / edited
maps must be converted to Wolf3D version 1.0 compression format.
For these three commands, therefore, the autodetection cannot be
overridden.
-f1 Override the autodetection logic for determining the format and
force Wolf3D version 1.1 compression. For the import, export or
modify command this flag specifies that the transferred / edited
maps must be converted to Wolf3D version 1.1 compression format.
For these three commands, therefore, the autodetection cannot be
overridden.
-f2 Override the autodetection logic for determining the format and
force Wolf3D version 1.2 compression. For the import, export or
modify command this flag specifies that the transferred / edited
maps must be converted to Wolf3D version 1.2 compression format.
For these three commands, therefore, the autodetection cannot be
overridden.
This flag specifies the same format as -f1, but is added for
convenience.
-ou Used in conjuction with the print commands only. This flag
specifies that each map output must be directed to a separate,
unique file, either LEVEL???.MAP for the pm command,
LEVEL???.STA for the ps command or LEGEND.MAP for the pl
command. In these names the ??? represents the map number.
-os Used in conjunction with the print commands only. This flag
specifies that every map output will be directed to one file,
either LEVELS.MAP for the pm command, LEVELS.STA for the ps
command or LEGEND.MAP for the pl command. When no output flag
is specified, this is the default setting.
-oo Used in conjunction with the print commands only. This flag
specifies that the map output will be directed to stdout. This
means that the output can be redirected to any file or device,
using the standard DOS redirect command, or '>'.
-ol Used in conjunction with the pm command. It specifies that after
the maps are printed, the legend must be printed as well.
-w Used in conjunction with the dt command. It specifies wide (or
three columns) display of the map titles.
-2 Used in conjunction with the dt command. It specifies two column
display of the map titles.
The Editor
----------
The buildin graphical editor (from version 1.5 upwards) is based upon the
Borland BGI graphics system and is designed for VGA systems only. Therefore,
only the EGAVGA.BGI driver is supplied. If this driver is not in the current
directory, the editor won't start. Since Wolf3D itself was written for VGA
systems only, this shouldn't cause any problems.
Besides the graphics driver two other files MUST be present in the current
directory, MAPDATA.DEF and OBJDATA.DEF. These are the same files with the
same format as Bill Kirby used for his MapEdit program.
The design of the editor display is based upon the screen design used by Bill
Kirby for his MapEdit program, but differs on several minor points. The
screen is divided into two major areas, the map viewer and the legend
(or key) viewer.
The map viewer contains a graphical, colored represenation of a map. The
legend viewer contains of three other sections. The top section contains the
selected legend (or key). This is the item which will be written into the map
when editing. The large section contains a (partial) list of the available
legends, either from the map values or from the object values. On the bottom
there are four buttons. The 'MAP' button selects the map legend, the 'OBJECT'
button selects the object legend, while the 'UP' and 'DOWN' buttons scroll
up and down the selected legend list, respectively.
The editor accepts the following commands:
f Toggles whether or not the floor values should be made visible.
o Toggles whether or not the object values should be made visible.
Note that the object representing secret doors will always be
visible, as it is considered part of the map itself.
C Clears the current map, so a new one can be started.
D Discards any changes made to this map during this session and
reloads the map stored in the map file.
S Saves all modifications to the current map in the map storage, so
they can be recalled with the <Esc> key. This command can be used
before making large changes to an already changed map as a sort of
undo feature. All changes from the saved point on can be rolled
back if you make mistakes. Remember that with the D command you
can roll back ALL changes and restore the map saved in the map
files.
0 .. 9 Go directly to the selected map number in the current episode,
saving changes to the current map.
e Save all changes to all changed maps and exit from the editor.
q Discard all changes to all maps and terminate the edit session.
<Break> Same as the 'q' command.
<Esc> Discards any changes made during the editing of the current map.
This command differs from the discard command in that any
changes made during this session before the last save will
remain in effect. It just cancels out the changes after the last
save.
<->> Save the current map and go to the next one in the current
episode. If the current one is the last one, wraps to the first
map.
<<-> Save the current map and go to the previous one in the current
episode. If the current one is the first one, wraps to the last
map.
<PageUp> Save the current map and go to the next episode. If the current
episode is the last one, wraps to the first episode.
<PageDown> Save the current map and go to the previous episode. If the
current episode is the first one, wraps to the last episode.
Definition file format
----------------------
The current known objects are stored in two text files, MAPDATA.DEF and
OBJDATA.DEF. Since these files are in text format, you can edit them using
any normal ASCII editor. If you figure out a new object, you can add it's
description to the map / object list respectively. Each line in the two files
contains 3 items (you MUST follow this exact format):
0000 0000 Objectname
The first four digits are HEX for the object number. Right now, even though
there are 4 digits, you are restricted in the values to use. For MAPDATA.DEF
the largest value is 00ff and for OBJDATA.DEF the largest value is 01ff.
The second four digits define how the object will look in the map. The first
two digits are the primary / secondary colors. The third digit is the graphic
type, and the fourth digit is the character string to use if the graphic type
is "text".
Colors:
0 - black
1 - blue
2 - green
3 - cyan
4 - red
5 - magenta
6 - brown
7 - light grey
8 - dark grey
9 - light blue
a - light green
b - light cyan
c - light red
d - light magenta
e - yellow
f - white
Graphic types:
0 - text (uses fourth character of graphic definition)
1 - solid box
2 - checkered
3 - solid box (primary) with decoration (secondary)
4 - checkered box (primary) with decoration (secondary)
5 - large filled circle (primary) with smaller circle (secondary)
6 - horizontal bar
7 - vertical bar
8 - two color box (used for landscape view)
9 - single pixel centered
a - 3x3 pixel block
b - 5x5 pixel block
c - 7x7 pixel block (or a complete box)
d - X (primary)
e - rectangle
f - arrow (secondary color indicates direction: 0=n,1=ne,2=e,3=se,
4=s,5=sw,6=w,7=nw)
Memory Requirements
-------------------
The Wolfmap program uses very little memory. Besides the code and data, stored
in the executable itself, it only uses about 30K as intermediate memory during
processing of the commands. Given the current size of the program (about 70K),
this means that Wolfmap will operate with as little as 100K of free memory.
The only exception is the buildin editor. The editor itself loads several
files into memory. With the supplied definition files this totals to about
20K of extra memory needed. Furthermore, every MODIFIED map is kept in memory
until the editor session is terminated, or modified maps are discarded. In
compressed form, each map uses about 6K of memory. When modifying all 60 maps
at the same time you must expect a memory usage of around 500K.
Comments
--------
When you have comments or find bugs, please do not hesitate to contact us.
Also, if you have ideas on how to expand the program or have suggestions for
new commands or options, please contact us.
Our email address is:
FIDO: 'Jan Peter Dijkstra' at 2:283/303.0
We can also me contacted by mail. Our mail address is:
Sysma Automatisering
tav. J.P. Dijkstra
Fazantstraat 169
7523 DP Enschede
The Netherlands
Phone: +31 53 337410
Fax: +31 53 311090
Please do not modify Wolfmap and make those modifications public. This
interferes with regular updates, coming from us. Use modifications only for
yourself. If you think it is worthwile, contact us using the listed methods.
If we agree, we will incorporate your changes in a next release.