KBall
-----

Some design notes about the game

By Kronoman
Copyright (c) 2004, Kronoman
In loving memory of my father

Document started 14/01/2004 (D/M/Y)

Levels
------

The levels are stored inside a directory named "levels" under the directory where the game's executable is.
There is two kind of levels, single levels, and level campaigns.

Single level
------------

Is a single level, named [filename].map ; must be done using the built-in level editor.

Level campaign
--------------

Is a Allegro grabber datafile, named [filename].fmp, that contains many single levels as objects ; must be named in numbers, like "1_MAP", "2_MAP", etc.
Each level name is a number+"_MAP" ([n]_MAP), like '1_MAP', '2_MAP', etc.
The program will load them in sequence starting at '1_MAP', and will end when it don't found the next level (thus, the campaign is over, and you win).

Datafiles
---------

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
[sprites.dat]

Has all data about standard sprites of the game, sounds, fonts and miscellaneous images that appear during the game.

Must have the following objects:
BALL -- ball sprite, is a texture of 64x64 that will be mapped to a ball
BALL_MASK_SHADOW -- ball shadow sprite, to be blitted with 50% blend over mapped sphere to give shadowed look
GAME_SCORE_FONT -- this font is used to write the score on screen during game, and also, the prizes remaining; MUST contain letters, is also used to display messages on screen.
GAME_TIME_FONT -- this font is used to write the time on screen during game
GAME_MESSAGES_FONT -- this font is used to write special messages on screen like 'PAUSE', 'WON THE LEVEL', 'LOST A BALL', etc.

GAME_OVER_BMP -- bitmap to show when game over.
GAME_OVER_WAV -- wav to play when game over
WON_BMP -- bitmap to show when player won the campaign game.
WON_WAV -- wav to play when player won campaign game.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
[gui.dat]

Has all the data about GUI (fonts, menu backgrounds, music, etc)

MENU_FONT_BIG -- font big for menus
MENU_FONT_MEDIUM -- font medium for menus
MENU_FONT_SMALL -- font small for menus
MENU_BMP_BACKGROUND -- bitmap for menu background

ABOUT_BACKGROUND -- bitmap for about background.
ABOUT_TEXT -- text object with text to display on about dialog.
ABOUT_BACK_SOUND -- sound that will loop in background of about dialog.

MENU_MUSIC_XM -- music for menu, must be a XM type object, a XM music file.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
[tileset.dat]

Has the tile set used in the map (walls, floors, etc)
TILE_SET_CFG_TXT -- This is a text object, with the configuration of each tile of the tilset. This object is *mandatory*
Also, you must include all objects referenced in TILE_SET_CFG_TXT (bitmaps, sounds, etc)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
[backgr.dat]

Has all the backgrounds for game levels.
Can be up to 256 backgrounds, 0..255.
The name of each bitmap object must be:
B[0...255]_BMP --> in example: B0_BMP, B1_BMP...B255_BMP
Each bitmap must be tileable, so it looks OK in the background.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[music_l.dat]

Has all the music for the game levels.
Can be up to 256 music tones, 0..255.
The name for each music object must be:
M[0..255]_XM --> in example : M0_XM, M1_XM, M2_XM
The music format _must_ be FastTracker's XM
Each object must be a binary object of type "XM  "

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[intro.dat]

This is a very special file, has the introduction of the game
Must be exactly like this (all is hard coded, sorry)
1_BMP Pictures of Kronoman, must be of 320xXXX pixels
2_BMP
3_BMP
4_BMP
5_BMP
LOGO_KRONOMAN_BMP Logo of Kronoman
KRONOMAN_WAV Kronoman sound
INTRO_TXT text for the intro with pictures

