You are on page 1of 14

Title : Navy SEALs sQuad bots (upgrade of Navy SEALs 2.

0)
Filename : sqdbt201.zip
Version : 2.0.1
Date : 12/12/97
Author : William van der Sterren
Email : sterren@iae.nl
Credits : id software,
for releasing Quake as a modifiable environment
Minh Le (gooseman@smartt.com)
for starting off Navy SEALs, and
for high quality weapons, models and animations
Roscoe A. Sincero (legion@keg.zymurgy.org)
for a large part of the bot movement code
(Norse_movetogoal package v0.32, slightly modified)
Alan Kivlin (alan.kivlin@cybersurf.co.uk)
for bot rankings code
Skullhunter (ChantaclairRose@prodigy.net)
for additional weapons and models

DnV, Blackhorse,
for publicity and testing
AssLord, Skullhunter, Spidergecko
for testing

Build time: over 100 hours ...


(I probably spend too much time testing :) )

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

Important: This modification requires (in the same directory) the Navy SEALs
2.0 modification, (because of its models, sounds and maps).
This modification replaces and upgrades the Navy SEALs 2.0 progs.dat. This
modification add squadbots to Navy SEALs 2.0 and fixes minor weapon selection
problems.

If you are impressed by the monsters models and - animations, and by the
weapon models, please take a look at the credits again; that wasn't my work.

Format of QuakeC (if a Quake C Mod)


-----------------------------------
unified diff : no
context diff : no
.qc files : no
progs.dat : yes

Description of the Modification


-------------------------------
This Navy SEALs sQuad bots modification confronts you with a team
of up to four opponent bots, which operate in a (more) intelligent,
realistic, and coordinated fashion than current Quake monsters and
most other bots. This modification aims to enhance your "single player"
Quake with more realism and replayability.
Navy SEALs sQuad bots do not passively wait for you to eliminate them,
nor do they forget to pursuit you when you try to run. These sQuad bots
come to help their team mates if you try to attack one of them. These
sQuad bots enter formations and try to stay within supporting distance
of each other. These sQuad bots move out of each other lines of fire,
if "asked" by their team mates.
Navy SEALs sQuad bots fully use the professional animations and sounds,
created by Minh Le and friends, to sit down and fire, to reload, and to roll.

Navy SEALs sQuad bots have NOT been designed with ordinary deathmatch in mind.
Most real life soldiers and terrorists do not wait near the red armor
spawn location, do not dive into slime to obtain the quad damage
power-up, and do not learn to circle strafe. Nor do these Navy SEALs
sQuad bots.

