>Quake Handy Keys v 1.5<

Contents:
No, not yet. Prolly in next release.

1) INTRODUCTION

[1a]: Intro
 Hi. This is a bigger, bolder, more unruly version of my Quake Handy Keys
document.
 The purpose of this document and the accompanying files is to provide the 
world with a powerful and standard understanding of the ways the Quake Demo
works, and how to exploit the many possibilities to their fullest. This is a
new version of the document chock full of new stuff.
 Of course, my name also could use a little more recognition:).
 I must adimit, I'm not an "average" 3d game player. I am left handed, and 
in America at least, it's nearly impossible to get good quality computer 
prehepials designed for the lefty population, i.e. Mice and Joysticks('cept
for the Gravis PC GamePad, which I haven't been able to get to work on my
machine anyway). So, I've adapted a comfy keyboard configuration that's 
won me many games. Also, with the coming of Quake, I can now customize the 
keyboard beyond any other game I've seen so far. Realizing this, I've 
decided to share some of the things I've discovered and/or adapted to 
superiority. Please read on to find out some of the things I'm talking 
about.
-Matt Richter
 phaetonx@bluefin.net

[1b]: Some Acknowledgments
I must thank Lauri Alanko, for the Console Command List, and Steve Copeland
(aka Stevo) for his .cfg which contains many brand new commands and ideas,
like the Alias Toggle Technique, Cycle Technique, and Map mode. Also, Joost
Schuur for featuring this on Aftershock, a Quake Webzine.

[1c]: The Revision System
This document's Revisioning is based on the standard FAQ Revisioning system.
An update's version number after an update is based on what's changed.

An addition of a letter on the end means a minute bug that occured 
unbeknownst to the author has been fixed but is otherwise identical.

An increase of .1, and the dropping of a bug-warrenting letter means there
is a minor revision, such as grammatical changes and updates of lists etc.

Adding .5 is a standard revision. This means a new section or two has been
added, lists updated, and grammer fixed, and other expected changes occur.

Increasing by 1 means that many many many changes have occured, such as a
whole redual of the document.

[1d]: Revision History

Revision 1.0 : First Edition!

Revision 1.5 : Standard Revision. Restructured to a more "FAQ" Style format,
               Added intro, More Features, and all Section 2 info.	

2) USEFUL INFO

[2a]: How the Configs Work
 The way the key config system works is actually quite simple. You first 
create a personal configuration file. Then you put some commands into it
that the Quake Console will understand. The good thing with Quake is, multiple players can have configs in 
different files on the same computer. So if the main computer user was away,
someone else could get on and play, without all that mucking about in a 
setup program. Thus, it's like a batch file for Quake commands.

[2b]: The More Common Commands
 There are many commands you can use in Quake, but these ones are the most
helpful for editing keyboard commands.
 bind : This is the most important command. It is what tells Quake
what a key will do. For example, putting:
	bind u "echo This is a normal Key Binding"
in will make it so when the player types u, the console will say This is a
normal Key Binding. However, there are other things you can do with Key
Bindings then that. Observe:
	bind U "echo This is a Shifted Key Binding"
At first, you wouldn't think this is much different from the above example,
but actually there is. The U is capitalized, and Quake won't take it any 
other way. This brings up two issues:
 Keys CAN have multiple functions, given they are alphanumerics and may be
shifted.
 It's best to keep your Shift key clear of any functions that cause much
action to happen, like shooting or moving forward, so you can access these
shifted commands.
You can use these shifted commands to your advantage, to fit lots of 
commands onto the keyboard.
 alias : This creates a Command Alias. That means you can make it so
typing one command in will preform a whole ton of other commands. The best
part of this is, you can create "Toggle" buttons by making the alias call 
another alias that keyboard makes a batch command also change the alias that
originally called the current alias to call another alias. Whew. You may
want to read that sentance again, as it's nice and confusing-like. 

3) A FEW KEY COMMANDS

[3a]: The Config and it's many components.
The system I've worked out has lots of cross-referenced commands. So, I'm
pasting the commands/aliases section in and putting in comments. Here it is:

[3b]: The Config itself:

alias zoom_t zoom_on
alias zoom_on "alias zoom_t zoom_off ; fov 5 ; sizedown ; sizeup ; sensitivity 6 "
alias zoom_off "alias zoom_t zoom_on ; fov 20 ; sizedown ; sizeup ; sensitivity 9 "
//This is part of Stevo's original design of the map. I don't use it on a
//button, as I have my zoom on a Cycle Alias.

alias move_in map1
alias move_out map3
alias map1 " alias move_in map2 ; alias move_out map4 ; scr_ofsx -750 ; scr_ofsz 200 ; zoom_off "
alias map2 " alias move_in map3 ; alias move_out map1 ; scr_ofsx -2000 ; scr_ofsz 500 ; zoom_on "
alias map3 " alias move_in map4 ; alias move_out map2 ; scr_ofsx -750 ; scr_ofsz 200 ; zoom_on "
alias map4 " alias move_in map1 ; alias move_out map3 ; scr_ofsx -2000 ; scr_ofsz 500 ; zoom_off "alias xray_t xray_on
//This is another part of the Map. It's bound to the map when the Map Mode
//Toggle is hit.

alias normal_zoom " fov 20 ; sizedown ; sizeup ; alias zoomin_cycle zi_1 ; alias zoomout_cycle zo_1 "
//This is a part of my own design, the Zoom Settings. Hitting w in normal
//mode sets the player's FOV variable(the Field Of View) to the standard
//setting, which is 20.

