The func_movewall is one of the most accurate ways to simulate collision on a rotating entity in Quake. Unfortunately they are nowhere near perfect and can be fiddly to set up.

The idea is to approximate the collision hull of a rotate_object with a number of smaller solid brushes. None of the brushes rotate, but they “orbit” the rotate_object as it rotates, keeping them in place relative to their target. Each of these brushes is a single func_movewall. This means creating a rotating object and accurately simulating collision on it can use a large number of entities.

spawnflag 1=bit#1 is VISIBLE. While func_movewalls were designed for invisible collision, sometimes an entity orbiting in a circular pattern without rotating is just what you want, like a crankshaft in a set of gears. Set this flag to make the func_movewall visible. This flag is also useful for debugging func_movewalls.

spawnflag 2=bit#2 is TOUCH. This means that the func_movewall will cause damage when touched by the player, not just when blocked. Note that you can give just some of a group of func_movewalls this flag, perhaps if your rotate_object has dangerous spikes on one side.

spawnflag 3=bit#4 is NONBLOCKING. This means the func_movewall doesn’t have collision, which really only makes sense if you turn on VISIBLE at the same time.

targetname must be set to match the target of the func_rotate_entityfunc_rotate_door or func_rotate_train which is controlling the rotating object.

dmg sets how much damage to inflict when blocked (or touched if TOUCH spawnflag is on). If not set, the func_movewall uses the dmg value on the controlling entity e.g. the func_rotate_train the movewall belongs to.

<-Back to the tutorial


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.