==================================================================
Mbuild v0.3 -- David Langeliers -- Copyright(c)1996
(e-mail:  dave@hidesert.com)
(WWW:     http://www.hidesert.com/user/dave)
==================================================================

1. What Is Mbuild
2. Mbuild Language Reference
3. Example levels
4. Verion 0.4
5. Author Info

--------------------------------
1. What Is Mbuild

Mbuild is a program for creating .MAP files for Quake.
It reads .MPB files, which are similar to POV-Ray files.
In version 0.3, Mbuild only supports 6 sided brushes, box's.
.MPB files are made up of shapes and tags, shapes actually
define the brushes in Quake(walls, floors, bridges, etc..)
while tags change the current texture, rotation, and slope.
Tags are also used to place objects in the level, such as
monsters and weapons.
Remember that external .MAP files don't work with
Quake Shareware v1.0 and above. You can find instructions
for compiling MAP files at:
http://www.hidesert.com/user/dave

--------------------------------
2. Mbuild Language Reference

The only shape supported so far is the box. Here is the syntax:

box {
<x1, y1, z1>, <x2, y2, z2>
}

The first point is left, down, and near. The second is right, up, and far.
This means that x1 < x2 & y1 < y2 & z1 < z2. If not, your map will not
compile correctly with QBSP.

There are many tags in Mbuild, they all consist
of a colon(:), 2 letters, and n number of fields
depending on the tag.

:wd path_to_wad
path_to_wad is the path to your texture wad file.
NOTE-use backslashes(/), not forwardslashes(\)

:ms message_for_level
message_for_level is the message that is displayed when entering your level.
NOTE-The :wd and :ms tags MUST be before any brushes in the file.

:tx texture_name
Sets the current texture to texture_name

:xm x_mult
All X values beyond this tag will be multiplied by x_mult.
This is useful if you create your level on a scale of 0 to 1.
Also you can change this tag many times in the file to scale
certain objects.
The default x_mult is 128, this means that a X value of 1
would be converted to 128 in the map file.

:ym y_mult
All Z values beyond this tag will be multiplied by y_mult.

:zm z_mult
All Z values beyond this tag will be multiplied by z_mult.

:zr z_angle
This rotates all the brushes beyond this tag by z_angle.
NOTE-I haven't added :xr and :yr, but they should be in 0.4

:xc x_change
Moves the top of all brushes beyond this tag x_change along the X axis.
This can be used for making slopes.
The tag :xc 128 would slide the top of the brush 128, this would
make a slope, the steepness of the slope would depend on the
height of the brush.

:yc y_change
Moves the top of all brushes beyond this tag y_change along the Y axis.

:ob object_name x y z ang [light_value]
Places object_name at point <x, y, z> with the angle ang.
The light_value field depends on the object name. If the
name starts with 'light', then the light_value specifies
the brightness of the light.
NOTE-Put all your objects at the END of the file.
All the objects must be after all the shapes!

--------------------------------
3. Example levels

I have included 5 example levels with package.
BOX.MPB - a simple box level
WBOX.MPB - simple box, half filled with water.
RBOX.MPB - simple box, water, and a rotated platform.
SBOX.MPB - simple box, water, and a slope.
QK102.MPB - A small deathmatch level built using Mbuild.

There are also a few text files included to help you with
certain aspects of building levels.
BRUSHES.TXT
WATER.TXT
OBJECTS.TXT

--------------------------------
4. Verion 0.4

I am hoping to implement the following into v0.4
+Function brushes(doors, teleporters, platforms, etc..)
+X and Y rotation
+Cylinders
+Spheres
+Pyramid's
+Multiple point, noshape, brushes
+MAP to MPB

--------------------------------
5. Author Info

My name is David Langeliers, and I'm 16.
You may have used Wuake, that was mine.
I listen to classic rock. I like to windsurf,
play DooM/Quake, and program. I live in
Palmdale, California.
-Dave (dave@hidesert.com)

--------------------------------
July 22, 1996, 12:50am :)
