---=== DEACC & REACC ===--- This is a set of utilities allowing you to decompile and recompile the QuakeC programs included into the game Quake, from ID Software. See how they programmed Quake behaviors. Included examples : guided missiles following monsters, pipebombs like in Duke Nukem that only explode at your keypress, and more. These utilities allow you to change or add almost anything to monsters, items, etc, etc, etc... They require you to expand your pak0.pak file. To do this, see utilities like SWUNPACK. DEACC and REACC work with the file "progs.dat", found in the root of the expanded pak file. * DEACC * Syntax : DEACC Decompiles progs.dat. It will write a whole bunch of files with the extension .qc into the current directory. These are NOT ID's original files, don't ask anything to ID about them. They only contains what can be reconstituted from the progs.dat file. Anyway, they are very complete, and include function names, global variables names, and even local variables names. progs.dat is generous of such information. Sorry for the purists, but the result isn't C. It's some strange mixture of Pascal and C... But it IS very close to C, and shouldn't be difficult to understand. * REACC * Syntax : REACC Recompiles .qc files. It takes all the .qc files of the current directory and compile them back into a progs.dat file. Make changes in the original .qc files, then compile them back with this tool, and try them with Quake. Don't forget to do a backup of your original progs.dat file before replacing it with a file produced by REACC. Note that the compiled progs.dat file is smaller than the original, thanks to the more compact code produced and better string-redundancy checking. Screen comments are in french... I hope this won't be a too big problem, as they are not very important. * Patches * .qc files are compiled in alphabetical order, and if a function appears twice, it is only compiled the first time. This means that you can make "patch" .qc files replacing a few of the original functions, as long as the filename is before the original filename in alphabetical order. I suggest naming patch files with a leading "$". A few examples are included, named $*.QR. To try one of them, change its extension to .qc and run REACC. Here is a description of them : - $GUIDMIS : your missiles have auto-sensors and follow monsters. Very useful ! - $PIPBOMB : grenades don't explode automatically any more, but only when you issue the "impulse 12" command. You can bind this command to a new key, like *, by adding the following line to your autoexec.cfg : bind * "impulse 12" - $BREATH : a "Breath-out-to-go-back" moving method to use with low- or zero-gravity levels : without gravity, you can't walk any more, but with this patch, you can "breath", which will push you backward. A strange type of movement... Try this in deathmatch... To "breath", you also have to issue the "impulse 12" command (see above). This Means you can't try simultaneously $PIPBOMB and $BREATH (I think this would require too many keys anyway). --- NO WARRANTIES. This software is provided "as is". Use at your own risk. The author cannot be held responsible for any damage, neither direct nor indirect, caused to your computer or its data. Author : Armin Rigo, armin.rigo@p22.gnothi.fn.alphanet.ch Any comment / bug report is welcome.