Luola
http://www.saunalahti.fi/~laakkon1/linux/luola/index.php
---------------------------------------------------------------

Luola is a simple yet addictive arcade game where you fly a little V-shaped ship inside caverns and try
to blow up other players.
It is inspired by V-Wing, an old finnish caveflying game (it was my favourite).
Many of luola's weapons are basicly copied from vwing and you can even use the old V-Wing levels !
(You need to convert the level into a pcx first. See LEVELFILE for more information)

Installation
--------------------------------------------------------------
See INSTALL for generic installation instructions.
But most of the time, you just do this:
./configure
make
make install

By default, sounds are compiled in. If you do not want to compile sounds in,
use --disable-sounds.
If you have SDL_gfx installed, by default, luola uses it for some drawing options.
If you don't wan't luola to use SDL_gfx, pass configure --disable-sdl-gfx
Luola can use Truetype fonts if you have SDL_ttf installed.
If you don't want to enabled truetype support, pass configure --disable-ttf
If compilation fails complaining something about gettext, try configuring with
--with-included-gettext . If this doesn't work, try --disable-nls

make install puts the actual game binary in /usr/local/bin and
the data files to /usr/local/share/luola/
If you don't want to install the game, just play it straight out the src/ directory,
edit the config.h (after running configure) and remove or comment the "#define PACKAGE_DATA_DIR" line

