Wacko Software presents:

Chickens 0.3.0.2 (pre-release)


_NOTE:_ This is only a pre release version of chickens. I decided to release this pre-release version so that I can get some feedback and so volunteers can start creating levels etc. Chickens is only about 87% finished, but the gameplay implementation is complete, so you can now play Chickens today! I can guarantee you, it will be better than playing Chickens tomorrow.

There are still a few glitches to be ironed out, there's a shortage of levels, it wouldn't hurt to tweak some of the existing levels, and a few more bits and pieces of graphics, sound and music need doing. But the important thing is that the game can be played and the construction-set (level editor) can be used, so let's see some levels and feedback!!!!!!

Currently, Chickens runs best in full-screen mode (although it is possible to run the game in a window by tweaking a the 'iswindowed' setting in the INI file, but there are problems with scrolling using the mouse in windowed mode). In Windows, to switch to another program you have running while in fullscreen mode (such as the program you are using to read this readme-document), hold down ALT and press TAB twice or more than twice.



CONTENTS:

+ Installation and Un-installation
 - Installation
 - Un-installation
+ Running
+ Introduction
+ The front-end
+ Playing the game
 - The basics
 - The layout
 - The tiles
 - The interface
+ The construction-set (level editor)
 - Drawing onto levels
 - Level and group parameters and settings
 - Other editor commands
 - Miscellaneous
 - Notes to level-designers
+ Keyboard Shortcuts
 - Global keyboard shortcuts:
 - Front-end keyboard shortcuts:
 - Game keyboard shortcuts:
 - Construction-set (level editor) keyboard shortcuts:
+ Tweaking
+ Troubleshooting
+ Credits
+ The bit at the end




INSTALLATION AND UN-INSTALLATION:

Installation:

Un-zip the zip-file you downloaded into an empty directory of your choice using a Zip program such as WinZip ( http://www.winzip.com ) in Windows, or pkunzip in DOS.

Some of the files in the installation belong in their own directories. If you see subfolders within your Chickens folder, you should skip this step. Most UnZip-programs (such as WinZip) make sure that directories are preserved so you do not have to worry about this (but with pkunzip, you need to pass the '-d' switch on the command line). The levels (files ending in .pmg) should be in a directory called "levels". If not, create a directory called "levels" and move the .pmg files (files ending in .pmg) there). Likewise, the datafiles (files ending in .dat) should be in a directory called 'datfiles'. Ideally, the documentation (except for 'readme.txt') should also be in the 'docs' directory, but in practice, it does not matter where it is.

If there's a previous version of Chickens installed, un-install it before you install this one (see the 'Un-installation' subsection).


Un-installation:

Delete the contents of the directory you installed Chickens to (if you installed chickens to a non-empty directory, delete only the files that were from the Chickens Zip). But if you created some of your own levels or modified the existing ones, you may want to move them elsewhere BEFORE you delete the directory.



RUNNING:

To run Chickens, launch the Chickens executable (in Windows, double-click on ChickensWin.exe, or if running the DOS version, type in "chickens.exe" from the DOS prompt while in the directory you installed Chickens to).



INTRODUCTION:

The chickens on Farmer Heironymous Pineapple's farm near the delightful village of Springle on the Sprog had lived a peaceful existence, until one day, a swarm of ducks (called the "Ducks of Hazard") flew over from the west of the river Sprog with intentions of domination of all forms of poultry.

As soon as they arrived at Farmer Pineapple's farm, they immediately broke into the DNA stores, got out the picture of the chicken's DNA, and using one of those pencils with an eraser at the end; they erased part of the chicken's DNA. This had the immediate effect that the head of all chickens faded away and disappeared.

The chickens who were currently wandering around the barn and every so often pecking the floor suddenly started running around aimlessly, for they were now without heads ... without direction. The ducks took this opportunity to close in and chase the chickens into nearby ponds and rivers.

The ensuing chaos was beginning to distract the cranky Farmer Pineapple from polishing his carrot-sculptures and as soon as he opened and looked out the window, he saw the ducks making a mess by laying eggs all-over the place and he saw them chasing his headless chickens into the river. He was beginning to get angry. The final straw occurred when a duck laid an egg on him. He was gnashing his teeth in anger and steam started to pour from his ears, and he immediately gathered together his collection of religious artifacts, which he kept in a cardboard box under his bed, dimmed the lights and started chanting verse in an unknown tongue. This caused the remaining chickens to group together and form a posse called the "Clueless Clucks Clan" (or "C.C.C." for short).

Farmer Pineapple was the sort of person who thought that doing things the easy way was too boring and simple for the likes of an eccentric village-idiot like himself. He could have ordered Daisy the cow (yes, he had one of those too) to charge and squash the legion of magnificent mallards that was guarding the DNA stores, but he instead decided to lead the C.C.C. (who were wearing false heads as a symbol of pride) through the complex labyrinth of his egg-gathering apparatus which eventually leads to a secret entrance to the DNA stores. The chickens would then restore their DNA to its rightful state so that they and their offspring could have real heads.

The main purpose of the egg-gathering apparatus was to collect the eggs that had been laid, sort them, place them in containers, and hatch some of them into more chickens. Like Farmer Pineapple's mind, it was unnecessarily complex, and re-defined the meaning of the word obfuscated. The reason this was so complicated was so that Farmer Pineapple could combat the existential angst created by those pictures in the Mister Men books that just showed simple pathways, and also so that he could show off his mechanical ingenuity and twisted mind. His contraption had the ability to separate eggs by size, mass, and the mood of the hens that had laid the eggs. As well as sorting the eggs, the contrivance also had the ability to play with the eggs as they were being sorted. The system of tubes, when properly set, could emulate a digital computer where the binary information was carried in egg, no-egg pulses, and the pathways of the tubes could be set by the passing eggs. Most of the system was constantly being upgraded, so to make it easier to experiment with new ideas, some of the pipe interchanges could be controlled manually, and there was a console inside the barn where Farmer Pineapple could change the path of the egg flow.

Some of the ducks had already entered the egg-gathering apparatus, had got hopelessly lost, but there were enough of them to hinder an advancing brigade of headless chickens, but as the ducks were so confused by the apparatus, they just kept on wandering around as aimlessly as the chickens. Just in case, they decided to sabotage parts of the system to prevent any attempts at infiltration by headless chickens (although the ducks had no idea about what they were doing once they entered the system).

In the mean time, the ducks had been having a go at 'DNA-hacking' with the pig's DNA, and had made them produce excessive amounts of hydrogen from any organic matter they consumed. This made them lighter than air and gave them the ability to fly, thus invalidating any expression of the type "If pigs could fly...".

Only the C.C.C., under the guidance of the whimsical Farmer Pineapple stand in the way of complete chaos at Pineapple Farm.



THE FRONT-END:

When you start Chickens, you are presented with the front-end. This is where you can play the game or launch the construction-set (level editor).