Other limitations, specific for this version (and hopefully removed in


future versions):
- the Navy SEALs sQuad bots currently are limited to operate on map e1m1
("The Slipgate Complex"), and on new maps especially designed for these
sQuad bots.
- the Navy SEALs sQuad bots currently are limited to one team only (thus
four bots at maximum).
- crashes in GLQuake due to some .mdl files that cannot be "meshed"
by GLQuake. Look for a patch including new .mdl files at the Navy SEALs
home page (http://www.planetquake.com/qca/goose). This problem is
a property of both the original and this release of Navy SEALs 2.0.

Below, more detailed information is provided to help you:


- changes wrt the previous versions
- install the patch,
- to use the required "impulses",
- to use the bots
- to use the menu
- to use different game modes

Even more information is given if you are having troubles or if


you are very curious about the bots:
- known bugs and problems
- "frequently asked" questions and answers
- sQuad bot implementation information (may spoil game)
- author info

Have fun,

William

New to version 2.0.1


------------------
Version 2.0.1 differs from version Navy SEALs 2.0 (Dec 4, 1997) and
squad bot 1.3 (Dec 8, 1997) as follows:
* Navy SEAL differences:
- fixes minor problems with weapon cycling/selection, weapon pickup
and player respawn
- fixes minor problems with obituary messages
* squad bot differences:
- mk23 armed bots now use realistic 12 bullet clips (instead of the
previous 20 bullet clip)
- includes Navy SEALs 2.0 animations and weapons; new death sequences
have not yet been used
- bot menu (via impulse 99) is now unavailable in standard
deathmatch and coop modes to prevent cheating in multiplayer
games
- bots cannot be spawned in standard multiplayer games
- rewrote menu for weapon issueing (when using bots). Now, weapons
are presented in front of you, and you have about 3 seconds to
fetch them. You will not be give a weapon you already have.
- bots use MP5SD and flashbang grenades against you. Bots do not
hear the differences between the MP5 and MP5SD you use (actually,
they don't hear at all) and their vision is not by flashbangs.
However, they run from your flashbang grenades.
New to version 1.3
------------------
Version 1.3 differs from version 1.2 (Dec 1, 1997) as follows:
- rewritten bot connect/disconnect and setting of models, to solve
(a) the "invisible" bot problem a few users had, and (b) to
solve the inconsistent "frags" mentioned in the frag list.
- the bot squad sometimes to decides to wait for you (ambush) instead of
running towards you (that was all to easy :) ).
- use some different respawn positions (one of the old position gave
problems)
- correct version info (v1.2 said "1.1")
- some textual clarifications in this readme file
- minor tweaks to AI and animations
New to version 1.2
------------------
Version 1.2 differs from version 1.1 (Nov 31, 1997) as follows:
- fixed important bug that assigned team number 0 to bots regardless
the team value of the player; if player had default pants, thus
team 0, bots wouldn't attack him.
New to version 1.1
------------------
Version 1.1 differs from version 1.0 (Nov 20, 1997) as follows:
- bots may now use MP5 machine gun and "guard.mdl" animations;
- normally a squad consists of up to 4 bots, randomly selected from
pistol - and machinegun armed models. The player may customize
squad composition using the "squad settings..." menu, then
option 5.
- bots now use a running number of frags (it was reset to zero
after a bot was killed in v1.0).
- a full squad is inserted within one second (instead of taking
up to 10 seconds).
- debug settings is now option 6 in "squad settings" menu, instead
of option 5.
- minor tweaks to bot AI and animations.
- minor tweaks to this text file.
- squadbot.cfg file now includes "coop 0".

How to install the patch


------------------------

step 1. Make sure you installed Navy SEALs 2.0 (INCLUDING the so-called
multiplayer update, available on the news page - until the news
page mentions an single zip file).

step 2. Extract the progs.dat, squadbot.cfg, and sqdbot20.txt (this file)


into the directory where you installed Navy SEALs. Answer yes,
if required, to overwrite the existing progs.dat file.

Impulses
------------------------
This patch requires keys 1, 2, 3, 4, 5, 6 and key 9 to be bound
to "impulse 1", ..., "impulse 6" and "impulse 9" respectively. If you
don't understand what I mean, don't worry: default Quake settings
meet this requirement.

This patch adds one new impulse command to the Navy SEALs impulses:
- impulse 99,
shows main menu. Choose options 1...6, or choose 9 to exit menu,
or ignore menu (will disappear in 10 seconds or so).
As long as the menu is screen and you didn't choose one of the
options, you won't be able to use impulse 1..6 to select weapons
(they select menu options instead).
As soon as the menu disappears, or a menu action has been executed
(providing you with a reassuring click sound, and a message on screen,
starting with "menu:" to confirm your choice).
If you choose an option leading to another menu (those menu options
end with "...", you won't be able to select weapons using keys 1...6
until you chose a menu action).
This may sound awkward, but it works fine.

I'll repeat the standard Navy SEALs impulses for you convenience
(see Navy SEALs text files for more info):
- impulse 100,
will reload the guns (except for shotgun which reloads automatically).
- impulse 101,
will fire the grenade launcher (you must have the M-16 to do this).
- impulse 102/103,
will zoom in/out with the PSG-1 (this only works in regular Quake).
- impulse 104
will toggle crouch mode.
- impulse 105
will toggle between MP5/MP5SD single shot / burst rate controlled
/ fully automatic modes. (You must have the MP5/MP5SD in your hands to
toggle this setting).
- impulse 200
will toggle between flash-bang grenades and fragmentation grenades.

To use the bots


------------------------
To use the bots (and select the most appropriate game mode), please
do the following:

Fire up Quake using (at least) the following command line options:
quake.exe -game navyseal -listen 5 -exec squadbot.cfg
(you can use glquake.exe, winquake.exe, etc. as well - use glquake
after obtaining the new .mdl patch from the Navy SEALs home page, when
available).

You'll arrive near the exit of the Slipgate Complex, without seeing
the standard powerups. Now pull the console down and type:
impulse 99

The menu appears. Just press "1" and a squad of 4 bots will be inserted
(somewhere in the level). You may wait for them to come, or go find them.
Have fun.

The squadbot.cfg file you just used (to start up the game in this mode)
contains the following lines:
coop 0
skill 3
deathmatch 89
teamplay 1
map e1m1

You can edit the "skill" and "deathmatch" values in this file to
suit your own preferences.

Do not change the teamplay mode. "Teamplay 1" sets the bots to be immune
for friendly fire. Yes, I know, that's not very realistic, but I still
am troubled by a bug that tells the bots they won't hit teammates while do
hit they mates.

Do not try to use some other map. "map e1m1" starts map "The Slipgate Complex",
the only map currently supported.

Do not remove "coop 0". Coop 1 mode does not allow bots, because it
is reserved for multiplayer purposes.

Skill sets the bots aiming precision; skill 0 is minimal precision,


skill 5 is maximal precision. This does not affect their grenade aiming
precision (which cannot be adjusted).

The deathmatch value reflects the various game modes. See that section
below.

By the way, (commercial plug on), I suggest you use the QuakeOn/QTray tools
(http://quakeon.stomped.com) to manage the various Quake configurations.
They proved essential to me in managing the different games modes I
needed to test. (commercial plug off)

To use the menu


------------------------
Because I hate to remember and program a lot of impulses (I used a lot
of them during testing), and because I saw the elegant menu solution in
the TeamFortress patch, I added menus to the sQuad bot patch.

As stated above, use impulse 99 to display the main menu. And choose
options 1...6, or choose 9 to exit menu. Every choice you make is
confirmed with a nice click, and you'll be given either a new (sub)menu
or confirmation of your choice.

You are able to automate frequently used menu interactions. For


example,
bind "," "impulse 99; wait; impulse 4; wait; impulse 6; wait; impulse 5"
toggles the bot targeting the player in fraction of a second, without
showing you the 3 menus.

Below, you can find a brief explanation of the menus (in a tree format):

1. Insert sQuad
[action] inserts a squad of bots, if there is no squad active.
if you choose "auto respawn" in the mission settings,
you have to insert a squad only once.

2. Mission settings...
[submenu]
1. Infiltrate start to exit
[action] has player start near start of level, and bots
come to the start of level. Takes effect after
restart mission.

2. Infiltrate exit to start


[action] has player start near exit of level, and bots
come to the exit of level. Takes effect after
restart mission.

3. Toggle sQuad bots auto respawn


[action] toggles whether the squad automatically respawns
after all its members got killed. The console shows
the new setting. Takes effect immediately.

4. Toggle item availability


[action] toggles whether powerups, weapons, ammo etc.
is present on this level. If item availability
is toggled to "no", items are removed immediately.
To have items available again, toggle to "yes"
and restart game.

5. <not implemented>
[action] whatever the label says, it does not do anything
except for exiting the menu.

6. Restart mission
[action] restarts mission, so new mission settings can take
effect. Similar to typing "restart" at the console.

Note: these mission settings are recorded as different values


for the deathmatch console variable. By looking at the
deathmatch value that corresponds to your favorite
mission settings (type "deathmatch<enter>" at the console)
and using this setting in your squadbot.cfg file,
the game will automatically start using these settings.

3. Weapon settings...
[submenu]
1. Close Range Weapons
[submenu]
1. H&K MP5
[action] spawns the H&K MP5 weapon in front of the
player,

2. H&K MP5SD
[action] spawns the H&K MP5SD weapon in front of the
player,

3. Mossberg shotgun
[action] spawns the Mossberg shotgun in front of the
player,

4. Assault shotgun
[action] spawns the assault shotgun in front of the
player,

2. Other Range Weapons


[submenu]
1. Colt M16-A2
[action] spawns the Colt M16-A2 weapon in front of
the player

2. Colt M16-A2+RAW
[action] spawns the Colt M16-A2+RAW weapon in front of
the player. No clip for normal M16 operation
provided.

3. PSG1 sniper rifle


[action] spawns the PSG1 sniper rifle in front of
the player.

4. Barrett M-82 sniper rifle


[action] spawns the Barrett M-82 sniper rifle in
front of the player.

5. M60 machine gun


[action] spawns the M60 machine gun in front of the
player.

Note, to receive a weapon, there must be plenty of free space


in front of you. You cannot receive a weapon you already have.
You have only 3 seconds to pick up the weapon. If you do
not pick up the weapon, it will disappear and you have to
try again.

A bug in Navy SEALs 2.0 tends to mess up your weaponry arsenal


if you obtain the Barrett. You'll loose your Mk23 for sure.
But hey, you wanted to be sniper!

4. Squad settings...
[submenu]
1. Set sQuad size to 1 member
[action] sets squad size to 1 member only. Takes
effect when a new squad is inserted / respawns.
2. Set sQuad size to 2 member
[action] sets squad size to 1 member only. Takes
effect when a new squad is inserted / respawns.
3. Set sQuad size to 3 member
[action] sets squad size to 1 member only. Takes
effect when a new squad is inserted / respawns.
4. Set sQuad size to 4 member
[action] sets squad size to 1 member only. Takes
effect when a new squad is inserted / respawns.
5. Toggle sQuad composition
[action] toggles squad composition from "mixed" (both
machinegun armed and handgun armed guys) to
"handgun armed guys" to "machinegun armed guys".
Default, after startup is "mixed". "handgun armed"
is probably the easiest setting.
6. Squad debug settings...
[submenu]
1. Toggle team state info
[action] no info :)
2. Toggle member state info
[action] no info :)
3. Toggle waypoint visibility
[action] no info :)
4. Display current states of members and team
[action] no info :)
5. Toggle bots targeting player
[action] useful to observe the wonderful
animations and sometimes cool behavior
of the bot

