              **************************************************
              *       MakeMAP v0.26 - Quake Level Editor       *
              **************************************************
              *              (c) by Lars Bensmann              *
              **************************************************
              * http://localhost.ruhr.de/~b-man/makebrush.html *
              **************************************************

IMPORTANT:
  Unzip with '-d' or move all .PCX-files in a directory called 'graphics'.

Note:
  This README is probably very confusing, not detailed enough and whatever.
  I just wrote this in a hurry and added some stuff for each new version.
  So some of the information may already be outdated, but I don't feel like
  writing a complete documentation yet, because there are so many things
  that will probably change in future versions.

You need at least 8 MB for MakeMAP to run. If it complains about not
enough memory, reduce your harddisk cache or something. To run in 640x480
you need at least 6300 kB free memory above 1 MB. To use the 1024x768
resolution you need at least 6800kB.

This is the current version of MakeMAP. It's still in heavy development,
but if you're interested you can try it out.

It is a GUI I wrote around my util Makebrush. It handles all the vertex
stuff and leaves the actual converting to the plane format of the MAP
files to the code from Makebrush.

You can start it by typing:

  mm [option]

        -6  select 640x480
        -8  select 800x600

MakeMAP will start in a 1024x768 resolution as default (unless you use one
of the above options of course).

Theoretically it is possible to create a MAP file with it, although you
have to add all entities by hand. Another pretty bad thing is that it 
doesn't keep track of all the textures yet (just one per brush), so some 
more advanced levels will look pretty weird after importing and then
saving them with MakeMAP.
As I said, the whole thing is far from ready.

The most important thing is the F1 key. This will describe every key
that has a function in MakeMAP.

MakeMap has a XY (left top window), XZ (right top window), 
YZ (left bottom window) and hopefully soon a 3d view (right bottom window).