All of the buttons that do something in the main front-end screen have tooltips explaining what they do. Just hover the mouse-cursor over a button, and a tooltip should appear that tells you what it does. Most of the buttons are self-explanatory. Pressing the 'Play' button brings up the sub-menu for playing the game. Pressing the 'Construction set' button launches the Construction Set (the game's built in level editor where you can create and play your own Chickens levels).

In the sub-menu for playing the game, you are told to select a level group to play. There are five built-in groups of levels (groups) you can play. Click on one of the smiley face-buttons to play a group (or press a key from 'F1' to 'F5'). You can also press the 'Load and Play Group' button (the one that looks like a floppy-disk with an arrow coming out of it) (or press 'L') to load in a group that's not part of the game - that is, a group that you created in the construction-set, or one that you copied off someone else or downloaded.

When the group has been chosen, you are presented with the "Choose a level in this group" dialog. This is where you see an overview of the group, and can select which level to start playing in this group. You do this by typing in the level's password in the password-field (the mouse-cursor must be hovering over the password field in order for you to type there), or leave it blank to play the first level in the group. The password for a level will be revealed when you have completed the previous level and are about to start the new level. Remember this password (write it down, type it in a text-editor, remember it in your head, tattoo it onto your person, or whatever you do to remember Things) so that you may start playing the group at this level. Note that the password is case-insensitive, which means it can be typed in using either upper-case letters or lower-case letters. When you've typed in the password (or left it blank), press the "Play group" button to continue. You will be sent back to this dialog if there is no level in that particular group with the password you entered (even if there is such a level in another group). The password of the last level to be played is remembered for each group and is filled in the password-box automatically, although you will have to remember it when you exit Chickens.

Once the level has been chosen, the "Play level" dialog appears. This reveals the details of the level including the level's password (which is blank in the first level of the group). Also revealed are the following:
+ Level speed: This is the minimum speed (in ticks per second) that the level will run at. 
+ Number of Chickens at Start: Howmany chickens are introduced to the level from the Chicken tap at the start.
+ Target Number of Chickens: Howmany chickens you need to get to the target to complete the level.
+ Chicken Release Delay: The delay in ticks between chickens being released from the chicken tap. The lower the number, the faster the rate of chicken release.
+ Duck constipation: The delay in ticks between ducks' eggs being released from a ducks' eggs tap. The lower the number, the faster the rate of ducks' eggs release. The rate at which a single tap releases eggs remains constant no matter howmany taps there are in the level. This is only displayed if there's at least one ducks' eggs tap in the level.
+ Maximum number of eggs in incubator: The number of eggs an incubator can contain before it is full. If it is full, any egg attempting to enter the incubator regardless of colour and species will be destroyed.
+ Time to hatch egg: Time it takes for an incubator to hatch an egg (in ticks).
+ Time to lay egg: Time it takes for a fowl (chicken or duck) incubator to lay an egg (in ticks).
+ Time to lay egg (superfowl): Time it takes for a superfowl (super-chicken or super-duck) incubator to lay an egg (in ticks).
+ Time limit: The time in which the player has to complete the level. This is in minutes:seconds format.

Press the "Play Level" to play the level. If you succeeded, you will move onto the next level (if there is one). If you failed, you will re-play this level. Press the "Back to title-screen" button to return to the main front-end screen.



PLAYING THE GAME:

Chickens is a game that gives players a chance to solve problems in a new way. It presents bizarre problems that require bizarre solutions. The chickens must negotiate their way through a complicated spaghetti junction of pipes in order to reach the end of the game. Not only do they have to deal with the threat of the evil ducks, but the layout of the pipes also poses a puzzle. The game is divided up into levels, which are subsets of the pipe system. Each level consists of a series of pipes with obstacles, a certain number of chickens at the start, a target (number of chickens that have to reach the exit), and a time limit. The player must solve a problem by sending the target number of chickens to the end of the level within the time limit in order to be allowed access to the next level.

Some of the levels are pure puzzles, some just straightforward action, but most are a mixture of the two. 

In other words, Chickens is the game for people who like to tie their brain in a knot. 

If reading the text below is a bit too much for you, just play the 'Easy' group of Chickens. It introduces the various elements one by one, and at the start of the level, you are given plenty of hints in the "Play level" dialog. Also, you may hover the mouse over a button in the status-display area (the area below the level) and a tooltip will pop up to tell you what it does. When playing the 'Easy' group, one way to learn what each element does is to run through the level without interacting with it (or not following the instructions), and then play it with interacting to see how the actions affect the outcome.


The basics:

All chickens come from the chickens tap somewhere on the left edge of the level (there can be one or more chickens taps per level). The number of chickens to be released and the delay between subsequent chickens releases are determined by their respective level-parameters. Some levels contain ducks or ducks' eggs taps at the top of the level which release a continuous stream of ducks' eggs into the level. This can be a nuisance, but sometimes, it can be beneficial too. The chickens must be sent to the exit-square located somewhere on the right edge of the level (there can be one or more exit-squares per level). If the level is large enough, you can scroll it by moving the mouse past the edges of the screen (or alternatively, press the keys on the numeric keypad to scroll the level in the direction of the number-key relative to the position of the '5' key. Note that on laptops, 'Num-Lock' must be enabled for scrolling with the keyboard to work). Any square that can be interacted with by the player becomes highlighted when the mouse is moved over that square. Such squares include player-controlled-interchanges and delay-egg squares.

A chicken will die if it encounters a duck and attempts to fight it (and so will the duck it's fighting), or come across a bomb or a dead end. However, they can reproduce by laying eggs, and sending the eggs to the incubators to hatch. To make things difficult, the chickens' eggs come in four different colours (green, red, blue and yellow), and must be guided through the same system of pipes to the correct incubator for that colour in order to hatch. The Ducks can lay eggs too, and while there are ducks' eggs in the incubators, any chickens' egg trying to enter will be destroyed.


The layout:

Most of the screen is taken up by the level-area. This is the maze of pipes that the chickens must negotiate. Sometimes, not all of it fits in the level-area and the screen must be scrolled to view the remainder of the level. Below the level is the status-display area in the bottom left that shows various statistics about the game in progress represented by icons with numbers (hover the mouse-pointer over an icon and a tooltip will popup to explain what it represents), and an interface in the bottom-right (again, hover the mouse-pointer over each control to see a tooltip).


The tiles:

The pipe-junctions consist of ordinary pipes, interchanges, command squares, and other obstacles. The main control the player has over the game is the ability to switch the paths of some of the pipe interchanges by moving the cursor over the interchange and pressing a button. The player can also release eggs that are being delayed. The light-green interchanges (Player-Controlled-Interchanges) can be changed by pressing the left mouse-button when the mouse-cursor is over the interchange. Light-blue (cyan) interchanges (Object-Controlled-Interchanges) change whenever something moves through the pipe, red interchanges (Fullness-Controlled-Interchanges) switch to their changed state if an object is passing through and revert to their unchanged state when the interchange-square is empty (this has the effect of isolating the first object in a stream of objects), and black interchanges (static interchanges) always remain in the same state. However, some black interchanges have a red or cyan pipe underneath (known as the 'control-pipe'). There are two types of control-pipe, a Fullness-Controlled-Control-Pipe (red) and an Object-Controlled-Control-Pipe (cyan). With Fullness-Controlled-Control-Pipes, whenever there is at least one object in the red control-pipe, the interchange changes to its changed state, and reverts to its normal state once the red path is clear. Such interchanges are called 'Nearby-Object-Controlled-Interchanges', and with Object-Controlled-Control-Pipes (cyan), the interchange changes state whenever an object enters the control-pipe. There are also 'Y'-shaped two-output separator pipes where chickens and ducks go through the brown wall, and eggs go through the grey wall (unless entering from either of the two exits, in which case, all traffic goes to the entrance). Two-output separators can also be used to separate all chicken-related things (chickens and chickens' eggs) (they go through the pink wall) and duck-related things (ducks and ducks' eggs) (they go through the magenta wall). A second-type of separator is the five-output separator that can either be used to separate egg-colours or fowl by their state. Splitter-tiles contain 8 pathways and send anything trying to enter off in the direction of the golden arrow. Depending on the splitter-type (colour), the arrow either moves clockwise (orange), anticlockwise (yellow) or random (magenta). Sometimes, the initial placement of the arrow is pre-determined, and sometimes, it is random.

If an egg passes over a delay-egg square, then pressing the left mouse-button over the square releases the egg (the arrow underneath the delayed egg points in the direction the egg will travel on release). It is possible to release all eggs currently being delayed at once - see the interface sub-section for details. When a fowl (chicken or duck) reaches a lay-egg square (one that looks like a nest), it stops and lays an egg if the lay-egg square is empty. If the nest of the lay-egg square is brown, it lays an egg in either a random colour or a sequential order (the next colour to be laid is displayed (ducks always lay grey eggs yet they still advance the nest's egg-colour) whose initial value can be either pre-determined or random), otherwise, it lays an egg in the same colour as the nest (or grey egg if a duck). Spacewarps instantly transport anything trying to enter them to their twin-spacewarp (the spacewarp with the same colour). Dead-ends instantly destroy any object trying to enter them (hence the dead-ness of the dead-ends).

The incubators are where the eggs for a particular colour hatch (they can also hatch grey ducks' eggs). Incubators hatch one egg at a time and all the other eggs queue up to wait their turn. When hatched, the fowl will leave the egg in the opposite direction to where it entered. Eggs entering the incubator will queue up in the order entered, even if they entered from different sides, so any hatched fowl will continue moving in the same direction. If an egg of the wrong type tries to enter the incubator, it will be destroyed, destroying the last egg to have entered the incubator in the process (the incubator shakes for a bit when this happens). An incubator can only contain its maximum number of eggs before it does not allow anymore in (further eggs of the right type are destroyed, but these do not destroy an egg inside the incubator). The incubator's icon resembles an egg of the type it is currently hatching. It has a face that appears in time with the progress that the egg is making in hatching. The incubator also shows the number of eggs inside, and a fullness bar indicating how full it is.

Pipes can also contain obstacles. If anything touches a bomb, it is destroyed (along with the bomb). If it picks up a superfowl-costume (consisting of a pair of sunglasses and a leather jacket), it turns into a superhero (becomes super-chicken or super-duck - AKA superfowl). Superfowl run at 1.5 times the speed of ordinary fowl, can lay eggs much faster, and win all fights with ordinary fowl (although in a fight with another superfowl, both superfowl get killed). There are also piles of radioactive chicken-feed. Any fowl that eats them becomes sterilised (radioactive) and can no longer lay eggs (but they can still start fights and become superfowl). The extra time obstacle either increases the remaining time (if picked up by a chicken) or decreases it (if picked up by a duck). Increase Minimum Selectable Speed increases the minimum speed that can be selected by 10 ticks per second (and if the current speed is below that, it sets it to that). If an object encounters an arrow, it can only move in the direction the arrow is pointing. If an obstacle meets an arrow pointing in the opposite direction, it is turned back in the direction it came.

Exit-squares have two numbers. The top-most number is the is the number of chickens required to complete the level (all exit-squares share the same number) (this is also shown in the status-display area). This number is drawn in reverse-video if there are sufficient chickens in circulation to complete the level (but be aware that not all chickens in circulation are capable of reaching the exit). Sometimes, the exits can be locked (they are drawn with a padlock of a certain colour). To unlock them, you must collect enough keys in the colour of the exit-locks, and all exits in that colour will be unlocked. The exits of that colour show howmany keys of the colour are needed to open all exits of that colour (the bottom-most number). When a duck takes a key, it is taken but used to increment the lock count rather than decrement it. If the exit is still locked and there are no more keys of that colour left, it may still be possible to complete the level by sending the chickens to exits of different colours if they are unlocked. If more keys are collected than the lock-count, these keys are kept as a surplus to be used to counter ducks getting more keys of that colour and prevent them from locking the exits. The lock-counts at the start of the level vary from level to level.

One way to find out what particular objects (tiles and obstacles) do is to go to the construction-set and find the object in one of the object-category menus (right click on one of the object-category buttons to bring up a men of available objects for that object-category) and hover the mouse-cursor over the object so that a tooltip appears (sometimes, the tooltip depends on the currently-selected object-type).


The interface:

It is possible to change the speed at which the level runs. To do this, move the mousewheel or press the up/down arrow keys (in the INI file, the setting 'invertmousewheelspeedchangedir' reverses the direction the mousewheel/arrows must be moved/pressed). Hold down 'SHIFT' to quadruple the rate of change of the level-speed. This is useful in one of those levels that requires setting the interchanges up and then leaving the level alone, as you get to see the level complete itself much faster. Pressing the middle mouse-button or 'Z' immediately restores the level-speed to its minimum value, and pressing 'X' or the fourth mousebutton immediately sets the level speed to it's maximum value. Alternatively, you may press the two buttons to either side of the speed-bar, and you may even press the speed-bar itself to set the speed.

To release all the eggs currently held in delay-egg squares simultaneously, press the right mouse-button (or the 'release all delayed eggs' button or the 'BACKSPACE' or 'CAPS LOCK' keys) to release all the eggs that are currently being delayed (holding down the right mousebutton (or 'BACKSPACE' or 'CAPS LOCK') prevents any eggs from being captured by delay-egg squares until the right mousebutton (or 'BACKSPACE' or 'CAPS LOCK') is released).

The game can be paused by pressing the 'SPACE' key or 'Pause' button (press the 'Press to continue' button or 'ENTER' to continue). To quit the game, press 'ESC' or the 'exit' button.

To bring up a dialog to remind you of the level-text and some other information on the level while playing, press 'H' or the 'info' button.

For levels where at least one dimension is larger than the displayed level area, the screen is scrolled to it's starting scroll-position. Press 'W' at any time during gameplay to scroll back to this starting scroll-position.

To save an image of the entire level (not just what is currently visible onscreen), press 'CTRL+K'. The screenshot is saved as chlvimxx.pcx in the directory Chickens was launched from.



THE CONSTRUCTION-SET (LEVEL EDITOR):

The construction-set is the level editor of Chickens. Use it to build your own levels and play them, and more importantly, to share them with other egg-layers (chickens players).

The screen is laid out just like it is in the game. Like with the game, if the level is large enough, you can scroll it by moving the mouse past the edges of the screen (although scrolling with the numeric keypad only works when laying pipes with the numeric keypad using the 'fast pipe-lay mode'). However, the status-display has been replaced by the level-editor user-interface.

All of the buttons in the user-interface that do something have tooltips explaining what they do. Just hover the mouse-cursor over a button, and a tooltip should appear that tells you what it does (for tile-buttons, the tooltip will tell what each tile does in the game which is useful when learning about the game). Not all buttons are active at the moment. All of them are activated by the left mouse-button, but some also bring up a menu if you press the right mouse-button over them, and some even react to middle-click presses (for those of you using a mouse with no middle mouse-button, holding down 'CTRL' and the left mouse-button achieves the same effect. The right mouse-button can be simulated by holding down 'SHIFT' while pressing the left mouse-button). The tooltips will tell you which mouse-buttons you can use and what they do.

The interface is intuitive, and can be explored by pressing things with the left, right and middle mouse-buttons. You can tell which buttons do something by hovering the mouse-pointer over them and if the button reacts to having a mouse over it, then it does something. If you leave the mouse over the button long enough, a tooltip appears that explains the purpose of the button and what happens when each mouse-button is pressed on it. Just try it out and see what happens. The worst you can do is overwrite an existing level (but fortunately, you are asked to confirm before doing this, and even if you do, a backup is made).

You start out the construction-set with an empty group consisting of an empty level. A group is a collection of levels but it can also contain only one level. Most of the screen is occupied by the level (the "level-area"). The controls are in the area at the bottom of the screen.


Drawing onto levels:

There is an object being carried by the mouse. This is known as the carried object. The level-area can be drawn on by pressing the left mouse-button on where you want to draw, and a copy of the carried object will be drawn at that position on the level. Individual areas in the level that can contain tiles (can be drawn on) are referred to as "squares". Up to 4 tiles can be drawn in a square (although some tiles can monopolise the square). Each slot that a tile takes up in the square is called a layer. Some squares may contain an additional obstacle in the topmost layer (this depends on the tile of the topmost layer).

Obstacles can be one-way arrows, ducks, radioactive chicken-feed, etc. Most obstacles are meant to be placed on ordinary pipes. Currently, such an obstacle requires a straight section of ordinary pipe to be at the topmost layer of the square. Some obstacles (the duck and the one-way arrow) require that they be facing one of the two directions of the pipe). The one-way arrow (blue) points in the direction you want the arrow to point to, and the duck starts moving in the direction it is facing when the level starts. Other types of obstacles are meant to be placed on certain command-tiles. The splitter arrows (yellow and shorter than the one-way arrows) are meant to be placed on the splitter-squares to tell them what their initial direction should be (without a splitter-arrow, the initial direction is randomly chosen), and the lay-egg egg-colours are meant to be placed on un-coloured lay-egg squares (the nest of the lay-egg square is brown) to tell what their initial egg-colour should be (with out a lay-egg egg-colour, the initial egg-colour is chosen randomly).

It is possible to select a square by pressing the right mouse-button (or left mouse-button while holding down 'SHIFT') over the square in the level ('drawing' onto a square also selects it). The selected square will be highlighted, and its contents will be displayed in the four buttons at the bottom of the screen (known as the "Layer-select area") as well as the "Corners and Obstacles" button. As well as selecting individual squares, it is also possible to select an area of squares for cut/copy/delete operations. Use the right mousebutton to drag an area to select. The square displayed in the layer-select area and "Corners and Obstacles" button is the top-left of the selection (this is highlighted within the selected area).

If there is an interchange under the mouse-cursor, you can change its state by pressing the middle mouse-button (or left mouse-button while holding down 'CTRL') (if the carried object is an interchange, this also changes its state). The middle mouse-button also inverts the direction of any arrow-obstacle or duck-obstacle (both if it is under the mouse-cursor of if the carried object is such an obstacle).

You can select what to draw with by pressing on any of the six object-category buttons (near the left side of the buttons). The three big ones let you draw tiles, and the three small ones let you draw an obstacle in the topmost tile (not all tiles allow obstacles to be drawn on them). Each button shows which object of that object-category was selected. The carried object is the selected object in the selected object-category button. Press the button with the right mouse-button to bring up a menu of available objects for this category of object where you can select the object for this object-category (as usual, hovering the mouse cursor over a button in the menu of available objects brings up a tooltip). As a shortcut, pressing one of the six object-category buttons with the left mouse-button selects the most recently used object of that category (this is a shortcut for bringing up the menu to choose the already selected object in that category of objects).

Some objects (usually tiles) come in different types. The type may determine how an interchange decides to change, what colour eggs an incubator will accept, what type of splitter a splitter is, in which directions separators separate objects (and what types of objects they separate), or sometimes, it could just be used to colour ordinary pipes. To change the type of the object in the currently selected layer of the currently selected square, press 'ALT'+'0' on the numeric keypad (or if your mouse supports it, the fourth mouse-button (or left mouse-button while holding down 'SHIFT+CTRL'), or press the 'type' button (underneath the second object-category button) with the third mouse-button (or left mouse-button while holding down 'CTRL')) and the type of the object will cycle through all the possible types for that object. Note that the change is applied only to the tile in the selected layer (see below for how to select layers). To change the type of the object currently being carried by the mouse, press the 'type' button (underneath the second object-category button). Left-clicking it (or pressing 'ALT'+'5' on the numeric keypad) cycles the type of the carried object. Right-clicking it brings up a menu of up to four tiles. These let you chose the type of the tile. Use the tooltip for the button in the menu to find out the difference between the types and what effect changing the type has. In the case of ordinary pipes, the tile-type just selects the colour of the pipe. This can be useful for giving the player a hint as to the purpose of each pipe (eg. in levels that use digital logic), or could just be used aesthetically. The newly selected type is reflected in the object-category buttons. If the selected object of an object-category button does not support the new type, it's type wraps back to the first type, and if that button is selected, the tile-type now becomes the type of that tile.

It is possible to flip and rotate the carried object. Use the flip and rotate buttons in the level-editor, or use the '/' and '\' keys to flip or 'PGUP'/'PGDN' keys to rotate (when rotating, pressing the rotate buttons with the right mousebutton or holding down 'SHIFT' while pressing 'PGUP'/'PGDN' makes sure the rotation is at least 90 degrees). An alternative way to rotate the carried object is to use the mousewheel (in the INI file, the setting 'invertmousewheelrotatedir' reverses the direction the mousewheel/'PGUP'/'PGDN' keys must be moved/pressed). Holding down 'SHIFT' while rotating the mousewheel makes sure the rotation is at least 90 degrees. The change will also effect which object is selected in the selected object-category button.

To erase the contents of a square, press the 'erase' button (the one that looks like a pencil with an eraser at the end). This clears any square you 'draw' on. Press the 'erase' button again to return to normal drawing with the carried object.

At the bottom of the screen are four buttons known as the "Layer-select area". They give a breakdown of the layers that compose the currently selected square, as well a showing which layer contains the obstacle (this is always the topmost layer). Layers can be selected using the keys F1-F4. Some changes (eg. changing the type of the object in the currently selected square or flood-filling the pipes) only apply the change to the tile in the selected layer. When modifying the level, the layer containing the last modified tile is automatically selected. Individual layers in the layer-select area can be drawn on, cleared and modified just like you would modify a square in the level (this also selects the layer), except that it only affects the layer represented by the layer-select button that the modification was applied to. Remember that some tiles will not share the same square with other tiles (eg. interchanges, command-squares). Pressing the right mouse-button (or fourth mouse-button) over a tile in a layer-button cycles through the possible types this tile can have (this is an alternative to erasing and re-drawing the tile just to change its type). Interchanges can be switched using the middle mouse-button or pressing the 'switch interchange' button.

It is possible to flood-fill a length of pipe. If the selected pipe-segment (the selected layer (use layer-select area to see which is the selected layer) of the selected square) is an ordinary pipe (not an interchange or command-pipe), the tile-type of all pipes of the existing tile-type (the tile-type of the selected pipe-segment) in the length of pipe (all ordinary pipes of the same tile-type connected to each other) is changed to the new tile-type (the currently selected tile-type). Press 'F' or the 'flood-fill' button to do the flood-fill.

Two tiles in the Layer-select area can have their positions swapped by dragging and dropping a tile to a different layer. To drag, press and hold down the left mouse-button on the layer-select button representing the tile you wish to swap, move the mouse to the layer-select button representing the tile you wish to swap it with, and release the left mouse-button. Tiles can also be shuffled (in which case, the dragged tile is moved to the destination, and all other tiles are pushed back). To do this, drag using the right mouse-button. Note that to include the layer underneath the mouse in the shuffle, the mouse-cursor must be at least half way across the button (in the direction of the shuffle), otherwise, the shuffle will only go so far as the previous layer.

To the left of the four buttons of the "Layer-select area" lies a fifth similarly-sized button - the "Corners and Obstacles" button. Use this button to modify the status of the square-corners (if another pipe passes over a corner of the current square, the status of the corners means whether or not the pipe at the corners passes over or under this square) and the square's obstacle for the currently selected square. If an obstacle is selected, pressing this button will place the obstacle in the selected square. If the eraser is selected, pressing this button will erase the obstacle in the selected square. The corners of the tiles are also shown. If a corner is shaded light or dark, that means its visibility can be toggled. Press the button with the mouse over the corner whose visibility you wish to toggle, and the corner's visibility (whether or not the pipe crossing this pipe at the corner is displayed on top of or underneath of) will be toggled.

In case you run out of inspiration, press the "Random tile" button and a question-mark is now being carried by the mouse. Drawing on the level-area or the layer-select area now draws a randomly chosen tile. Press it again to return to normal drawing. There is also a "Random position" button underneath the "Random tile" button that draws the currently-selected tile (the carried object) at a random position on the screen. Pressing 'ALT+R' is equivalent to pressing the "Random position" button, whereas 'SHIFT+ALT+R' continuously draws the selected tile at random positions. Try combining "Random tile" and "Random position" to see what happens.

There is a much faster way of laying ordinary pipes than manually selecting each tile and pressing each square with the mouse (which can become very tedious for long and wiggly paths). The alternative method is to use the numeric keypad. This is known as 'fast pipe-lay mode'. Lay a single pipe-section in the usual fashion (or modify an existing pipe-section) to activate the fast pipe-lay mode (you can tell if it's active if the selection highlight is drawn in an orangey hue). Once the fast pipe-lay mode is active, press the numbers on the numeric keypad to lay the next pipe in the direction dictated by the numeric keypad (the direction can be horizontal, vertical, or diagonal, and is relative to the '5' in the middle of the keypad (this is the same direction as the arrow on the numeric keypad)). Press 'ALT'+'0' on the numeric keypad cycles the type of the most recently laid object. Pressing 'ALT'+'5' on the numeric keypad cycles the type of the next object to be laid (the most recently laid pipe is unaffected - even if it is to be bent when the next pipe is to be laid). Either the pipe must already have an exit leading to the square in the direction of movement, or the last pipe to be laid must be an ordinary pipe (which can be bent). If using it on a level larger than a screen, it scrolls the screen if the newly laid pipe goes off the edge. This allows you to lay a complicated line of pipes much more rapidly. Note that selecting a different area without drawing anything (or erasing something) cancels the 'fast pipe-lay mode'. Note that on laptops, "Num-Lock" should be enabled for this to work.

It is possible to cut ('CTRL+X'), copy ('CTRL+C'), delete ('DEL') and paste ('CTRL+V') areas of squares. An area of squares is referred to as a 'Block of squares' or 'BloS'. BloSses are copied to the internal 'clipboard' on cut/copy actions and can even be flipped and rotated once in the clipboard (the BloS in the clipboard is referred to as the 'current BloS'). Pasting can either overwrite the existing squares ('CTRL+V'), or be combined with the existing squares ('CTRL+U') (as long as combining the two sets of squares does not produce an impossible combination of tiles in a single square, or increase the spacewarp-count beyond the limit for that type of spacewarp). To cut/copy/delete, an area of the level must be selected. Right-click one corner, and drag the selection until the selection covers the area you wish to manipulate. There is a menu that can be accessed by pressing the "Block of squares" button that gives a set of options for the current selection or the block of squares in the clipboard. Note that the contents of the clipboard persist across level-changes. This means the clipboard-contents can be pasted into a different level, or even in a level in a different group.

Note that chickens-taps can only be drawn on the left edge of the level (there can be one or many), exit-squares only on the right (there can be one or many), and ducks' eggs taps only at the top (there can be any number of ducks' eggs taps - even none at all). No pipes may have an exit leading off the edge of the level, and there should be no more than two spacewarps of each spacewarp-set.


Level and group parameters and settings:

Each group has a set of parameters, and each level within that group also has some parameters. Press the level information / group information / statistics button (the one that looks like a notepad) or press 'CTRL+P'. This will bring up the statistics dialog, showing the filename of the currently loaded group, whether the group is complete or not, and other group-related parameters. These are:
+ Group Name: The name of the current group.
+ Group Authour: who created this group, or "Various artists" if several people contributed levels to this group.
+ Group Password: When loading the group into the construction-set, this is the password that must be typed in order to view/edit the group (the password is not needed to play the group from the front-end). This enables the level-designer to prevent anyone from being able to view or modify the group in the level-editor (unless they know the password).
+ Group Text: Some accompanying text that gives an overview of the group. It is shown in the group's level-chooser when playing a group.
+ Group-finished message: This is a per-group congratulations message that appears in the group-finished screen.

There is a sub-dialog for the current level. It shows the number of the level in the group, whether the level is complete or not, and other level-related parameters. These are:
+ Level Name: The name of the level group.
+ Level Authour: who created this level.
+ Level Password: This is what the player types in on the level-chooser dialog when playing the game in order to start on this level instead of the first. If this level is the first, the password should be left blank. If it is not the first, a password should be used. You will be warned if you pick a password that is being used by another level in the group. Note that the password is case-insensitive, and all lower-case letters will be converted to upper-case letters.
+ Level Text: Some accompanying text that gives an overview of the level. It can be used to give hints as to how to solve the level, or not if you don't want to give any hints. It is shown in the 'play-level' dialog when playing a level.
+ Level speed: This is the minimum speed (in ticks per second) that the level will run at. 
+ Number of Chickens at Start: Howmany chickens are introduced to the level from the Chicken tap at the start.
+ Target Number of Chickens: Howmany chickens you need to get to the target to complete the level.
+ Chicken Release Delay: The delay in ticks between chickens being released from the chicken tap. The lower the number, the faster the rate of chicken release.
+ Duck constipation: The delay in ticks between ducks' eggs being released from a ducks' eggs tap. The lower the number, the faster the rate of ducks' eggs release. The rate at which a single tap releases eggs remains constant no matter howmany taps there are in the level. This is only relevant if there's at least one ducks' eggs tap in the level.
+ Maximum number of eggs in incubator: The number of eggs an incubator can contain before it is full. If it is full, any egg attempting to enter the incubator regardless of colour and species will be destroyed.
+ Time to hatch egg: Time it takes for an incubator to hatch an egg (in ticks).
+ Time to lay egg: Time it takes for a fowl (chicken or duck) incubator to lay an egg (in ticks).
+ Time to lay egg (superfowl): Time it takes for a superfowl (super-chicken or super-duck) incubator to lay an egg (in ticks).
+ Time limit: Howmany seconds the player has in which to complete the level. The number you enter here is the time-limit in seconds.
+ Tune number: This is used to specify which tune is to be played in a level. Note that the actual tune used is the modulus of the tune number and the total number of tunes (this is to make it easier to add more tunes in the future without making the PMG files incompatible).
+ Sprite-pool size. This is howmany sprite-slots are used before the level runs out of sprite-slots. Beware that making it too large will make a level un-playable on machines with limited memory, and making it too small will mean that the taps are more likely to dry up. In most screen-sized levels, 1024 is a sufficient value, but this value can be anything up to 20000000.
+ Key-counts for the four colours of keys. These are howmany keys of each colour are needed to unlock all the exits of that colour (negative values mean there's a surplus).
+ Level-finished message: This message appears in the level-finished dialog once the level has been successfully completed. This is sometimes used to give additional comments about the level. This may be left empty.

To edit one of these parameters for the group or level, move the mouse-cursor over the text box, and type in the value.

A level is considered 'complete' if the following conditions are met.
+ There is at least one chickens-tap and at least one exit-square present in the level
+ All pipes are connected. That is, there are no pipes with loose unconnected ends.
+ For each spacewarp, it should be twinned with another spacewarp of the same spacewarp-set.

A group is considered complete if all levels in the group are complete.

You can tell if a level is 'complete' by the status of the test-tube in the 'test' button at the bottom-right of the screen. If the liquid inside is green, the level is 'complete', and if it's red, it isn't 'complete'. Only 'complete' levels are allowed to be played. In the statistics dialog, it also tells you if the current level is complete, and also if the group is complete. Also, the 'Select level in this group' dialog and 'Split level-group' dialogs show complete levels with a green border and incomplete levels with a red border.

Each level has a starting scroll-position. For levels where either at least one of the level-dimensions are larger than the displayed level area, this is the initial position the level will be scrolled to when it is played (and the position it is scrolled to when the level is selected or loaded into the construction set). Usually, it will be where a chicken-tap lies, but the level-designer could choose to have it somewhere far away from the taps. Press 'CTRL+W' to set the starting scroll-position to where the level is currently scrolled, and press 'W' to scroll back to the starting scroll-position.


Other editor commands:

To test the level you have created, press the 'test' button (or 'CTRL+T' or 'ENTER'). Levels can only be tested if they are complete.

To save your masterpiece, press the "Group, Level, and IO" menu button (the one on the right that looks like a floppy-disk with two arrows) and choose 'save' (the one with an arrow going in to the floppy-disk) (or 'save-as' - the one that looks like 'save', but with a question-mark on the arrow). Towards the top of the file-select dialog, you can type in the name of the group to save (the .pmg extension is automatically added so you don't have to add it yourself). Take care not to over-write an existing group (you will be warned if you try to do that). A backup of the group is created. The backup filename is the filename of the group with '.PMG' replaced with '.BAK', and when the level is saved again, the old backup will be overwritten by the new backup. To load a group into the construction-set, press the 'load' button from the same menu (the one with an arrow coming out of the floppy-disk). If the group was locked with a group-password, you will have to type it in order to load the group into the editor.

To go to another level in the currently-loaded group, choose the "Select level in this group" button from the "Group, Level, and IO" (or press 'CTRL+E'). You are presented with a dialog of buttons containing a thumbnail of each level in the group (scrolled to it's starting scroll-position) - this is called the "Select level" dialog. Hovering the mouse-cursor over the box will give the level's name as a tooltip (unless there's only one level in the group). Press one of the buttons to select the level. Each level us surrounded by a rectangle indicating completeness (green means it's complete and red means it's incomplete). If the side of a border of a rectangle is drawn in a bright colour, it means the level is larger than the thumbnail in that dimension and continues off the edge in the direction of the bright border. The positions of two levels can be exchanged by dragging one level on to another level using the left mouse-button, and they will be swapped. Levels can also be shuffled by dragging with the right mouse-button. If the level-selection is cancelled, the shuffling of the levels while in this dialog will be undone. The 'Level Info' button (shortcut key 'I') brings up an information dialog about the level currently chosen in the "Select level" dialog.

It is possible to combine two groups by merging another level into the existing level. Press the "Group, Level, and IO" menu button and chose 'merge' (if the group to merge is locked, you will need to enter the group-password). The group will be inserted after the currently selected level. Likewise, it is possible to split off a new group of levels from the existing group into a new file ("Group, Level, and IO"/"Split"). Firstly, the 'Split' dialog appears. Here, you get to chose the first level in the new group to be created. All levels that are to be saved and taken out of the existing group are highlighted. When you have chosen which levels to split, chose the filename of the group you wish to create (it should be a file that does not yet exist unless you intentionally intend to overwrite an existing file). Like with the "Select level" dialog, the order of the levels can be swapped and shuffled by dragging the levels using the left and right mouse-buttons respectively (if the 'split' operation is cancelled, the shuffling of the levels while in this dialog (or the file-select dialog that appears immediately afterwards) will be undone). Use 'Split' in combination with 'Merge' to shuffle levels spanning multiple groups (eg. move a level from one group to another group).

The size of the level is 20 x 13 squares by default (which is the size of the on-screen portion of a level), but this can be changed by either adding borders or cropping the level. To add borders, go to the "Group, Level, and IO" menu and press the "Add borders" button. There, you are shown the existing size of the level, and are asked how much space you wish to add to the sides of each level (NOTE: the maximum level-size is 128 x 128, although this could be enlarged in future versions). To shrink the level, select the area you wish to crop the level to, and press the "Crop" button in the "Group, Level, and IO" menu. Note that your cropped level must be at least 3 x 3, and because some pipes may be pruned, the level might have to be modified before it becomes complete once again.

There is an Undo/Redo capability available - just the thing for all those indecisive level-designers out there. Just press 'CTRL+Z' to Undo the last action, and 'CTRL+Y' to Redo the last Undo (or alternatively, use the UNDO and REDO buttons in the bottom-left). Note that Undo/Redo is only implemented for options that affect individual (and surrounding) squares. Currently, the 'flood-fill' command treats each changed tile as a single undo/redo step. Using any other command invalidates the contents of the Undo buffer (it means it cannot be undone). Examples of commands that invalidate the Undo buffer are commands involving BloSses that modify the level (paste-transparent, paste-overwrite, cut, delete), commands involving the entire level (clear level, add borders, crop, changing the level/group parameters), commands involving the group (select level, new level, delete level, new group, load group, merge group, split, and swapping/shuffling the level-order), and changing the start-window position.

To save an image of the entire level (not just what is currently visible onscreen), press 'CTRL+K'. The screenshot is saved as chlvimxx.pcx in the directory Chickens was launched from.

To exit (not that you should ever want to exit now that you've discovered the joys of making Chickens levels - oh well, you had to ask...), just choose the 'exit' button on the "Group, Level, and IO" menu (or press 'CTRL+Q).


Miscellaneous:

Have a look at some of the existing levels. Try loading in an example group by pressing the "Group, Level, and IO" menu button and choosing load (the one with an arrow coming out of the floppy-disk). The group is then loaded into the construction-set. Loading and saving loads and saves entire groups. All levels within are loaded/saved.

Note that the group loaded into the construction-set is independent of the group loaded into the game using "Load and Play" from the front-end. Although this does not matter at this stage.


Notes to level-designers:

Here is some advice for those brave souls experimenting with this unique craft. These are just guidelines, and don't have to be followed to rule.

+ To make an interesting level, it shouldn't just be about getting chickens to the end of the level. There should be a puzzle which the player must solve. Of course, interesting could mean making a chaotic level. Chaotic-but-fun levels are a welcome break from levels where you have to solve a problem.

+ The time limit for a level is an important element. For example, the player may find they never have enough time to finish the level. Suddenly, if they solve a certain puzzle, they find they now have plenty of time. A level that's timed be finished just as the time-limit is running out can make for an exciting finish. As the game-music starts to get out of tune, this is the cue that the player is running out of time, so when they hear the music 'melting' they become very anxious.

+ Try designing puzzles where there's plenty of time, but there's just a small number of chickens left over that need to be sent to the exit. If the player tries different approaches they will find the solution.

+ Levels that have many ways to solve are enjoyable because they are addictive - the player will want to play it over and over again because every time they try something new, they get a better time/result.

+ In levels that are puzzle-oriented, randomness should be kept to a minimum. Relying on a certain outcome from a random event (such as the egg-colour of an egg laid from a random lay-egg square, or the direction of a random-splitter), can frustrate the player. However, in levels that are based on dealing with chaos, randomness is encouraged.

+ Avoid frustration. Don't overwhelm the player. Make them believe they were so close, that next time they will do it. OH YES!

+ Very large levels should be used sparingly as they can overwhelm and frustrate player. Keeping a level the size of the screen makes it easier for the player to keep track of what is going on. Even only making one dimension of the level area larger than the screen makes it easier to follow than having both dimensions larger than the screen, as that way, it is easier to search for something. However, large levels can be useful for some digital logic stuff.

+ Designers should take care to make sure that the level does not have an easier way of being completed that means that the player doesn't get the chance to solve the original puzzle. One way round this is to get someone who is unaware of the level's secret to test it and find out how they solve it. Do they solve it the way it was intended or did they discover a much easier way that the designer did not foresee? But if the designer wants, there could of course be several ways of solving the level.

+ Do get other people to play your level before you release it to the general public. Feedback is always useful. If you've been thinking a lot about the level and designed it round your thoughts, bear in mind that those playing your level will have to solve the problem using the reverse thought-process that the designer used when designing it. Solving the same problem you solved in reverse is a completely different thing to designing the level. Remember, what may seem intuitive to you may be frustrating to others. Also, getting someone else to test it is a means of making sure the level is not too overwhelming.

+ If you insist on making levels that rely too heavily on using the "digital logic" properties of Nearby-Controlled-Object-Interchanges, bear in mind that most people don't have an understanding of digital circuits, and will probably not be able to complete the level. The actual game will probably contain very few of these types of levels. They are best left to be exchanged on the Internet amongst enthusiasts of that sort of thing. Of course, it is possible to have digital logic in a level without the player having to decipher it all. All they may have to do is send eggs down the right pipe and everything will be fine and dandy without them ever wondering why. If you have not got a clue what I'm on about, you don't have to worry about this point.

+ Spacewarps should be used sparingly, as they make the flow of the level harder to follow.

+ There does not have to be any ducks in a level. An example of this is the first level.

+ There do not have to be incubators of all four egg colours. In fact, there don't have to be any incubators at all. It may be possible to create a puzzle where you only have the chickens you start off with at your disposal. An example of this is the first level.

+ In some levels, the player is told what they want the contraption to do (they must implement the given solution). In other levels, they must figure it out themselves (not only must they implement the solution, but they must design it as well).

+ As well as making levels that are fun to play. It might be worth experimenting making levels with an artistic meaning, levels with hidden messages in the pipes (the pipes/level looks like a word), or levels that act like a scientific toy (levels that make use of digital-logic are good examples of this). However, this should be left to more advanced or experienced level-designers.

+ When designing levels where two fowl come very close to fighting or avoiding a fight, bear in mind that in future versions, the sprite-graphics may change (eg. if a graphics-set is drawn for a higher resolution). This means that you should not rely on pixel-accurate collisions or collision-avoidance.

+ If the level's sprite-pool is too small, the taps will dry up, and if it is too large, the level may not work on machines with limited RAM. If one level in a level-group has an extremely large sprite-pool, the player with a machine with limited RAM will not be able to complete it and advance to the other levels (unless they know their passwords).

+ Do not make the player rely on the music for cues, as when the level-speed changes, the music-speed changes at a different rate. Likewise, don't rely on the background either in case parallax scrolling is ever implemented.



KEYBOARD SHORTCUTS:


Global keyboard shortcuts:

'=':	Exit Chickens immediately (although you will be asked for confirmation if playing a game or editing an unsaved level).

If 'SHIFT' is held down, the left mouse button will act like the right mouse button (this is useful on mice that only have a single button).
If 'CTRL' is held down, the left mouse button will act like the right mouse button (this is useful on mice that only have fewer than three buttons).


Front-end keyboard shortcuts:

'P' or 'ENTER':	Go to the submenu for playing the game (must be in the main menu).
'B' or 'BACKSPACE' or 'CAPS-LOCK':	Return to the main menu when in the submenu for playing the game.

'F1'-'F5':	Play one of the built-in groups (must be in the submenu for playing the game.).
'L':	Load and Play (must be in the submenu for playing the game).

'C': 	Construction-set.
'K':	Credits screen.
'A':	'About' dialog.
'ESC':	Quit Chickens.


Game keyboard shortcuts:

'SPACE':	Pause game.
'ESC':		Quit game.

'I':		Brings up a dialog with the level-text and some other pieces of information about the level.

'DOWN ARROW':	Increase (or decrease if 'invertmousewheelspeedchangedir' is set) the speed at which the level is running at (equivalent to moving the mousewheel down). Rate of change quadruples if 'SHIFT' held down.
'UP ARROW':	Decrease (or increase if 'invertmousewheelspeedchangedir' is set) the speed at which the level is running at (equivalent to moving the mousewheel up). Rate of change quadruples if 'SHIFT' held down.
'Z':	Restore level speed to minimum level speed (equivalent to pressing the middle mouse-button).
'X':	Set level speed to it's maximum value (equivalent to pressing the fourth mouse-button).

NUMPAD-keys:	When playing levels larger than a screen, pressing the keys on the numeric keypad now scrolls the screen in the direction of the number-key relative to the position of the '5' key (on laptops, 'Num-Lock' must be enabled)

'BACKSPACE' (or 'CAPS LOCK'): Release all eggs currently being delayed (equivalent to pressing the right mousebutton).
'ENTER':	When the mouse-cursor is over a changeable object, pressing 'ENTER' changes the object (equivalent to pressing the left mousebutton).

'W':		Scroll back to the level's starting scroll-position.

'CTRL+K':	Save an image of the entire level in play (not including the status-area). The image is saved as chlvimxx.pcx in the directory Chickens was launched from.


Construction-set (level editor) keyboard shortcuts:


'F1':	Select Layer #1 in the layer-select area.
'F2':	Select Layer #2 in the layer-select area.
'F3':	Select Layer #3 in the layer-select area.
'F4':	Select Layer #4 in the layer-select area.

'F5':	Select the currently-selected pipe in the "Ordinary pipes" menu (holding down 'SHIFT' brings up the "Ordinary pipes" menu).
'F6':	Select the currently-selected pipe in the "Command pipes" menu (holding down 'SHIFT' brings up the "Command pipes" menu).
'F7':	Select the currently-selected pipe in the "Interchange pipes" menu (holding down 'SHIFT' brings up the "Interchange pipes" menu).
'F8':	Select the currently-selected obstacle in the "Duck obstacles" menu (holding down 'SHIFT' brings up the "Duck obstacles" menu).
'F9':	Select the currently-selected obstacle in the "Ordinary obstacles" menu (holding down 'SHIFT' brings up the "Ordinary obstacles" menu).
'F10':	Select the currently-selected obstacle in the "Arrow obstacles" menu (holding down 'SHIFT' brings up the "Arrow obstacles" menu).

'E':	Toggle 'Erase' mode (Equivalent to pressing the 'erase' button).
'R':	Toggle "Random tile" mode (Equivalent to pressing the "Random tile" button).

'ALT+R':	Draw the currently selected tile at a random position (equivalent to pressing the "Random position" button). Hold down 'SHIFT' while holding down 'ALT+R' to continuously draw the carried object at random positions.


'/' and '\':	Flip the selected tile or obstacle.
'PGUP' and 'PGDN':	Rotate the selected tile or obstacle (Holding down 'SHIFT' makes sure the rotation is at least 90 degrees).

'CTRL+A': Select the entire level.
'ESC': Cancel selection / select nothing. Equivalent to pressing the right mousebutton on a part of the controls-area that is not a control.

'DEL':	Delete the currently selected area.
'CTRL+X':	Cut the currently selected area and store in 'clipboard'.
'CTRL+C':	Copy the currently selected area and store in 'clipboard'.
'CTRL+V':	Paste the contents of the clipboard at the selected square and overwrite the existing contents of the pasted area (a square must be selected for this to work).
'CTRL+U':	Paste the contents of the clipboard at the selected square and attempt to merge with the contents of the existing area (a square must be selected for this to work).

'S': Switches the interchange or flips the obstacle in the selected square.

'F': Flood-fills a length of pipe that has a segment at the currently selected layer of the currently selected square with the currently selected tile-type.


NUMPAD-keys:	Used to lay pipes when using the 'fast pipe-lay mode' in the direction of the number-key relative to the position of the '5' key on the numeric keypad (on laptops, 'Num-Lock' must be enabled).

'ALT+NUMPAD-5':	Cycle through the valid object-types for the object being carried by the mouse (the carried object).

'ALT+NUMPAD-0':	Cycle through the valid object-types for the tile in the selected layer in the selected square. Equivalent to pressing the fourth mouse-button (or left mouse-button + 'SHIFT' + 'CTRL') (Reminder: Keys F1-F4 can be used to select the layer).


'CTRL+P':	Level information / group information / statistics / etc.

'W':		Scroll back to the level's starting scroll-position.
'CTRL+W':	Set the level's starting scroll-position to where the level is currently scrolled.

'I':		When in the "Select Level" dialog, brings up an information dialog about the level currently chosen in the "Select level" dialog.

'CTRL+T' or 'ENTER':	Test the level.

'CTRL+L':	Load Group.
'CTRL+S':	Save Group.
'CTRL+E':	Bring up the level-chooser dialog for the current group.
'CTRL+Q':	Quit/Exit construction-set.

'CTRL+K':	Save an image of the entire level (not including the construction-set controls). The image is saved as chlvimxx.pcx in the directory Chickens was launched from.

'CTRL+Z', 'CTRL+Y': Undo/Redo. Note that not all actions can be undone.

'SPACE' or 'ESC':	Get out of a menu.



TWEAKING:

There is a file called 'chickens.ini' which contains all the configuration settings used by chickens. A brief description of each setting is given next to each setting in the INI file. Be warned that unless you know what you are doing, you could cause Chickens to malfunction. If you do make a mess of the INI file, copy a fresh version of the INI file over your existing INI file. If the INI file is being edited, Chickens must be re-started for the changes to take effect. Here are some selected values to tweak (a few more are mentioned in the FAQ).

'iswindowed': Set to 0 to run in fullscreen, and 1 to run in Windowed mode. Be warned that in windowed mode, there are a few outstanding issues with scrolling levels that are larger than the screen. The workaround is to try and position the mousecursor as close to the edge as you can, and then slowly move the mousecursor off the window. Or alternatively, when playing the game, pressing the keys on the numeric keypad now scrolls the screen in the direction of the number-key relative to the position of the '5' key. Note that on laptops, 'Num-Lock' must be enabled for scrolling with the keyboard to work.

'invertmousewheelspeedchangedir': Reverses the direction the mousewheel/arrows must be moved/pressed to increase/decrease the speed the level is running at.

'invertmousewheelrotatedir': In the level-editor, changes the direction that the object being carried by the mouse (the carried object) will rotate in when the mousewheel/keyboard is used.

'enabletooltips': Set to '0' to disable tooltips and '1' to enable them.

'tooltiptimetodisplay': Set this to the number of ticks to wait before a tooltip is displayed.

'windowedmodesizemultiplier':  When in windowed mode, this integer value is the value to multiply the screen dimensions by (the area size increases by the square of this amount). When set to 1, the dimensions are the same as an ordinary Chickens window and no zooming takes place. This is useful for when running in windowed mode using a monitor with a high resolution and the Chickens window becomes too small. Any number other than 1 will slow down Chickens. Note that on some platforms, Chickens will not start if the resulting resolution is bigger than the current desktop resolution. Also, setting this to '0' will create a black hole.



TROUBLESHOOTING:

For a troubleshooting guide giving answers and solutions to common questions and problems, please consult the FAQ ( faq.txt )



CREDITS:


Andrei Ellman:
  Concept
  Game-design
  Programming
  Level-design
  Sound effects
  Project-management
  User-interface
  Storyline
  Documentation
  Game-testing
  Additional graphics
  DOS port
  Windows port

Dennis Busch:
  Graphics
  Animations
  Game-testing

Johan Halmen:
  Music
  Game-testing
  Mac port

Martijn van Iersel:
  Level-design
  Game-testing
  Feedback

Nils Fagerburg:
  Level-design
  Game-testing
  
'Stryker'
  Level-design

Michael Faerber:
  Game-testing
  Linux port

Frank Drebin:
  Linux port

Otto Halmen:
  Mac port

Additional thanks go to:
  Tobias Scheuer
  The various free sound-effect archives
  And you for enjoying this game.


Powered by:
  Allegro
  AEGUI
  PMASK
                                




THE BIT AT THE END:

This is only a pre release version of chickens, so expect some improvements in the future.

For more information about Chickens and where to download the latest updates, visit the website at: http://software.wackonet.net/chickens/

To find out what other platforms Chickens is available for, check the website.


Happy egg-laying...



AE.	20/1/2019

ae-a-chickens
wacko
wackonet
ten

(to get email address, reverse the contents of the last line, concatenate the lines with an @ for the first concatenation and a . for the next two concatenations.)