Note: I don't think these squad settings are useful for


the normal player. However, if you come across some
annoying bugs and want to provide me addition info,
you can use these settings to isolate and document
the problem.
And if you like to know what's happening in the minds
of the bots, you're welcome as well. However, it may spoil
the game :).

5. Remove powerups/items
[action] removes items, powerups and weapons from this level. Please
use the "Mission Settings...", "Toggle item availability" to
have the items removed by default.
I consider the availability of red armor, medikits, etc.
(combined with the effortless picking up of this stuff) a bit
unrealistic. If Navy SEALs really were to pick up all this stuff,
they probably have a shopping cart as part of their basic
arsenal.

6. About / credits...
[info] our attempt to become rich and famous (yeah, right).
Credits to the people that devoted a significant part
of their ideas and time to a Quake patch you get for free.

9. Exit menu
[action] exits menu, allowing you to use your weapon selection keys.

Navy SEALs sQuad bots game modes


------------------------
As said above, the mission settings are recorded in the deathmatch
console variable. Here is an overview of the different modes and
values:

no items auto respawn start-to-exit exit-to-start


deathmatch -------- ------------ ------------- -------------
8 = X
9 = X
24 = X X
25 = X X
72 = X X
73 = X x
88 = X X X
89 = X X X
Other values may result in strange behavior. Coop == 1, and normal
deathmatch values are reserved for multiplayer (network) play and
do not allow bots nor the extra menu.
I prefer to use values 88 and 89.

