### Navigation

- index
- modules |
- next |
- previous |
- Pyskool 1.1 documentation »

# Main ini file

The main ini file - pyskool.ini - defines key bindings and the appearance and content of the game menus. Each section is described below.

## [Keys]

The `Keys` section defines the key bindings. Each line in the section has the form:

    actionId, key1, key2, ...

where `actionId` is the identifier of the action to bind to the keys `key1`, `key2` and so on. Any number of keys may be bound to an action.

Pyskool recognises the following action identifiers for moving Eric:

- `LEFT` - move left
- `RIGHT` - move right
- `UP` - move up
- `DOWN` - move down
- `SIT_STAND` - sit down or stand up
- `OPEN_DESK` - open a desk
- `FIRE_CATAPULT` - fire the catapult
- `FIRE_WATER_PISTOL` - fire the water pistol
- `DROP_STINKBOMB` - drop a stinkbomb
- `HIT` - throw a punch
- `JUMP` - jump
- `WRITE` - start writing on a blackboard
- `ENTER` - finish writing on a blackboard
- `CATCH` - try to catch a mouse or frog
- `UNDERSTOOD` - acknowledge understanding of a message
- `MOUNT_BIKE` - mount the bike
- `DUMP_WATER_PISTOL` - throw away the water pistol
- `RELEASE_MICE` - release some mice
- `KISS` - try to kiss someone

In addition, Pyskool recognises the following identifiers for actions not related to moving Eric:

- `QUIT` - quit Pyskool
- `FULL_SCREEN` - toggle full-screen mode
- `PAUSE` - pause the game
- `SCREENSHOT` - take a screenshot
- `SAVE` - save the game
- `LOAD` - load the most recently saved game
- `MENU` - show the menu
- `MENU_EXIT` - hide the menu and resume the game
- `MENU_PREV` - move to the previous item in the menu
- `MENU_NEXT` - move to the next item in the menu
- `MENU_EXEC` - execute the selected menu item

Pygame uses keyboard constants to identify keys; a full list of those constants can be found in the pygame documentation. The key names (`key1`, `key2` etc.) declared in a line of the `Keys` section should match the names of the Pygame keyboard constants, but with the `K_` prefix removed.

## [Menu ...]

Each `Menu ...` section defines a menu and its appearance. The section name has the form:

    Menu menuId

where `menuId` is a unique identifier for the menu. The section may contain the following configuration parameters:

- `Alpha` - the transparency of the menu (0=fully transparent, 255=fully opaque)
- `Highlight` - the background colour of the selected menu item
- `Ink` - the ink colour to use for the title, menu items and status bar
- `Paper` - the main background colour
- `StatusPaper` - the background colour of the status bar
- `Title` - the menu title
- `TitlePaper` - the background colour of the title bar
- `Width` - the width of the menu (as a fraction of the screen width)

At the moment, pyskool.ini contains the definition for only one menu, whose unique ID must be `Main`.

## [MenuItems ...]

Each `MenuItems ...` section defines the menu items for a menu. The section name has the form:

    MenuItems menuId

where `menuId` is the unique identifier of the menu (defined by a [Menu ...] section).

Each line in the section has the form:

    operation, text

where:

- `operation` is the unique ID of the operation to which the menu item is bound
- `text` is the text of the menu item

The operation IDs recognised by Pyskool are:

- `LOAD` - load the most recently saved game
- `QUIT` - quit Pyskool
- `RESUME` - hide the menu and resume the game
- `SAVE` - save the game
- `SCALE_DOWN` - decrease the scale factor by 1
- `SCALE_UP` - increase the scale factor by 1

### Navigation

- index
- modules |
- next |
- previous |
- Pyskool 1.1 documentation »