_____________________________________________________________ __W_______E_______L_______L_______T_______R_______I_______X__ © Copyright 1990 by Gary W. Milliorn WellTrix is an Amiga® version of the Spectrum Holobyte© program WellTris©. It has most of the features of the original except for the pictures and the copy-protection quiz. It is also perhaps not quite as pretty, but the game itself is fairly playable. Additionally, a number of features of WellTrix are user-programmable, for example, the colors and sounds. WellTrix, for those who have not seen the original, is a quasi- three-dimensional version of Tetris©. The game is played in a well (thus, the name). Playing pieces are formed by combining two, three, four (or more) squares into a shape. _________________________________ __O___V___E___R___V___I___E___W__ WellTrix is a game. Play it and you might enjoy yourself. More than that, you're on your own. Here's what follows: Copyright Starting Out Pieces Moving Pieces Keys Filling Rows Sides Corners Scoring CLI WorkBench THE END _____________________________________ __C___O___P___Y___R___I___G___H___T__ This program is © Copyright 1990, by Gary W. Milliorn. It may be freely redistributed as long as the copyright notice remains intact, and documentation remains together with the program. This program is NOT public domain; no fee may be charged for it other than a reasonable duplication fee. There is no charge for this program, unless you feel it is worth anything. Mostly, just drop me a note on bix ("gmill") if you like it or otherwise. _________________________________________________ __S___T___A___R___T___I___N___G_______O___U___T__ When started, WellTrix displays the title screen. You can select various options from the menus, or can begin playing immediately by selecting the "Start" menu item (you can also begin by just clicking the left mouse button or pressing the space bar). When the games starts, WellTrix creates an empty well and places a playing piece on one of the walls. _________________________ __P___I___E___C___E___S__ The game is played with tiles constructed of 2..5 squares, attached in regular formations. The following list shows, in a way, the pieces which are used, where "[]" represents a filled-in square. 2: [][] 3: [][][] [][] [][] [] [] 4: [][] [][][][] [][][] [][] [][] [][][] [][][] [][] [] [][] [][] [] [] 5: [][][][][] ..etc (there are lots) The level the game is played at determines which pieces will be used: Level 1 only uses pieces with 2..4 squares. Level 2 uses only pieces with 4 Level 3 uses pieces with 2..5 squares. _____________________________________________________ __M___O___V___I___N___G_______P___I___E___C___E___S__ When a piece is in play, use can use the keyboard to move it from side to side on one of the four walls, and you can spin it around a rotation point. After a predefined interval, the piece is dropped one step lower towards the bottom of the well. When the piece hits the bottom of the well-side, it wraps on to the bottom of the well and continues progressing to the opposite side of the bottom, or until it hits another piece (think of it as momentum). Naturally, as the game progresses, the interval between steps becomes shorter and shorter. When a piece is obstructed from moving, a new piece is placed at the top of the well and the next cycle begins. How you move a piece depends upon the NORMAL or CLOCK MODE setting. In "NORMAL" mode, the arrows cause the piece to move up, down, left or right as indicated. When the central point of the piece (the point around which it rotates) reaches the end of the side, you have to change arrow keys. Some people find this confusing, so we have: "CLOCK" mode, in which the right arrow key moves the piece clockwise, regardless of which wall it is on, and the left arrow key moves the piece counter-clockwise. Note that this means that the piece will move opposite the arrow directions when it is on the bottom of the well. This probably sounds more confusing than it really is. _________________ __K___E___Y___S__ ================================================================= | KEY | NORMAL MODE | CLOCK MODE | ================================================================= | <- | Moves piece left on | Moves piece clockwise. | | KP4 | upper or lower well side. | | | J | | | +-------+---------------------------+---------------------------+ | -> | Moves piece right on | Moves piece counter- | | KP6 | upper or lower well side. | clockwise. | | L | | | +-------+---------------------------+---------------------------+ | ^ | Moves piece up on left | Spins piece clockwise. | | KP8 | or right side wall. | | | I | | | +-------+---------------------------+---------------------------+ | v | Moves piece down on left | Drops piece to bottom of | | KP2 | or right side wall. | well. | | M | | | +-------+---------------------------+---------------------------+ | KP5 | Spins piece clockwise. | | K | | +-------+---------------------------+---------------------------+ | ' ' | Drop piece to bottom of well. | | Enter | | +-------+---------------------------+---------------------------+ | ESC | Terminates current game, returns to main screen. | +-------+---------------------------+---------------------------+ | HELP | Brings up help window. | +-------+---------------------------+---------------------------+ | F1 | Dumps well contents. | +-------+---------------------------+---------------------------+ | F10 | Increase speed level. | +-------+---------------------------+---------------------------+ | DEL | If SHIFT held, clears all side walls and resets score.| +-------+---------------------------+---------------------------+ | N | Toggle 'Next' display. | +-------+---------------------------+---------------------------+ | P | Pause program. | +-------+---------------------------+---------------------------+ _________________________________________________ __F___I___L___L___I___N___G_______R___O___W___S__ When the piece is placed at the bottom of the well, if any of its component squares completely fill in a line (a row and/or a column) at the bottom of the well, that line is removed and the adjacent rows or columns move inward toward the center. Think of the bottom as being divided into quadrants, like so: A | B OOOO|OOOO OOOO|OOOO OOOO|OOOO OOOO|OOOO ------+------ OOOO|OOOO OOOO|OOOO OOOO|OOOO OOOO|OOOO D | C As rows and columns are deleted, rows and columns furthest from the center of the well are moved in, extending on the "momentum" concept used when individual pieces are in motion. For example: Before After A | B A | B ....|.... ....|.... ....|..OO ....|.... ....|...O ....|..OO OOOO|OOOO ....|...O ------+------ ------+------ OOOO|OOOO ....|...O ....|...O ....|..O. ....|..O. ....|.OOO ....|.OOO ....|.... D | C D | C In this case, the horizontal lines near the center were deleted, so the horizontal lines in quadrants AB and CD are moved towards the center. A similar case can be shown for vertical lines. Note that it is possible to fill horizontal and vertical lines at the same time. _____________________ __S___I___D___E___S__ When a piece as moved as far as is possible, if any of its component squares are still on the side walls, that wall is "locked" for the next three pieces. A locked wall is drawn in red, and you cannot move a piece on that side. As long as you manage to place at least one of the next three pieces completely on the bottom, you can keep playing. If you don't, and lock up all four walls, the game is over. This is the usual way games end, although they will also end if you stack pieces all the way up to the top of a side, much like in Tetris ©. When pieces are trapped on locked sides, they remain there until the side is unlocked. When that happens, the squares that comprised the original piece are separated, and are dropped to the bottom of the well, but ONLY if there is room. Otherwise, they remain frozen on the wall until room is made for them on the bottom. A piece fragment on one of the sides does not cause it to lock up, but it will interfere with the motion of the piece you are currently moving. If your piece rests on a fragment, it will cause the side wall to lock up as usual. _____________________________ __C___O___R___N___E___R___S__ When a pieces drops to the bottom of the well with parts of the piece on two side walls, the piece will be broken up into two separate pieces when it hits the bottom, and each separate piece will travel towards the opposite side of the bottom as usual. The author of the original program calls this a "feature", although one might suspect it was discovered after writing the program, not before. It does make it possible to place a piece that you could not otherwise add to the bottom without locking a side. _____________________________ __S___C___O___R___I___N___G__ You get points for each piece placed, and more if it causes a row or column to be filled. Scoring increases with the play level you select and with the speed. Deleting multiple rows and columns scores higher than doing each one individually. Every ten lines deleted advances to the next speed level, and may optionally bring up a bonus piece (bonus pieces are not subject to the normal geometric restrictions -- you'll see). If a bonus piece is placed on the bottom of the well without locking any of the sides, you get the bonus points. And so on. _____________________________ __O___P___T___I___O___N___S__ "All programs should have options. Otherwise, they would be completed in advance of schedule and have fewer bugs." _____________ __C___L___I__ WellTrix may be run from the CLI, but it only supports one option. When started from the CLI, the argument syntax is as follows: WellTrix [fontname[(.|/)size]] where the fontname is the name of the font to use with the program, followed by an optional point size (if not 8). Examples: Welltrix -- use system font. Welltrix Helvetica/11 -- use Helvetica font, 11 point. Welltrix clean.9 -- use Clean font, 9 point. Font requests are ignored if the height is greater than 11 points. _____________________________________ __W___O___R___K___B___E___N___C___H__ Welltrix may also be run from WorkBench. It uses the icon tooltype array to allow specifying the following (innumerable) options: COLOR0 -- set the background color to the value indicated by the supplied 6 hex digits. Ex: COLOR0=000000 (black, the default). COLOR1 -- same as COLOR0, sets the wire-frame colors. COLOR2 -- same as COLOR0, sets the filled-square colors. COLOR3 -- same as COLOR0, sets the side-locks. FONT -- set the program font (otherwise, the system font is used, or Topaz/9 or Topaz/11 if the system font is too large). Fonts are spec'd as: "fontname[(/|.)size]", eg. "Topaz/9" or "Geneva.9". LEVEL -- set the initial skill level setting, a value from 1..3. MOVE -- set the movement mode, one of two values: "NORMAL" or "CLOCK". NEXT -- enables the "NextPiece" display when set to "ON". SCOREFILE -- location to save high-score file, usually the current directory, or "S:WellTrix.Scores". SOUND -- enables the sound effects when set to "ON". An internal default sound is used for each sounds effects file that is not supplied or cannot be read. SOUND_BONUS -- filename of sound to be played when a the bonus round begins or when the bonus points are scored. SOUND_DROP -- filename of sound to be played when a piece drops to the bottom of the well. SOUND_ERROR -- filename of sound to be played when an error occurs. SOUND_FILLED -- filename of sound to be played when one or more rows or columns have been filled. SOUND_OVER -- filename of sound to be played when the game begins or ends. SOUND_SIDES -- filename of sound to be played when any of the side walls changes state (when it locks or unlocks). SOUND_SPEED -- filename of sound to be played when the the next level is achieved and the game is speeding up. SPEED -- set the initial speed setting, a value from 1..6. WINDOW -- window definition for debugging. VERBOSE -- enables debugging messages if "ON". VOLUME -- set the sound amplitude, a value from 0..64. 0 is quietest. There are sensible defaults for all of these options, including sound, so most of you will not have to mess with this. However, changing the sound effects can be amusing. Be careful that you effects are not too lengthy, because the sound server finishes each sound before proceeding -- this can cause wierd latencies between an action and its sound effect. _______________________________________________________________________________ T H E E N D Written, Produced and Directed by Gary W. Milliorn Original Program Concept........ Alexey Pajitnov Assistant Director.............. Kristin Hughes Sound Editor.................... Perfect Sound® Sound Consultant................ Larry Stell Production Designer............. Gene Muhleysen Production Associates........... Kristin Hughes Arnaldo Cruz Mark Harris Jan Snyder Key Grip........................ Kristin Hughes Filmed in....................... Amigachrome Edited on....................... Z2.7 Stunts.......................... Manx Aztec ANSI C, 5.0a, 16 bit mode. Special Thanks to............... Leo Schwab for "proc.zoo". Richard L. Stockton for "soundc.zoo". Any resemblance to actual programs, names, or characters, whether living, dead or undead, is purely coincidental. So there. _____________________________________________________________ __W_______E_______L_______L_______T_______R_______I_______X__ © Copyright 1990, Valan Inc. \ / \ / \ | / \ / /\ | /\ /\ / \/ / \ | / \ / \/