Every window has it's own mouse cursor that will show the currently
selected position by the mouse. The curser is moved with the mouse or
for more precise positioning with the arrow keys (use Ctrl+arrow or 
Alt+Arrow for different speeds). The active cursor is colored grey (and
is pretty hard to find on the screen :-(, but I will fix this)

To change the active mouse cursor you can just move into the window you
want or press Tab (or Shift Tab) to cycle through the cursors without
changing the positions of the cursors.

MakeMap always hilights the vertex that is closest to the 3D-mouse cursor.
So if you are wondering why the cursor is on top of a vertex, but a differnet
one is highlighted, look in the other windows as well and change the cursor
position there. The one exception is the 3d-view. As you will notice, you
don't move the 3d-cursor anymore, just the cross representing the mouse,
the vertex that is closest to the mouse cursor is highlighted.

You can add vertexes by hitting the INSERT key. To select a 
highlighted vertex just use SPACE (or the left mouse button). To select 
a whole brush, highlight a vertex and hit ENTER or the middle mouse button
(several times to cycle through all the brushes your highlighted point is 
part of).
To create a new brush, select all the vertexes and hit 'b'. To add a
vertex to a brush, select a brush (with ENTER, just selecting all vertexes
doesn't do the job yet), highlight the vertex to be added and type 'a'.
Removing a vertex from a brush is done the exact same way, but type
'r' instead. (Note: Removing a vertex doesn't delete the vertex itself, it
just isn't part of the brush anymore. The same is true for deleting. Deleting
a brush, doesn't remove it's vertexes. And you cannot delete vertexes that
are still part of a brush. If you want to remove a brush including all the
vertexes, just hit DEL twice. Once to remove the brush. After this all of
the vertexes will still be selected, and so hit DEL  again to delete the 
vertexes.) If you want to unselect all vertexes at once just hit ESC.
The right mouse button has the combined function of removing a vertex from
a brush (if the highlighted vertex is part of the selected brush) and
adding a vertex to a brush (well, if the vertex is not part of the brush).

There is now an option to create aligned cubes, cubes, planes and rooms
easily. Just press 'm' to get into the Makebrush menu.

Unlike Makebrush, the aligned cube, cube and plane function will just
generate the vertexes of the object. You can then choose to either create
a brush out of them or to generate a room.

To create an aligned cube you need to select two vertexes. MakeMAP will
then generate the missing 6 points to generate a cube.

The cube function works similar to the one ine Makebrush. You have to
select four points that will be next to each other on the final cube.
Then highlight the already selected vertex that is in the center of
the given vertexes. That might sound confusing, but is actually rather
easy.
   
   A             B  This demonstrates this in just two dimensions. To
    *-----------*   generate this cube, you would have to select the
    |           |   vertexes A, B, and C. Then move the cursor next to
    |           |   point A to highlight it and select the cube function.
    *-----------+   Actually this is a rather stupid example, because you
   C             D  can rather use the aligned cube mode for this simple
                    model. To do this, just select vertexes A and D. That's
it! No highlighting whatsoever.

The plane mode will just translate any number of points along a certain
vector. Select as much points as you like (at least three) and select the
plane function. You will then be prompted for a vector to translate copies
of the vertexes.

The room mode is pretty handy as well, but still has several severe problems.
It will produce the best results when used with vertexes generated by the
above functions. Just select all the vertexes you wish to be the inner
box of your room, now enter the thickness for the walls (a negative number
will let the selected vertexes be the outside of the room) and you are done.
Unfortunately if you try to generate a room with 'hand edited' vertexes
you might encounter problems. If you want four points to form a wall of the
room and these points aren't exactly on one plane, two triangle faces have
to be generated. So if all your points are not that precise a simple
cube would have 12 brushes instead of six. Somehow most if these objects will
screw up if they are loaded into MakeMAP again :-(. I guess I will need
to fix this.

I also added the possibility to limit the displayed vertexes and brushes.
ust hit 'l' in the view and enter the distance around the cursor position that
should be displayed. A negative number will display the vertexes in front
and behind the current cursor position and a positiv number will just
draw those behind the cursor.
The display doesn't update in realtime. So if you move the cursor, just
use 'd' to refresh the display for the current cursor position.

And no, you cannot move vertexes around yet, just remove the vertex and
add a new one at the position you want.

Once you moved the active cursor into the 3d-view, you can feel yourself
at home and move just like in Quake. Use the arrow keys to move around,
Alt+left or right to strafe and Page Up/Down to look down/up. The keys
Home and End will higher or lower you point of view and Backspace will
do a 180 degree turn. Unfortunately this is slow as hell, but I will try
to fix this in a future version. Oh, BTW, the yellow rectangle that can
be seen in the 2d-windows is your current position in the 3d-view. You can
also jump to a certain point in space by hitting 'j'. This will put the
viewpoint at the coordinates of the 3d-cursor. If you are currently in the
3d window the 'j' key will center your current position in the three
3d windows.

The 3d-view won't allow you to add or move vertexes. Use the 2d-windows 
instead. If someone comes up with a method to position anything precisely
in a 3d-view window, don't hesitate to tell me how.

I know this version is still an alpha, but someone on
rec.games.computer.quake.editing complained about noone releasing anything,
so here is my current version.

Currently I'm not interested in bug reports. Just note one thing: If you
shouldn't be able to move the cursor anymore, then type 'mode co80' blindly
and you will probably be back at the nice DOS-Prompt. This is most likely
to happen while loading and saving, because this is handled by the code I
added from Makebrush and it will exit if there is a wrong brush
(not enough points, all points on one plane etc.) You can read the file
ERROR that is generated by MakeMAP and it will tell you what happened.
So, save often and to different filenames or all your work will be lost if
an error occures while saving to your original filename.
And please be patient while loading a big MAP file (like JRBASE1.MAP, this
one takes around one minute on my 486DX4-100, don't ask about my 486DX-33 :-).

What I would be interested in is you opinion on the highlighting and selecting
method used. Is it understandable how to move the cursor in the three
dimensions?

Comments and suggestions to: Lars@b-man.ruhr.de
