home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Complete Doom Accessory Pack 3
/
TheCompleteDoomAccessoryPackVolumeIiiCd.bin
/
editors
/
rmb
/
manual.txt
< prev
next >
Wrap
Text File
|
1994-09-13
|
29KB
|
824 lines
-------------- USERS MANUAL ----------------------------
My English is not that good, so if you feel
like writing a better manual please contact me.
(Email: hykkelbj@daimi.aau.dk)
(All comments are welcome)
1. Introduction
2. How to use the Reject Map Builder
3. How to use the Inspect Utility
4. Making Special Effects
5. Using an Option File
6. Multilevel wads
7. Copyright notice
8. Authors note.
--------------- 1. Introduction ----------------------
The reject map builder is a utility that takes
a PWAD file and finds out which sectors can be seen from
a sector. This information is used by DOOM to speed up
the real time action!
The program should be used with care. The best would be,
if it's only used by the author of a wad. The reason it
should be used with care is that the reject map can be used
for some special effects.
These will be removed if the PWAD file is processed with RMB.
The program was made after inspiration from a discussion on
the doom editing mail list. Keep that list running! ;)
The program was written in Turbo Pascal 6.0, and
I started totally from scratch. "The Unofficial Doom Specs"
has been a great help to me. Without it this program had never
been made...
NOTE:
When the syntax of some command is given anything in
square brackets is an optional parameter, and anything in curly
brackets is a choice between more possibilities.
The syntax:
EFFECT <file>.WAD [EnMx] {BLIND, SAFE} {0, 1} <sector number>
means that all these commands can be used:
effect file.wad blind 0 22
effect file.wad e1m2 safe 1 43
effect file.wad e1m1 blind 1 55
...
See the section on how to make special effects for
an explanation of the effect utility.
(or even better learn to write an option file)
------- 2. How to use the reject map builder -----------
Note: The syntax has changed since v1.0
To use the reject map builder you need to unpack it into it's
own directory, like c:\reject. When you want to run it on a WAD
like for instance starwar1.wad simply go to the directory
where you have put the program e.g:
> cd c:\reject
and type "RMB <filename>.WAD <output file>.WAD".
That's all there is to it...
> rmb c:\wadfiles\starwar1.wad c:\wadfiles\mystarw1.wad
The input and output files can be identical.
If the file is a multilevel WAD (like starwar2 and others)
this will make RMB process the first level in the wad.
To process another level just type
"RMB <filename>.WAD <output file>.WAD EnMx"
where EnMx gives the episode and mission number.
> rmb c:\wadfiles\starwar2.wad mystar2.wad e1m2
(to process episode 1 mission 2 in starwar2.wad,
and put the result in mystar2.wad).
If the EnMx parameter isn't used RMB will process the first
map in the WAD.
When the program has finished processing, the
efficiency will be shown. The efficiency is the percentage
of 1's in the reject map. A high efficiency means that the
speedup will be good. There is no need to run RMB
on a PWAD that has already been processed. To check whether
a file has been processed you can use the INSPECT tool.
During the execution of the program a map of the level being
processed is shown. In the top left corner of the screen
there will be a number showing the current sector, and
the total number of sectors.
The program will process all sectors one by one,
and for all sectors it will calculate how much can
be seen from every 2s line in the sector.
The 2s line currently being processed is shown in red, and when
the program has finished processing the line, it turns cyan.
From the 2s line it's possible to see other 2s lines. these will
be shown in yellow, and turn purple when they have been processed.
So there should always be a red and a yellow line, and the program
is currently processing a LOS calculation from the red towards (through)
the yellow line.
To optimise the original DOOM.WAD there is a little batch
file included called ORIGINAL, that runs through all DOOM
levels, and optimises them one by one. (You can easily make
and drink a cup of coffee meanwhile)
All you have to do is copy the doom.wad file to your RMB
directory, and then type ORIGINAL <enter>.
When you are done you can take a backup of your original
doom.wad, and copy the new doom.wad back.
(remember, that when you have changed the original doom
files ID offers no support...)
-------- 3. How to use the inspect utility -------------
The inspect utility inspects the current reject map of a PWAD
without changing it. The statement syntax is:
INSPECT <Filename>.WAD [EnMx] [Sector number]
If it is used without a sector number, it will calculate
the efficiency of the current reject map.
> inspect c:\wadfiles\think12.wad
Efficiency: 40%
Called with a number after the WAD filename, It will tell you
the sector numbers, that monsters can (presumably) see
from this sector.
> inspect c:\wadfiles\think12.wad 0
Sectors visible from sector 0:
0,1,...
The "EnMx" option lets you process multilevel wads.
The following command:
> inspect c:\wadfiles\starwar2.wad e1m2 0
Sectors visible from sector 0:
0,1,...
means that you want to inspect episode 1 mission 2
in the WAD. If you don't use the EnMx option, you will
automatically inspect the first map in the file.
---------------- 4. Making Special Effects ----------------
NOTE: if you use the RMB utility all special effects are removed
unless you use an option file for RMB.
(some wad editors will gladly remove all special effects too)...
With the EFFECT utility you can make special effects
with the reject map. The syntax of EFFECT is:
EFFECT <filename>.wad [EnMx] {SAFE, BLIND} {0, 1} <sector number>
The SAFE option makes safe sectors.
As long as you are in a safe sector the monsters won't
shoot you. A safe sector is made like this:
EFFECT <filename>.wad SAFE 0 <sector number>
The '0' means, that at a distance of 0 or above, the monsters can't see you.
currently only 0 and 1 is supported here.
(1 meaning that monsters inside the safe sector can see you, but others can't)
The other effect is BLIND. The following command makes all monsters
inside a sector totally blind:
EFFECT <filename>.wad BLIND 0 <sector number>
again the zero can be exchanged with a 1, in which case the monsters
are only extremely near sighted...
(The effect of this is, that the monsters can only see you when you are
in their sector). Note, that the monsters gain perfect vision, if they move
out of the blinded sector.
In all cases you can use ALL instead of the sector number (last argument).
This will make all sectors safe or all monsters near sighted...
Making all monsters blind will make a very dull game, but it may be good
for playtesting a wad, to see, that all monsters are placed correctly...
--------------- 5. Making an Option File ---------------
NOTE: The syntax of BLIND and SAFE (+inv) has changed since v1.1.
An option file is a file that can be used to make more
special effects in a WAD. The option file has the same name as
the WAD file, and is placed in the same directory. The option file
should have extension '.REJ'
RMB will automatically detect the .REJ file, and process it.
That is if the WAD is called MYLEVEL.WAD the option file would be
MYLEVEL.REJ
Now follows a list of all commands that can be used in the option file.
Listed with the fastest first.
# The '#' marks a comment line
LENGTH <Distance>
DISTANCE <Euclidian distance>
BLIND <Distance> <Sector list>
LINE <Line no>
LEFT <Line no>
RIGHT <Line no>
BLOCK <Line no> <Line no>
ONE <Line no> <Line no>
INC <Sector> <Sector>
EXC <Sector> <Sector>
NOMAP
SAFE <Distance> <Sector list>
INV SAFE <Distance> <Sector list>
INV BLIND <Distance> <Sector list>
REPORT <Distance>
PERFECT
<Distance> The distance is the number of SECTORS between two sectors
Counted in a strange way. For instance if you want the monsters in
a sector to be totally blind use 'BLIND <Sector> 0'. If you want them
to be able to see their own sector use 'BLIND <Sector> 1',
for neighbours use 2 and so on.
<Euclidian distance> Is the distance as we know it. A normal door
is 128 wide, which is the euclidian distance across the door.
<Line no> Is the number of a TWO SIDED line. This line number can be found
using almost every WAD builder. (DEU5.21 recommended)
<Sector> Is the number of a sector. can also be found
by a WAD builder.
<Sector list> Is a list of sector numbers terminated by end of line
example: 1 2 5 7 9
Is a list of the sectors 1, 2, 5, 7 and 9.
In the following each command is explained in detail, but first
a brief explanation: (sorted alphabetically)
* BLIND Specifies the distance a monster can see (near sighted)
BLOCK Monsters can't look through BOTH 2s lines (One is ok)
DISTANCE The maximum distance a monster can see.
EXC Excludes view from 1st sector to 2nd. (Overrides all other opt)
INC Includes LOS from 1st sector to 2nd. (Overrides all other opt)
* INV BLIND Specifies that monsters can only see outside the distance.
* INV SAFE Monsters can't see this sector(s) inside the distance.
LEFT Makes a 2s line that can only be looked through left to right.
LENGTH Specifies the max # of sectors any monster can see.
LINE Makes a 2s line impossible to look through for monsters.
NOMAP Removes the graphical look, and prints only ASCII
ONE Same as block, but only stops LOS one way.
PERFECT Generates a perfect reject map.
REPORT Reports all detected distances >=<distance> to <wad file>.RPT
RIGHT Makes a 2s line that can only be looked through right to left.
* SAFE Monsters can't see this sector(s) outside the distance.
All options marked with '*' can change when combined with
an inverted (INV) command for the same sector. More on this later.
The next sections will explain the options in alphabetical order.
5.1 BLIND
Syntax: Blind <dist> <Sector list>
The blind option makes the monsters in the sectors in the
sector list totally blind or near sighted.
With distance zero the monsters can't see a
thing. With distance 1 they can see their own sector.
With distance two they can see their own sector and all neighbouring
sectors, and so on. In this example we will use the option
BLIND 3 5 7
That means that monsters in sectors 5 and 7 can only see across
2 two-sided lines.
|----|----|----|----|----|----|----|----|
| : : : : : : : |
| 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 | (a ':' marks a 2s line)
| : : : : : : : | (The numbers are sector numbers)
|----|----|----|----|----|----|----|----|
With this configuration of sectors 'blind 3 5 7' means, that
a monster in sector 5 can see sectors 3, 4, 5, 6 and 7 but not
sectors 1, 2 and 8; while a monster in sector 7 can see sectors
5, 6, 7 and 8, but not sectors 1, 2, 3 and 4.
5.2 BLOCK
Syntax: Block <Line no> <Line no>
RMB only processes the 2D map. If two sectors can't see each
other because of some difference in height, the BLOCK option
is perfect to make RMB realize this. An example where
two sectors can't see each other is a high lift.
The drawing here is seen from the side:
----
D E
|------|------|
| o |
| #3 -\ |
| /\ |
| |------|
| | ^
| LIFT | |
A B C | | example player
|------|------|------| | position
| |
| #0 #1 #2 |
| |
|------|------|------|------|
Here the sectors are marked with capital letters, and
the two-sided lines are marked with a '#' and their line number.
Because of the 3d difference in floor and ceiling heights sectors
A and B can't see sector E.
This is because you can't see from line #1 to line #3, and by
using the option
BLOCK 1 3
The generated reject map will look like:
A B C D E
A x x x x
B x x x x
C x x x x x
D x x x x x
E x x x
an 'x' means that you can see from one sector to the other.
Note that just as expected sector E can't see sector A and B,
and sector A and B cant see sector E. (where see means that
the monsters in one sector cant see you if you are in the
other sector.)
Having the possibility to do 3d things like this may encourage
you to go around your wad trying to find places where a BLOCK is
in place. However if you do this just for gaining speed, you are
bound to be disappointed, and the time invested will probably not
pay off.
5.3 DISTANCE
Syntax: DISTANCE <Euclidian distance>
Distance will stop monsters from looking too far. It is very easy
to get the Length and the Distance options mixed up, but where
length makes an upper bound on the number of 2s lines monsters
can look through, Distance is a better way to limit the
distance of sight.
The distance parameter makes it impossible for monsters to see further
than a given distance.
To gain some intuition on how far a distance of say 600 is,
it is a good thing to note, that a normal door is 128 wide,
which means that a distance of 600 corresponds to about 5
doors after each other (side by side). This means
that if you set the option:
Distance 600
Monsters will not be able to see sectors more than 600 away,
corresponding to a distance of 5 times the width of a door.
However the distance option will first start to work after
the first two sectors, meaning, that the monsters will
always have the opportunity to see you if you are no more than
2 sectors away. (That is if there is no wall blocking the LOS
in between)
|-----|-----|-----|-----|
| : : : |
| 1 : 2 : 3 : 4 |
| : : : |
|-----|-----|-----|-----|
<-----------> (the <--> shows the distance 1 to 4)
This marks the distance between sector 1 and 4.
note: It's always the minimum distance that counts.
A monster in sector 1 will always be able to see sectors 2 and 3
regardless of the distance used, but it will only be able to
see sector 4, if the shown distance is smaller than the number
given in the distance option.
5.4 EXC
Syntax: Exc <Sector1> <Sector2>
Exc makes it impossible for monsters in Sector1 to
see you if you are in Sector2. (This only affects a single
bit in the reject map)
Note: This option overrides ALL other options, and can be used to
make small modifications like "if you stand in this sector all
monsters in the surrounding room can't see you.
5.5 INC
Syntax: Inc <Sector1> <Sector2>
Inc makes possible for monsters in Sector1 to see you in Sector2,
no matter what all the other options say. This can be used to make
special effects like:
Blind a sector completely with BLIND 0.
Put a lot of monsters in the sector, and make a platform
in sight of the blinded sector.
now use the INC option to make the monsters able to see
the platform and nothing else. If it's difficult to see
from the platform to the blinded sector, the effect
will be that the player will be surprised when he is
suddenly attacked...
"I stepped onto the platform and took the key. There was no
sound of doors opening, so I was home free, but suddenly
the room was flying with fireballs... Where the <censored>
did those imps come from"
Note: This option overrides all other options except EXC.
5.6 INV BLIND
Syntax: Inv Blind <distance> <Sector list>
Where BLIND makes monsters near sighted or totally blind
INV BLIND makes monsters LONG sighted. This means that
a monster inside any of the sectors in the sector list
can only see sectors outside the distance. This means that where
BLIND 1 <sector list> makes the monsters inside one of the sectors
in the sector list unable to see anything but their own sector,
INV BLIND 1 <sectors>
will make them unable to see their own sectors, but now they
will be able to see all sectors further away from their own sector.
5.7 INV SAFE
Syntax: Inv Safe <distance> <Sector list>
(Please read the section about safe first)
Where safe means that when you are in a safe sector
the monsters has to get close to you to see you.
INV SAFE means that only monsters outside the <distance> range can see you.
As monsters will always try to move closer to you, the monsters will
disable themselves as long as you are in the INV SAFE sector!
5.8 LEFT
Syntax: Left <Line no>
This option makes a two sided line into a one way look through line
(for monsters). This means that if you have made a wall that is
one way look through (texture on one side but not on the other)
this option can help you make monsters respond logically to it.
A B C
|----|----|----|
| ^ ^ |
| #1 #2 |
| : : |
|----|----|----|
the '^' shows that the two-sided lines are pointing up
If line #1 has been made as a secret wall with a texture on
it's right side but not on the left side. It should be possible
to look through it only from the left to the right. This can be
made by
LEFT 1
5.9 LENGTH
Syntax: Length <Distance>
The length parameter makes an upper bound to the distance of
any LOS. Distance here means the number of 2s lines, that's crossed
when you look from one sector to the other. An option like
LENGTH 20
is often safe, but you should take great care if you want to set
it lower, as this could make monsters behave strangely.
(If you have set LENGTH 10 and created a stair with 10 steps
a monster at the top of the stair won't be able to see you at
the button)
NOTE: As this option affects ALL sectors care should be taken
when you use a distance below 20. In most cases use the
DISTANCE option instead of LENGTH!
5.10 LINE
Syntax: Line <Line no>
This option makes it impossible for monsters to see through a
two-sided line. This is good if you have a 2s line with texture
on both sides, so you can't see through it. Normally monsters
will look through ANY 2s line, but with this option you can
prevent them if you want.
5.11 NOMAP
Syntax: NoMap
This option makes the visual map of the level disappear.
Instead the number of the current sector being processed is
shown. At the same time one dot "." is typed every time it start
to process another sector immediately visible from the original sector.
|---|---|----|
| 1 : : |
|...: 2 : |
| : 5 |----|
|.......:....: 6 |
| 3 : 4 : |
|----|-------|----|
Here sectors 3, 4 and 5 are immediately visible from sector 1
through sector 2. Sector 6 is further away, and a dot is not
printed for it (to avoid too many dots).
A dot is printed every time a new yellow line would have been
drawn if the map was on.
(I call sector 2 a neighbour to sector 1, and neighbours are always
visible, so no processing is done on sector 2 when Sector one
is the current sector. Thats why I put dots for sectors 3, 4 and 5,
but not for sector 2)
It takes EXACTLY the same time to process a wad in the graphics
mode as it takes in the text mode.
When NOMAP is used you can start the program without
being in the same directory as RMB.
5.12 ONE
Syntax: One <Line no> <Line no>
Where BLOCK blocks both ways ONE blocks only one way.
This option is good in combination with one way look through
walls (the left/right options). If you know for a fact, that
there is a wall that blocks the LOS one way, so
that It's only possible to look through the two lines one way,
there is no need to make any extra calculations for the other
way. That's why a ONE way block is a good idea.
A B C D
|----|----|----|-----|
| ^ ^ : |
| #1 #2 #3 |
| : : : |
|----|----|----|-----|
Imagine that sector C is a lift sector, and line #1 can only be looked
through from right to left. Now we want to block the LOS between sectors
A and D, but since #1 is one way look through, we only need to block
one way:
RIGHT 1
ONE 3 1
The generated reject map is:
A B C D
A x
B x x x x
C x x x x
D x x x
'x' means that one sector can see the other.
Here A can't see B,C and D because line #1 is right to left
look through. D can't see A because of the one way block.
(If A were connected to more sectors to the left they wouldn't
be able to see B,C,D either, and D wouldn't be able to see them.
only B and C would be able to see everything).
5.13 PERFECT
Syntax: Perfect
When the perfect option is given, RMB will use more time
to find sectors, that can't see each other. Without the
perfect option all internal sectors
(Sectors lying totally inside another sectors)
will be able to see the same thing as the sector surrounding them.
(Sectors that has a 1s linedef in them can't be internal sectors.)
This means that without the perfect option internal sectors won't
be processed. This means that SAFE, BLIND, BLOCK and ONE options that
uses internal sectors, or lines adjacent to internal sectors won't
be processed correctly! (They won't be processed at all)
The good part about this is, that if you have a room with
some decoration (Chairs, ...) generated by internal sectors,
you can refer to all sectors in this room by using the sector number
of the surrounding sector (the room).
However if you have made a chair, and want the player
to be safe when standing on it, you have to use the 'Perfect' option.
(and of course the safe option for the sector).
Unfortunately the 'Perfect' option means that all sectors are
generated perfectly. There is no way you can specify that only
a part of the map should be perfect.
This might come in the next version, if I ever get around to that :-)
(The next version is out in two weeks as they say from ID soft :)
5.14 REPORT
Syntax: Report <Distance>
If the report option is used a file with the same name as
the WAD file but with '.RPT' extension is generated.
This file contains all pairs of sectors that can see each other
and lies at a distance greater than the given distance.
Using a REPORT factor greater than the LENGTH factor is waste
of time. It's a good idea to use the report with a distance equal
to the length factor like this.
LENGTH 18
REPORT 18
This will give you all pairs of sectors that lies at distance 18.
Often these sectors will be very far apart, and maybe the line of sight
is blocked by a lot of doors on the way. In that case maybe
It's an idea to make a BLOCK around the doors.
(normally It's impossible to open more than 3 doors before the
first door closes. This means that it's
normally safe to place a block around 4 doors
BLOCK <1st line of 1st door> <last line of 4th door>
maybe you can even make a block around two or three doors.
That depends on how fast the player can get to the next door
to open it.
However remember that monsters can open doors... :)
5.15 RIGHT
Syntax: Right <Line no>
Right makes a two sided line that can only be looked
through by monsters right to left. (See also left)
5.16 SAFE
Syntax: Safe <Distance> <Sector list>
Safe means that monsters has to get close to you to
see you while you are in one of the safe sectors.
If you use 'safe 0 <sectors>' they can't see you even
if they are in the same sector as you.
'safe 1 <Sectors>' means that monsters can only see you
if they are in your sector.
'safe 2 <Sectors>' means the monsters can only see you
if they are in a neighbouring sector or in your sector.
'safe <dist> <Sectors>' means that monsters can only see you
if they are closer than <dist>. (if the number of 2s lines
between you and them is less than (or equal to) dist-1).
---------------- 5.17 Combining Options ----------------
If you combine options like INV SAFE and SAFE
for the same sector different things can happen.
In this section all references will be to the following map:
|-----|-----|-----|-----|-----|-----|-----|-----|
| : : : : : : : |
| 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 |
| : : : : : : : |
|-----|-----|-----|-----|-----|-----|-----|-----|
(all numbers are sector numbers)
if the distance in INV SAFE is greater than the distance
in SAFE like:
Safe 2 1
Inv Safe 4 1
both sectors with a distance below 2 and a distance
above 4 can see sector 1.
(that is monsters in sectors 1,2,5,6,7 and 8 can see sector 1)
if the distance in INV SAFE is less than the distance
in SAFE like:
Safe 4 1
Inv Safe 2 1
only sectors with a distance above 2 and a distance
below 4 can see sector 1.
(that is monsters in sectors 3 and 4 can see sector 1)
For BLIND the same rules apply:
if the distance in INV BLIND is greater than the distance
in BLIND like:
Blind 2 1
Inv Blind 4 1
both sectors with a distance below 2 and a distance
above 4 can be seen from sector 1.
(that is a monster in sector 1 can see you if you are in
one of the sectors 1,2,5,6,7 or 8)
if the distance in INV BLIND is less than the distance
in BLIND like:
Blind 4 1
Inv Blind 2 1
only sectors with a distance above 2 and a distance
below 4 can be seen from sector 1.
(that is a monster in sector 1 can see you if you are in
one of the sectors 3 or 4)
----------------- 6. Multilevel wads ------------------
You have already seen in the previous sections how to handle
multilevel wads together with the inspect and effect utilities.
But what about the option file. Making a option like
LEFT 311
in the option file doesn't mean that you want this option
to work for all levels in a multilevel wad.
(line number 311 in one level has got nothing to do with
line number 311 in another level...)
To make options that only apply to a specific level you can
add lines of the form "EnMx" to the options file.
example:
# This is an example of a multilevel option file.
#
# The first lines are the default options.
# These options will be used if RMB is called without
# the EnMx parameter, or if there is no matching EnMx
# in the options file.
length 17
Distance 600
# Now comes the options used to process E1M1:
E1M1
# ^ This marks the end of the defaults, and the beginning
# of the options that apply to e1m1.
Length 17
Distance 800
Left 311
Right 217
E1M2
# ^ Here stops the options for episode 1 mission 1,
# and options for episode 1 mission 2 starts.
Length 14
Report 14
Block 23 56
# If RMB is called with a mission that is not in the options
# file e.g. "e1m3", the default options at the beginning of
# the file are used.
# Otherwise RMB will search the options file until
# it finds the correct EnMx, and then it will process
# the options until it meets the next EnMx, where it stops.
# Therefore it doesn't work if you write E1M2 (example)
# more than once in an options file. (at least whats after the
# second E1M2 will never be processed).
Remember that if you want the options after any EnMx to be processed
instead of the default options in the beginning, you must give
the EnMx parameter to RMB. e.g.
rmb c:\wadfiles\starwar2.wad c:\wadfiles\starwar2.wad e1m1
For wads containing only one level, you can just use the default options
without worry.
----------------- 7. Copyright notice ------------------
Copyright:
This program is totally free of charge.
The program may be freely distributed.
However the program or parts of it may NOT be used
for commercial purposes or be included in commercial packages.
(this includes shareware releases).
Other notes:
Doom is an Id software product, and is not free of charge.
All wads mentioned in this text are not mine, and all credit
for these wads should go to the respective authors
--------------- 8. Authors note ---------------------------
I am a 23 year old student at the university in Aarhus, Denmark.
Any speling mislakes and semantic other errors has been
introduced because of my lack of knowledge about the English
language 8^)
I use DEU5.21 and IDBSP for my own WADS.
It is a good thing to use a rule checker like the one in DEU5.21
before using this program!
Jens Hykkelbjerg
Email: hykkelbj@daimi.aau.dk