alias zoomin_cycle zi_1
alias zi_1 " alias zoomout_cycle zo_4 ; fov 15 ; sizedown ; sizeup ; alias zoomin_cycle zi_2 "
//This part of the routine first resets the Zoom Out cycle to normal so it 
//doesn't zoom straight back to the factor you had before. This way, when 
//the zoomout button is hit, the zoom is set to normal first, to make the 
//keys feel more professional.
alias zi_2 " fov 10 ; sizedown ; sizeup ; alias zoomin_cycle zi_3 "
alias zi_3 " fov 5  ; sizedown ; sizeup ; alias zoomin_cycle zi_4 "
alias zi_4 " fov 20 ; sizedown ; sizeup ; alias zoomin_cycle zi_1 "
//This is another part of the Zoom Setting Function. This is the Zoom In
//cycle, which sets the alias to the next factor in the zoom.

alias zoomout_cycle zo_1
alias zo_1 " alias zoomin_cycle zi_4 ; fov 40 ; sizedown ; sizeup ; alias zoomout_cycle zo_2 "
alias zo_2 " fov 60 ; sizedown ; sizeup ; alias zoomout_cycle zo_3 "
alias zo_3 " fov 80 ; sizedown ; sizeup ; alias zoomout_cycle zo_4 "
alias zo_4 " fov 20 ; sizedown ; sizeup ; alias zoomout_cycle zo_1 "
//This is the complete opposite of the aforementioned zoom keys. Kinda.

alias map_t mapon
alias mapon  " viewsize 100 ; scr_ofsx -2000 ; scr_ofsz 500 ; mouse1 move_in ; mouse3 xray_t ; mouse2 move_out ; +mlook ; alias map_t mapoff "
alias mapoff " viewsize 50 ; scr_ofsx 0 ; scr_ofsz 0 ; scr_ofsy 0 ; mouse1 +attack ; mouse2 +mlook; -mlook ; alias map_t mapon ; zoom_off ; "
//This is the map toggle. It sets the screen offset to something far off, 
//and changes your mouse to automatically Freelook.

alias xray_t xray_on          
alias xray_on  "alias xray_t xray_off ; r_draworder 1 ; echo Xray on "
alias xray_off "alias xray_t xray_on ; r_draworder 0 ; echo Xray off "
//This is the Xray mode toggle. I would set this to one of the Function keys
//if I were you.

alias enhanced_imaging1 eh1_on
alias eh1_on  "alias enhanced_imaging1 eh1_off ; r_drawflat 1 ; d_adrawflat 1 ; echo FlatTex "
alias eh1_off "alias enhanced_imaging1 eh1_on ; r_drawflat 0 ; d_adrawflat 0 ; echo FlatTex Off "
//This is the Flat Tex mode toggle. Set this on a Function key too. 

alias enhanced_imaging2 eh2_on
alias eh2_on  "alias enhanced_imaging2 eh2_off ; d_adrawflat 1 ; r_showpolys 1 ; echo Polyseams "
alias eh2_off "alias enhanced_imaging2 eh2_on ; d_adrawflat 0 ; r_showpolys 0 ; echo Polyseams Off "
//This is the polyseams toggle. Function Key it. 


alias gamma_correct g1
alias g1 " alias gamma_correct g2 ; gamma .9 "
alias g2 " alias gamma_correct g3 ; gamma .8 "
alias g3 " alias gamma_correct g4 ; gamma .7 "
alias g4 " alias gamma_correct g5 ; gamma .6 "
alias g5 " alias gamma_correct g6 ; gamma .5 "
alias g6 " alias gamma_correct g1 ; gamma 1  "
//This is my Gamma Correction cycle. I'd put it on F11, as that's where it 
//is in all Doom Engine games.

alias help " echo Changed keys are: ; ?1 "
alias ?1  " echo F2: Xray toggle echo ; ?2 " 
alias ?2  " echo F3: FlatTex toggle ; ?3 " 
alias ?3  " echo F4: Polyseam toggle ; ?4 " 
alias ?4  " echo f/g: Dodge combos ; ?5 "
alias ?5  " echo e: Zoom in ; ?6 " 
alias ?6  " echo q: Zoom out ; ?7 "
alias ?7  " echo w: Normal Zoom ; ?8 " 
alias ?8  " echo Tab: 3d Map ; ?9 " 
alias ?9  " echo Enter: Deathmatch Score List ; ?10 " 
alias ?10 " echo F11: Quick Gamma Correction ; ?11 "
alias ?11 " echo Thanx for downloading! ; ?12 " 
alias ?12 " echo -Matt Richter "
//This is just a help list. Typing help makes it display a list. It is only
//fully readable when the console is the only window in view.

bind K_F2 xray_t
bind K_F3 enhanced_imaging1
bind K_F4 enhanced_imaging2
bind f "+jump;+attack;+moveleft;-attack;-moveleft"
bind g "+jump;+attack;+moveright;-attack;-moveright"
bind e "zoomin_cycle"
bind w "normal_zoom ; alias zoomin_cycle zi_1 ; alias zoomout_cycle zo_1 "
bind q "zoomout_cycle"
bind K_F11 "gamma_correct"
bind K_TAB "map_t"
bind K_ENTER +showscores
bind K_ALT +attack
bind K_CTRL +strafe
mouse1 +attack
mouse2 +mlook
//These are just personal prefferances. You can easilly change them, too.


4) OUTRO

Well, I hope that this tides you guys over until someone puts out a level
editor. I'll continue to update this as more info becomes availible, and I
get suggestions etc.

Until then, Quake On!
-Matt Richter
 phaetonx@bluefin.net