Title    : Rotating Walls (brushes)
Filename : rwalls01.zip
Version  : 0.1
Date     : 21/11/96
Author   : Ben Lehman
Email    : lehman@world.net
Build time: 1 day (yeh, right)

Type of Mod
-----------
Quake C    : yes
Sound      : no
MDL        : no
Brush type : yes  

Format of QuakeC (if a Quake C Mod)
-----------------------------------
unified diff  : no
context diff  : no
.qc files     : yes
progs.dat     : yes


Description of the Modification
-------------------------------

id Software have said several times that "Quake cannot do rotating
brushes - wait for Quake 2".

Well that's not really true. Quake can in fact do rotating
brushes, in much the same way as it rotates any other object.
However these rotating structures are limited.

Limitations:
	There are three main limitations due to the Quake engine 
	itself (I think):
	* a rotating brush can cause problems with the texture
	  mapping of other brushes in view of the player. You
	  can see the problem in the example map if you put
	  the resolution high enough. While this does not disrupt
	  gameplay, it doesnt look all that good. QuakeLab has 
	  called this the Hall Of Mirrors effect (after a similar
	  problem in Doom). If anyone knows a fix please mail me.
	* the bounding box of a rotating brush does not rotate
	  with that brush.
	* if the bounding box of a rotating brush is not in the
	  players view, then the brush will disapear. This is 
	  logical if you think about it.

How to Install the Modification
-------------------------------

Install the progs.dat as per usual. To insert an rotating wall into 
your map, follow these steps:

	1. make an entity of classname "rotating_wall";
	2. the rotation handle of this entity is (0,0,0), but it may 
	   be placed anywhere in the map. For example, if you want
	   the brush to be rotated about it's center, then make the
	   center of the brush at (0,0,0). However, if you wanted a
	   brush to rotate about its edge, then put the edge at 
	   (0,0,0). Note that you can put multipule brushes on top of
	   each other at (0,0,0) without a problem. Also make sure
	   there is some light at (0,0,0) because this is where the
	   brushes are lit from.
	3. to define where the brush will appear in your map, the
	   entity has r_wall_x, r_wall_y and r_wall_z parameters.
	   Just set these to where you want your brush (but make sure
	   to leave the brush at it's rotation handle). If these are
	   omitted, the brush will appear at its rotation handle.
	   (Tip - if your using WorldCraft, the x, y and zcoords are
	   in the status bar).
	4. to set the brush spinning, the entity has r_wall_x_spin,
	   r_wall_y_spin and r_wall_z_spin. Each of these detail how
	   fast it spins in each given plane. These parameters default
	   to 0.

Below is an example of the entity code:
{
"classname" "rotating_wall"
"r_wall_x" "544"
"r_wall_y" "96"
"r_wall_z" "64"
"r_wall_x_spin" "40"
"r_wall_y_spin" "50"
"r_wall_z_spin" "20"
	{
		[insert brush info here]
	}
}

Thats it. Remember, it will only work with the modified progs.dat.


Technical Details
-----------------

See the qc files (quite simple really).


Author Information
------------------

I play quake, I write web pages, I do law - In that order.


Copyright and Distribution Permissions
--------------------------------------

The modifications included in this archive are Copyright 1996, Ben Lehman.
The original QuakeC source is Copyright 1996, id software.

Actura Software cannot do anything with these files.

Authors MAY use these modifications as a basis for other NON COMMERCIAL
works provided that the original author, Ben Lehman, is given express
credit.

Authors MAY NOT use these modifications as a basis for other COMMERCIALLY
available work without express permission from the original author, Ben
Lehman. Permission may be given on terms.

You may distribute this Quake modification in any electronic format as long 
as all the files in this archive remain intact and unmodified and are 
distributed together.