X M R I S V1.01 (C) 1992 Nathan Sidwell This program is copyright (C) 1992 Nathan Sidwell. This software and documentation is in the public domain. Permission is granted to distribute and compile verbatim copies of this software for non-commercial, non-profit use, without fee. The software may be modified, provided that both the above copyright notice and this permission notice appear. No guarantee is given as to the robustness or suitability of this software for your computer. SCENARIO Xmris is a version of the arcade game Mr Do, which will run under the X windowing system. You control a gnome, who can walk around a garden, along paths already marked, or create new paths wherever you wish. You also have a ball, which can be thrown in the direction you're facing, towards the gnome's feet. Points are scored for collecting cherries (if you collect 8 cherries without stopping, you get a bonus), killing monsters (by squashing them, or throwing the ball at them), and collecting the prize left when all the monsters have come out of their den. Extra lives are obtained by filling in the 'EXTRA' monsters at the top of the screen. One of these comes out every 5000 points, and also when you get the prize, along with 3 drones. Killing the EXTRA will kill the drones too. When you collect the prize, the normal monsters freeze, until the three drones are dead. Beware things go faster after that! When all the normal monsters are killed or all the cherries collected, or you have got the final EXTRA monster, you advance to the next screen. You can kill the monsters by throwing the ball at them, or dropping the apples on them. You get more points for squashing them. The EXTRA monsters and its drones, can eat the apples if they're walking towards it when they meet. You die by colliding with a monster (unless its eating an apple, in which case no harm done), or by being squashed be a falling apple. GAME CONTROLS The gnome can be controlled by the mouse or keyboard, this is selected when you start a new game. The gnome walks towards the mouse, and throws the ball when you press a button. You can move the mouse at right angles to the gnome's direction while its walking, the gnome continues towards the previous destination, before turning towards the new one. Mouse control is not that accurate for fine control of the gnome (I don't use it). Keyboard control is by 'z' and 'x' for left and right, and '\'' and '/' for up and down. The ball is thrown with the space bar. Pressing more than one key, will turn the gnome appropriately at the next intersection, so you can go round corners by pressing the new direction key before releasing the old one. If you try to go in a direction not possible, the gnome will move towards the nearest intersection or in the direction it was going, depending on how near to an intersection it was. The game can be paused by iconifying it (when your boss walks in), or by pressing 'p'. When de-iconified, the game remains paused. To continue press space. When paused, you can abort the game by pressing 'q'. If the game is displaying the demo screens, 'q' will quit the game entirely. OPTIONS -help Lists command arguments and version number -display Display to run on -font Text font name -rv Reverse video -bw Force black and white -iconic Starts iconified -mris -msit So not to be accused of gender bias, xmris can also be run as xmsit. The gender of the game is taken from the program name (mris or msit) and may be over ridden by two of the following switches. The game is known as Mr Is because the arcade game was masculine. (Happy now Geoff?) The argument list is also fed to XSetStandardProperties, I don't know what this does. PLAYING THE GAME The game works best with all other processes asleep. If another process gets too much processor the animation will be jerky, and the load line along the bottom will start to grow. Because an interrupt is used to control the frame rate, the animation is smoother than with xchomp. You probably want to position the pointer at the bottom of the window, so that it doesn't interfere with the board. You'll notice it flicker if one of the sprites moves under it. BUGS The game is always in black and white, I haven't got round to doing colour sprites yet, so the -bw argument is superfluous. The -iconic argument has no effect. (I don't know how to get it to work.) Fatal XIO errors are not handled gracefully. Quiting the game by using your window manager results in big error message. I don't know how to trap this. The program was written with a folding editor, it might be hard to find your way around without one. In order to get it to compile correctly with both K&R C and ANSI C, I've used several macros to deal with the differences in function prototyping and argument lists. These produce either proper K&R declarations or proper ANSI ones. I did have mixed declarations, with the correct promotions taken care of, but that doesn't work well for the one varargs function. It might make it hard for things like ctags to work. Maybe I'll revert to the mixed declarations. Please report modifications and other bugs, so that they can be considered for inclusion in later releases (especially true of syste specific stuff). email to nathan@inmos.co.uk Have fun. Nathan Sidwell INMOS UK | | nathan@inmos.co.uk DoD#0390