home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1992-04-16 | 11.6 KB | 213 lines |
- DEFINITION MODULE attacksgraphics;
-
-
- (* I am using the data hiding capabilities of modula-2 to simplify my *)
- (* life for this project. Anything that the main or other routines could *)
- (* want to do graphically will be through routines declared here. To *)
- (* sum, this is the heart of the graphics routines, simplified to only *)
- (* the logical necessities. *)
- (* *)
- (* Scott Biggs *)
-
-
- FROM header
- IMPORT boardtype, playertype, squaretype, boardrange, pointercode,
- movetype, printmsgtype;
- FROM SYSTEM
- IMPORT ADDRESS;
- FROM Intuition
- IMPORT WindowPtr;
-
-
- (**************************************************************************)
- PROCEDURE InitializeScreen() : BOOLEAN;
-
- (* Starts the graphix running. *)
- (* Sets up all the graphics variables AND draws the first graphics *)
- (* that will be presented. It returns true IF all the actions worked, *)
- (* false otherwise. *)
- (* *)
- (* INPUT *)
- (* n/a *)
- (* *)
- (* OUTPUT *)
- (* Returns a boolean value that tells IF the operation was *)
- (* succussful or not. If successful, the screen (along *)
- (* with the accompanying graphics) is started. *)
-
-
- (**************************************************************************)
- PROCEDURE CleanupGraphics;
-
- (* Stops the graphix AND deallocates all graphix allocated *)
- (* memory. It assumes that the graphics HAS been succussfully initi- *)
- (* ated. *)
- (* *)
- (* INPUT *)
- (* n/a *)
- (* *)
- (* OUTPUT *)
- (* n/a *)
-
-
-
- (**************************************************************************)
- PROCEDURE ShowAbout;
-
- (* Simply displays a message about the programmer and then waits for *)
- (* a mouse click to then erase this new display and return to the old *)
- (* one. *)
-
-
-
- (**************************************************************************)
- PROCEDURE ChangePointer (code : pointercode);
-
- (* This changes the mouse pointer. The code determines what the *)
- (* pointer is changed to. *)
- (* *)
- (* INPUT *)
- (* code This variable is of the enumerated type, *)
- (* pointercode. It consists of RedCircle, *)
- (* BlueCircle, and Default. The Default code *)
- (* tells this routine to restore the pointer *)
- (* to whatever it was when the program was *)
- (* started. *)
- (* *)
- (* OUTPUT *)
- (* The mouse pointer is immediately changed to the desired *)
- (* pointer. *)
-
-
- (**************************************************************************)
- PROCEDURE PrintMsg (msg : printmsgtype);
-
- (* Prints the message at the top of the screen. This procedure should *)
- (* not be confused with the procedure PrintTurn, which displays who's *)
- (* turn it is to play. *)
- (* *)
- (* INPUT *)
- (* msg This is which message to display. *)
- (* *)
- (* OUTPUT *)
- (* The screen is changed to display the desired message. *)
-
-
- (**************************************************************************)
- PROCEDURE ShowScore (redscore : CARDINAL; bluescore : CARDINAL);
-
- (* Displays the scores. *)
- (* *)
- (* INPUT *)
- (* redscore The number of squares occupied by the red *)
- (* player. *)
- (* *)
- (* bluescore The number of squares occupied by the blue *)
- (* player. *)
- (* *)
- (* OUTPUT *)
- (* The screen is modified to display the scores. *)
-
-
- (**************************************************************************)
- PROCEDURE PrintTurn (player : playertype);
-
- (* Displays whose turn it is by the message on the top of the *)
- (* screen *)
- (* *)
- (* INPUT *)
- (* player The player whose turn it now is. *)
- (* *)
- (* OUTPUT *)
- (* The screen is modified to display whose turn it is. *)
-
- (**************************************************************************)
- PROCEDURE DrawBoard (board : boardtype);
-
- (* Replaces the current display with the given board. *)
- (* *)
- (* INPUT *)
- (* board A variable OF boardtype that describes the *)
- (* contents of every location of a board. *)
- (* *)
- (* OUTPUT *)
- (* The screen is modified to display the contents of the *)
- (* input data. *)
-
-
- (***********************************************************************)
- PROCEDURE DrawSquare (xloc : boardrange; yloc : boardrange;
- square : squaretype);
-
- (* This routine modifies only a single square, rather than the *)
- (* whole board like the DrawBoard routine does. Considering the upper *)
- (* left corner as square (1,1), this routine will replace the given *)
- (* square with the specified item (either a block, empty, red, or *)
- (* blue). *)
- (* *)
- (* INPUT *)
- (* xloc, yloc These two numbers describe the location *)
- (* of the square to change. *)
- (* *)
- (* square This tells the routine what to change *)
- (* the square to. *)
- (* *)
- (* *)
- (* OUTPUT *)
- (* The display is change so that only the square *)
- (* indicated looks like the new type. *)
-
- (***********************************************************************)
- PROCEDURE HighlightSquare (xloc : boardrange; yloc : boardrange;
- player : playertype);
-
- (* This routine highlights the given square in the color of the *)
- (* specified player. It is assumed that checking has already been *)
- (* made so that the highlighting makes sense. *)
- (* *)
- (* INPUT *)
- (* xloc, yloc These two numbers describe the location *)
- (* of the square to change. *)
- (* *)
- (* player This tells the routine what colors to *)
- (* use. *)
- (* *)
- (* *)
- (* OUTPUT *)
- (* The display is change so that only the square *)
- (* indicated looks highlighted. *)
-
-
- (***********************************************************************)
- PROCEDURE UnHighlightSquare (xloc : boardrange; yloc : boardrange;
- player : playertype);
-
- (* This routine UNhighlights the given square. It undoes the *)
- (* effects of HighlightSquare. Similarly, it assumes that checking *)
- (* has already been done so that unhighlighting makes sense. *)
- (* *)
- (* INPUT *)
- (* xloc, yloc These two numbers describe the location *)
- (* of the square to change. *)
- (* *)
- (* player This is the color of the square to UN- *)
- (* highlight. *)
- (* *)
- (* OUTPUT *)
- (* The display is change so that only the square *)
- (* indicated looks UNhighlighted. *)
-
-
- (***********************************************************************)
- (* !!!!! WARNING !!!!! *)
- (* *)
- (* The stuff after this message should only be imported by the *)
- (* module, ataxxinput. Only that module needs to know about these *)
- (* things! *)
- (***********************************************************************)
-
- VAR
- mywindowptr : WindowPtr;
-
- END attacksgraphics.
-