Version 3 of Basic Screen Effects by Emily Short begins here. "Waiting for a keypress; clearing the screen. Also provides facilities for changing the foreground and background colors of text, when using the z-machine. These abilities will not function under Glulx." Section 1 - Spacing and Pausing 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() -); Include (- [ I7ScreenHeight i screen_height; i = 0->32; 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