Biplatform Screen Effects by Eric Eve begins here. "Waiting for a keypress; clearing the screen; changing the foreground and background colors of text. (A Glulx Compatible version of Basic Screen Effects by Emily Short)" Include (- [ KeyPause i; i = KeyCharPrimitive(); rfalse; ]; [ SPACEPause i; while (i ~= 13 or 31 or 32) { i = KeyCharPrimitive(); } ]; [ GetKey i; i = KeyCharPrimitive(); return i; ]; -) To clear the screen: (- ClearScreen(0); -) To clear only the main screen: (- ClearScreen(2); -) To clear only the status line: (- ClearScreen(1); -). To wait for any key: (- KeyPause(); -) To wait for the SPACE key: (- SPACEPause(); -) To decide what number is the chosen letter: (- GetKey() -) To pause the game: say "[paragraph break]Please press SPACE to continue."; wait for the SPACE key; clear the screen. To center (quote - text-routine): (- CenterPrintComplex({quote}); -); To center (quote - text): (- CenterPrintComplex({quote}); -); To center (quote - text-routine) at row (depth - a number): (- CenterPrint({quote}, {depth}); -); To center (quote - text) at row (depth - a number): (- CenterPrint({quote}, {depth}); -); To stop game abruptly: (- quit; -) Include (- #ifndef printed_text; Array printed_text --> 64; #endif; [ CenterPrint str depth i j; font off; i = ScreenWidth(); PrintToBuffer(printed_text, 63, str); j = (i-(printed_text-->0))/2; j = j-1; MoveCursor(depth, j); print (I7_string) str; font on; ]; [ CenterPrintComplex str i j; font off; print "^"; i = ScreenWidth(); PrintToBuffer(printed_text, 63, str); j = (i-(printed_text-->0))/2; spaces j-1; print (I7_string) str; font on; ]; -) To decide what number is screen width: (- ScreenWidth-); To decide what number is screen height: (- I7ScreenHeight() -); To say default letters: (- SetColour(1, 1); -) To say red letters: (- SetColour(3, 0); -) To say green letters: (- SetColour(4, 0); -) To say yellow letters: (- SetColour(5, 0); -) To say blue letters: (- SetColour(6, 0); -) To say magenta letters: (- SetColour(7, 0); -) To say cyan letters: (- SetColour(8, 0); -) To say white letters: (- SetColour(9, 0); -) To say black letters: (- SetColour(2, 0); -) To turn the background black: (- SetColour(0, 2); -); To turn the background red: (- SetColour(0, 3); -); To turn the background green: (- SetColour(0, 4); -); To turn the background yellow: (- SetColour(0, 5); -); To turn the background blue: (- SetColour(0, 6); -); To turn the background magenta: (- SetColour(0, 7); -); To turn the background cyan: (- SetColour(0, 8); -); To turn the background white: (- SetColour(0, 9); -); To show the current quotation: (- ClearBoxedText(); -); Include (- [ I7ScreenHeight i screen_height; i =ScreenHeight(); if (screen_height == 0 or 255) screen_height = 18; screen_height = screen_height - 7; return screen_height; ]; [ ClearBoxedText i; if (I7_box) { for (i=0: I7_boxes_appeared-->i: i++) if (I7_boxes_appeared-->i == I7_box) { I7_box = 0; return; } I7_boxes_appeared-->i = I7_box; I7_box(); I7_box = 0; } ]; -) To deepen status line to (depth - a number) rows: (- DeepStatus({depth}); -); To move cursor to (depth - a number): (- I7MoveCursor({depth}); -) To right align cursor to (depth - a number): (- RightAlign({depth}); -) Include (- [ DeepStatus depth i screen_width; StatusLineHeight(depth); screen_width = ScreenWidth(); style reverse; #ifdef TARGET_GLULX; ClearScreen(1); #ifnot; for (i=1:i