Using joysticks
---------------------------------------------------------------
To use joysticks, you must have joystick support in your kernel.
(Note: Kernel version 2.4.10 had some problems with joysticks, upgrading to 2.4.16 fixed it)
Read some HOWTOs on the subject and joystick.txt under the Documentation/input directory on your
kernel sources.
To use two joysticks on an Y-cable load the 'analog' driver like this:
insmod analog js=y-pad
USB joysticks are also pretty good. (Basicly you need the hid driver and joydev + their dependencies)
Since of luola 1.0.0, analog stick type joysticks are no longer supported.
(Well you CAN use them, but it's just really difficult ;)

Some usage notes
----------------------------------------------------------------

Screenshots:
 You can take a screenshot anytime by pressing F11. (that is, if you WM doesn't trap that key)
 The screenshot will be named luola_*.bmp .
 The * is the number of ticks that has elapsed since luola was started. This way, you can take multiple
 screenshots and keep them in chronological order.

Fullscreen:
 To enter fullscreen mode, run luola with the --fullscreen parameter.
 You can change the fullscreen mode to be the default mode by changing the #define FULLSCREEN from 0 to 1
 in the 'defines.h' file.
 If luola runs in fullscreen mode by default and you want to run it in windowed mode, use the --window paremeter.
 You can also switch between fullscreen and windowed mode by pressing F12 any time in the game.
 See the FAQ if you can't get fullscreen mode to work under Linux.

Playing the game:

 * Players control their ships with the keys previously selected in key configuration. (the defaults can be changed in game.c)
 * Pressing esc ends the level
 * The level ends when there is only one ship remaining or the last surviving ship has landed on a base
 * Pressing Weapon1 and downkey at the same time ejects the pilot. The pilot can also be ejected when the ship is dead (gray) by pressing Weapon2
 * You can return to your empty ship by walking over it. You can also take over empty enemy ships this way...
 * When on a base, hold down downkey and press left/right to switch special weapons
   (Note that when switching weapons, you lose the ammo you have. Water can't turn to missiles, right ? ;)

Playmodes:
 * Normal - This is the normal playmode, nothing special
 * Start outside ships - Otherwise the same as normal, but pilots start outside their ships
 * Start outside ships-1 - like above, but one unlucky player has no ship...

Pilot controls:

 * Move with left and right keys.
 * Shoot with Weapon1 key
 * Weapon2 key opens the parachute or cuts the rope
 * Jump with the up key. While jumping, pressing the up key again shoots the rope in a 45 degree angle.
 * While on the rope, weapon2 drops you free. You can sling back and forth and climb up and down with the arrow keys
 * Shoot the rope straight up with downkey
 * You can lock the pilot controls by pressing down Weapon2 key. When locked, the pilot does not move, so you can aim
   your gun. When locked, the pilot does not automaticly aim at enemies
 * You can kick another player out of his/hers ship by first attaching the ninja rope to it, getting as close as possible
   and then pressing down+Weap1
 * If Ship Recall is enabled, you can teleport your ship back to you by pressing button2 while standing on a base.
   If your ship is destroyed, a new one will be created. If someone else has boarded your ship, it cannot be recalled.

Team play:
  Team play is just like normal game with 4 players, except that some rules are enforced by the game itself.
  The difference is that you don't attack your team-mates (you can, but it's stupid) and the game ends when the
  either of the teams is completely destroyed.
  These are the weapons related specials that apply to team-play:
   * Homing missile only targets enemy team-members
   * Helicopters and infantry won't attack team-mates

Game end modes:
  A level can end in two different ways.
  It can end immediately after all opponents have been destroyed, or after last surviving player has landed on a base.
  If the level does not have any bases, the level ends immediately when only one player is left (or one team in case of teamplay)

Configuration file:
  The configuration file contains the player key confs and game settings.
  You should not need to modify it by hand (you can if you really want to, but be careful,
  incorrect data can crash the game !)
  See the Tweaking section for more information on configuration files

Function keys:

  * F11 anytime, takes a screenshot.
  * F12 anytime, switches between fullscreen and windowed mode.
  * F1 during gameplay, toggle radar.
  * Pause key during gameplay, pauses/resumes the game

Levels
------------------------------------------------------------------------------

Download the level packs from the luola homepage.
The level pack contains descriptions of the levels.

Level specials
-------------------------------------------------------------------------------

  Jump gates:
    Jump-gates provide permanent wormholes between two or more points in the level.
    They activate when a player flies over them.
    You can set the number of jump-gates per level from the level settings screen.

  Turrets:
    These are automatic turrets that fire at everybody.
    There are three types of turrets.
    1. A normal turret, has an ordinary cannon.
    2. Grenade launcher, fires grenade shells
    3. SAM-Site, fires homing missiles (these have their own sprite)

    You can change the number of turrets from the level settings screen.

  Critters:
    Unlike other level specials, these don't do anything, except walk (or fly or swim)
    around and get killed.
    (Note. Technically, infantry and helicopters are also critters, so some critters actually do something)
    You can enable/disable critters from the level settings screen.
    You can also set the number of different critter species. (Including infantry and helicopters)

Tweaking
---------------------------------------------

These tweaks are done by editing the source/header files themselves. They are quite
simple, and you don't need any programming ability.

Take a look at defines.h . You can find all sorts of settings there.
For example, you can change wheter or not luola starts in fullscreenmode by default or the names of the configuration
or playlist files.

Here are the most important things you might want to take a look at:
You change these by commenting (put // in the beginning of the line) or uncommenting (remove the //) them.
Or if they define a value, change the value (do NOT comment those lines !)

#define HIRES_PROJ		This enables the pixel perfect collision checking for projectiles. Disabling this might make the
				game a bit faster, but projectiles will fly straight thru thin walls.
#define	DONT_UPDATE_DEAD	Comment this line out so the screens of dead players continue to get updated.
#define VWING_STYLE_SMOKE	Make the ship exhaust V-Wing style. Try it and see which you like better
#define HEARINGRANGE ???.0	How far away can you hear things.
#define MAX_WIND_TIME	???	How long can a wind last before it changes direction.
Then there are bunch of speeds. These are rather self explanatory.

#define SNOWFLAKE_INTERVAL	???	How often are new snowflakes created (smaller number means more often)
#define DIVIDINGMINE_INTERVAL	???	How fast do dividingmines divide.

After that there is the projectile and particle cache. This is rather interesting as it can substantially
speed up the game at the expense of memory.
Normally when you shoot something, memory is allocated for the projectile and when the bullet hits
something it is freed. This is pretty CPU cycle consuming, so instead of allocating and deleting the
memory all the time, destroyed projectiles are stored in a cache and reused when needed.
You can disable the cache alltogether by commenting out the cache entry count definitions.

Beyond this are things that you should not touch if you don't know what you are doing.

Configuration files are located in ~/.luola/ directory.
You can also put a custom fonts.cfg file into the .luola directory.
The file there will override the common one in the fonts directory
The directory has also a levels/ subdirectory. You can put your personal levels
there.

