home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Doom 2 Explosion
/
Doom2Explosion.bin
/
doom2exp
/
programs
/
rmb10
/
manual.txt
< prev
next >
Wrap
Text File
|
1994-07-11
|
24KB
|
695 lines
-------------- USERS MANUAL (Beta version) -----------
My English is not that good, so if you feel
like writing a better manual please contact me.
(hykkelbj@daimi.aau.dk)
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, 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 -----------
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". that's all there is to it...
> rmb c:\wadfiles\starwar1.wad
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 EnMx"
where EnMx gives the episode and mission number.
> rmb c:\wadfiles\starwar2.wad e1m2
(to process episode 1 mission 2 in starwar2.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.
-------- 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.
(some wad editors will gladly remove them 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 ---------------
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 '.OPT'
RMB will automatically detect the .OPT file, and process it.
That is if the WAD is called MYLEVEL.WAD the option file would be
MYLEVEL.OPT
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 <Sector> <Distance>
LINE <Line no>
LEFT <Line no>
RIGHT <Line no>
BLOCK <Line no> <Line no>
ONE <Line no> <Line no>
SAFE <Sector> <Distance>
INV SAFE <Sector> <Distance>
INV BLIND <Sector> <Distance>
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 the same WAD builder.
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.
* INV BLIND Specifies that monsters can only see outside the distance.
* INV SAFE Monsters can't see this sector 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.
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 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 <Sector> <dist>
The blind option makes the monsters in a sector 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. In this example we will use the option
BLIND 4 3
That means that monsters in sector 4 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 4 3' means, that
a monster in sector 4 can see sectors 2,3,4,5 and 6 but not
sectors 1, 7 and 8
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 you 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.
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 INV BLIND
Syntax: Inv Blind <Sector> <dist>
Where BLIND makes monsters near sighted or totally blind
INV BLIND makes monsters LONG sighted. This means that
a monster inside the sector in question can only see
sectors outside the distance. This means that where
BLIND <sector> 1 makes the monster unable to see anything
but it's own sector, INV BLIND <sector> 1 will make it unable to
see it's own sector, but now it will be able to see all sectors
further away.
5.5 INV SAFE
Syntax: Inv Safe <Sector> <dist>
(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 move closer to you, the monsters will
disable themselves as long as you are in the INV SAFE sector!
5.6 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.7 LENGTH
Syntax: Length <Distance>
The length parameter makes an upper bound to the distance of
any LOS. As there is an upper bound on the number of
two sided lines DOOM can look through (version 1.2 lower).
It should be safe to use
LENGTH 17
You should take great care if you want to set it any 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 17.
5.8 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.9 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.10 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.
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 :-)
5.11 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 a distance
greater than the DOOM engine can deal with. 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.
Also remember that monsters can open doors...)
5.12 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.13 SAFE
Syntax: Safe <Sector> <Distance>
Safe means that monsters has to get close to you to
see you while you are in the safe sector.
If you use 'safe <sector> 0' they can't see you even
if they are in the same sector as you.
'safe <sector> 1' means that monsters can only see you
if they are in your sector.
'safe <sector> 2' means the monsters can only see you
if they are in a neighbouring sector or in your sector.
'safe <sector> <dist>' means that monsters can only see you
if they are closer than <dist>
---------------- 5.14 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 1 2
Inv Safe 1 4
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 1 4
Inv Safe 1 2
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 1 2
Inv Blind 1 4
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 1 4
Inv Blind 1 2
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 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