Known bugs and problems


------------------------
The following bugs and problems have not been resolved before releasing
this patch. (I consider these problems minor compared to the fun this
patch may already provide you).

Navy SEALs
- GLQuake crashes when running Navy SEALs 2.0 (problems with meshing
a number of the new models for weapons)
- selecting the Barrett sniper rifle looses the MK23 handgun (probably
a bitfield overflow)
- obituary messages for players killed by handgrenades mention
any weapon but a handgrenade
squad bots
- frag counter does display inconsistent values
- bots sometimes get stuck in each other in the elevator near start
- bots sometimes have trouble coming out of the water/slime
- bots sometimes display really bad strafing behavior
- bots sometimes hit teammates

The latter bug is very annoying to me, as I programmed to bots to


check for teammates in their lines of fire. It probably has something
to do with the difference between bounding boxes and real size of
the model.

"Frequently asked" question and answers


---------------------------------------
* What's the idea behind these squad bots?

I developed squad bots because I wasn't challenged by all


those "super bosses", thus monsters becoming more dangerous
because they'd have heavier weapons and armor. (Of course,
I'm still afraid of Doom's Cyberdemon, but that's a different
story).
As soon as I learned about bots (December '96), I set out
to develop "lightweight" bots that are dangerous because of
their cooperation and "brains".
In the second half of '97, I came across Gooseman's high
quality animations, which allowed the bots to appear more
realistic. Also the more realistic use of weapons in
Navy SEALs attracted me. Gooseman generously provided
me the sources and his support.

* Why are these bots limited to map e1m1 (The Slipgate Complex)?

These bots need waypoint information to efficiently move


across a level. The waypoint information also tells them some
important issues of the level (good places to go into formation
again, places to blindly run through a door, etc.).
It is quite a lot of work to add waypoint information for
a specific level. In addition, a number of levels is just not
suitable for a cooperating squad of bots. (They didn't learn about
lava environments and moon-like gravity in their basic training).

The squad bots operate most effectively in urban environments


(houses, windows, doors, some stairs, not that much water,
no small ledges, etc.).
For newly created maps, a Worldcraft definition of waypoint
entities is available. Send me an email, and I'll be happy to
send you the Worldcraft .fgd file and additional explanation.

* Why are do these bots suck in normal deathmatch?

These bots have not been designed for normal deathmatch. Use
the Zeus-, Reaper- or Omicron bot for that. But please don't expect the
Zeus-, Reaper- or Omicron bot to work together, reload their gun or
keep close to their teammates.

* Why don't these bots use secret passages in e1m1?

It was hard for me to have the bots operate efficiently in close


hallways (for example, near the pillar in the main building). That's why
I didn't inserted waypoints for these locations.
So, use it to your advantage!

* If I use the sniper rifle, or M60, the bots are as dangerous


as Hexen II sheep!

First of all, try skill = 5. (Type skill 5 on the command line)


and try again. These bots won't shoot that bad anymore.

I consider it realistic that the bots, armed with a pistol


or light machinegun, only effective at short ranges, don't stand a
chance against your sniper rifle or M60.
I do think it is unrealistic that you are able run around
at high speeds with your M60 and shoot without being pushed back
or loosing aiming precision.
I may do something about latter cause when I have some
time available.

* I have this COOL idea about adding cruise missiles, two hundred
Nazi's, HUMV vehicles, speech recognition, twin Vulcan
machine guns, and mine hunting dolphins. You MUST add that
to your patch!

Please consider my situation. I do have a day job, a lovely girl


friend, friends, and other hobbies. I started working on these
cooperating bots because I liked the combination of Quake,
programming some "AI", 3D environments and a realistic combat
simulation. Because I have received support from various
people in the Quake community, I could come up with this patch.
I publish this patch as a "thank you" to these people and
to enable other people enjoy this.
I don't publish this patch to have other people tell me what
to do. I don't work on this patch to do the programming other
people don't like to do themselves.

However, I do love to receive any ideas, and feedback,


especially for the bot AI. And, as long as I have the time,
I love to cooperate with other people committed to
getting their concepts to work. (Hi there, Gooseman and
Skullhunter!).
My focus is (and will be) programming bot AI.

By the way, isn't your idea a bit over the top?

* These bots, are they very specific for Navy SEALs?

Only partially - reloading, grenade throwing/detection, sitting,


rolling and the animations are specific for Navy SEALs. The AI
could be useful in many more patches. Why are you asking?

* What about QuakeWorld support?

This patch does not support Quakeworld environments.

However, if you could explain to me what is required to


support QuakeWorld (both technically, and in terms of effort),
I might consider working on QW support.

* What about these bots and Quake2?

Porting these bots to Quake2 (actually, redesigning the bots


and then putting the into Quake2) is definitely on my mind.
Whether that'll be in a Navy SEALs context, or some other
context, I don't know.

About the Navy SEALs sQuad bot implementation


---------------------------------------------
Each bot is implemented as a so-called state machine; at
every moment in time, the bot is exactly in one single state,
and that state determines how the bot reacts to his environment.

To illustrate the state machine idea, the bots can have the
following states:
- wait, reload, patrol, hunt stuff, hunt enemy, strafe,
defend, attack, pain, die, assemble, position, guard, run to
help, spread, check, run for cover, ambush

Let me explain a bit about these states:


The states assemble, position and guard are used to have
the bots enter a specific formation. If a bot has to enter
a formation, he changes to state "assemble". In that state,
the bot runs to the assembly area, using waypoints.
Also specific for that state, the bots ignore a.o. all nice
stuff that could be picked up, but still look for enemies
and incoming grenades.
As soon as the bot arrives at the assembly location, the
team determines the exact location for the bot to go to.
He does so in state "position", which means he walks to the
specific position, now ignoring waypoints. Again the bot is
ignoring stuff.
Finally, when the bot arrives at his position, he will stay
there until the whole team is assembled, or a time out occurs.
While at his position, he is in state "guard", and checks
his surroundings.

Note that neither state machines (well known as FSM-s or


Finite State Machines) nor this bot implementation are very
new or special.
The interesting bit in the "squad bots" is added by a team
coordination entity: the squad! ("team" has less in common
with "quake" than "squad" has, that's why it is called "squad").

To coordinate a squad of bots (and to process the communication


between the bots), the squad entity is created. Again,
this entity is a state machine, and has at least the following
states:
- create team, uncoordinated team, assembly team, spread out
team

Depending on actions, observations and states from the squad


bots, the squad entity itself changes state, and instructs the squad
bots.
For example, if a bot arrives at location suitable for
a re-formation of all the bots in the squad, it notifies
the squad itself. The squad entity determines if the bots
should enter formation (again), and decides which bots apply
to enter formation with a certain time span.

Similarly, if a bot detects an enemy, he will signal his


squad (state-of-art radio equipment), which is to decide
if and who is to help him. The squad will take care of
coordination of lines of fire.

Special behavior also applies when an enemy has gone out of


sight, or when entering a building.

While writing about 100 pages (A4) of squad bots code,


I made the following observations about Quake bot AI:
- we already know bot movement is hard (Nelno has written
an interesting article about that, see PlanetQuake);
I think bot formation movement is just as complex
(having bots keep a certain distance to other bots,
negotiate about lines of fire, negotiate who is to
trigger buttons, when to use which formation). At least,
the QuakeC code I wrote for this is complex.
I personally look forward to see Half-Life's
"flock" type of formation AI for the monsters.

- though the current Quake monster AI is bad (all those


monsters just waiting by themselves for you to come
kill them), adding AI similar to the squad bots AI would
not make it that much better:
- level design/monster balancing becomes more complex,
because monsters act (more) autonomously; it is
hard to ensure the player has both a fair chance
and a challenge to finish/survive a level
- much of the inter-monster coordination is not visible
to the player; in the case of squad bots, all their
formation code (keeping them together), is more or
less hidden for the player. You won't see these bots
use formations when they kill you.

- bot AI becomes more interesting to a player if bots are


cooperating with the player. I didn't feel emotionally attached
to my squad bots, except for some moment when they completely surprised
me (the catwalk near the exit allows them to move in
ways I didn't expect). However, playing Scourge of
Armagon, or better: Soldier of Fortune, where you receive
support from cooperating monsters (bots),
made me feel responsible for those monsters (bots). That's
the way to go. It seems Ion Storm's Daikatana (sp?)
is also promising in that aspect.

The squad bots can operate in coop mode with the player;
I strongly encourage map designers to take advantage of
that. I'm also glad to assist in providing any "scripted"
behavior for such levels. Just think about situations where
both the player and the bots have different but interdependent
goals in a level.

- I haven't seen many really intelligent bots. For me,


intelligence has something to do with learning. There are
only a couple of bots available that really learn while
they play - think of Reaper, Zeus and now Omicron. Frankly, my
squad bots should not be considered intelligent - they
don't learn while playing, nor do they employ "strategies".
(Since v1.3, they do sometimes decide to ambush instead of
attack).
However, these bots do employ tactics, and communicate which
makes them challenging to play (at least, for me).

About the author


----------------
William is a bloke of about 28 years, living in the Netherlands,
with a background in computer sciences.

William did not previously publish any other Quake modifications.


He started working on this patch as early as December 1996.
He is interested in continuing this bot AI programming for Quake II.

Copyright and Distribution Permissions


--------------------------------------
The modifications included in this archive are Copyright 1997,
William van der Sterren (unless specified otherwise -
see credits).

The original QuakeC source is Copyright 1996, id software.

This modification may be electronically distributed only if


all the files in this archive remain intact and unmodified
and are distributed together, AND if this modification is
distributed at NO CHARGE to the recipient.
This modification cannot be used or modified in any way without
written permission from the author.

I would also like to request any who reviews this patch


to kindly inform me that they have done so. Thanks:)

Availability
------------
See http://www.planetquake.com/qca/goose

You might also like