Quake

In order to run Quake on the simulator and/or device, you must:

	1) Configure the Sources
        2) Build
	3) Install
	4) Run
	5) Uninstall Quake (this step is optional)

Configure the Sources
---------------------

Edit src/com/android/quake/QuakeActivity.java to configure where and how Quake will obtain its data files. The
configuration variables are:

    private final static boolean USE_INTERNAL_FLASH = false;
    private final static boolean USE_DOWNLOADER = false;

This means that by default Quake will look for its files on the SD Card, and it will not
attempt to download the files from an external web server. (Use the ./setupdevicesdcard.sh script,
described below, to copy the data files from the Android source tree onto the device's SD Card.)

Note that if USE_DOWNLOADER is set to true then you need to configure a web server to serve the Quake
data files, and the FILE_CONFIG_URL variable needs to be set to point to the configuration file on
the web server. Read the source for DownloaderActivity.java to figure out how to do this.

Building Quake
--------------

Quake and libQuake are built by default, as part of the standard Android build.
If for some reason you would like to build Quake manually, you can do so by
using the mm command:

$ cd $TOP/apps/Quake
$ mm


Installing Quake
----------------

Quake is not installed by default. To install Quake you need to copy the Quake executable
files and data files to the device.

Quake needs about 20 MB of space to store its data files. Quake files go on an external
micro SD card (This is /sdcard/data/quake directory).

Using the device with a microsd card:

	Turn on phone, plug into your development PC/Mac using the supplied ADB cable.
	cd $TOP/apps/Quake
	adb remount
	adb install $OUT/system/app/Quake.apk

Make sure your device is not mounted as an USB Storage Device:
    Press Home button on Phone
    Press Menu
    Select "SD card & phone storage
    Make sure "Use for USB storage" is unchecked.

Then install the Quake data files by executing this script:

	./setupdevice.sh

(Or if you've set QuakeActivity.USE_INTERNAL_FLASH to false, then use this script instead:)

	./setupdevicesdcard.sh

Using the emulator:

	You can use Quake with the emulator, but you have to create and mount an sdcard image.
	(Doing that is beyond the scope of this document.)
	Once you've started the emulator with a sdcard image you can follow the directions for
	a real device.


Running Quake
-------------

Turn on the device

Look for Quake in the Activities folder. Launch it as you would any other activity.
It will take up to thirty seconds to start running.

When Quake starts running it will display a console with some debug information, then
go into an "attract mode" loop.

Starting a game:

Press space bar to bring up the main menu.
The "Quake icon" should be next to the "Single Player" menu item. Press the
"Enter" button twice to start the game.

Controls:

The Quake controls are customizable, depending upon the settings of config.cfg,
but the defaults are:

Android     PC Key    Command          Notes
Keypad
----------  --------- ---------------  ----------------------------------
Alt Space   TAB       +showscores      Shows scores in multiplayer games
DPad Enter  ENTER     +jump
Menu        ESCAPE    togglemenu       Shows/hides menu
space       SPACE     +jump
+           +         sizeup           Increases size of screen
,           ,         +moveleft	       Strafe left
-           -         sizedown
.           .         +moveright       Strafe right
/           /         impulse 10       Toggle weapons up
0           0         impulse 0        
1           1         impulse 1        Select weapon 1 (axe)
2           2         impulse 2        Select weapon 2 (shotgun)
3           3         impulse 3        Double-barrled shotgun
4           4         impulse 4        Nailgun
5           5         impulse 5        Super nailgun
6           6         impulse 6        Grenade launcher
7           7         impulse 7        Rocket Launcher
8           8         impulse 8        Thunderbolt
=           =         sizeup
\           \         +mlook           Mouse look. (Not very useful, as there is no mouse.)
Alt w       `         toggleconsole    Used to enter fancy commands.
w           w         +forward
s           s         +back
a           a         +left
d           d         +right
q           q         +lookup
z           z         +lookdown
v           v         +movedown
f           f         +moveup
t           t         messagemode
DPad Up     UPARROW   +forward
DPad Down   DOWNARROW +back
DPad Left   LEFTARROW +left
DPad Right  RIGHTARROW+right
Alt         ALT       +strafe
@ or /      CTRL      +attack
Cap         SHIFT     +speed
Alt 1       F1        help              (This is just an advertisement in the shareware version.)
Alt 2       F2        menu_save
Alt 3       F3        menu_load
Alt 4       F4        menu_options
Alt 5       F5        menu_multiplayer
Alt 6       F6        echo Quicksaving...; wait; save quick
Alt 9       F9        echo Quickloading...; wait; load quick
Alt 0       F10       quit
Alt t       F11       zoom_in
Alt y       F12       screenshot
<none>      INS       +klook
<none>      DEL       +lookdown
<none>      PGDN      +lookup
<none>      END       centerview
<none>      MOUSE1    +attack
<none>      MOUSE2    +forward
<none>      MOUSE3    +mlook
Alt z       PAUSE     pause
Camera      HOME      ...not bound by default...
-----

Console Commands:

timedemo demo#  run time demo # (1..3)
god 	        turns on god mode
fly 	        enables fly mode
kill 	        commits suicide
notarget 	enemies don't attack until provoked
noclip 	    walk through walls
give s # 	gives # (where # = a number) of shotgun shells
give n # 	gives # of nails
give r # 	gives # of rockets/grenades
give c # 	gives # of cells
give h # 	gives # of health
give # 	    gives weapon #
map e#m# 	warps to the episode and mission specified
impulse -1 	quad cheat
impulse 9 	all weapons and keys
impulse 255 	quad cheat


 
Uninstalling Quake
------------------

Quake has to be uninstalled in two parts:
    a) the Quake.apk file
    b) the data files on the sdcard

Use the Phone UI to uninstall the Quake apk:

    Press Home Key
    Press Menu Key
    Select Settings
    Select Applications
    Selct Manage Applications
    Select Quake
    Press "Uninstall"

Make sure your device is not mounted as an USB Storage Device:
    Press Home button on Phone
    Press Menu
    Select "SD card & phone storage
    Make sure "Use for USB storage" is unchecked

Then run this script to delete the Quake files on the sdcard:

    cd $TOP/apps/Quake
    ./cleanupdevicesdcard.sh