| ! "BannerPause.inf" Library extension for Inform 6.21 Library 6/10 | |
| ! | |
| ! Implemented by Jay Goemmer (downbelow@ltlink.com), 16 Dec 2002. | |
| ! | |
| ! | |
| ! This source code will enable the Inform implementor to "pause" the | |
| ! accompanying "Banner2" routine before displaying a game's initial | |
| ! location and drawing the status line. It's been hacked from the | |
| ! "Banner" routine in the original "Parserm.h" Inform library file. | |
| ! | |
| ! Please send any comments or suggestions you may have to the | |
| ! address above. Thanks! | |
| Serial "021216"; | |
| Release 1; | |
| Constant Story "BANNER PAUSE"; | |
| Constant Headline "^^An Inform Source Code Example | |
| ^Implemented by Jay Goemmer (downbelow@@64ltlink.com) | |
| ^^^"; | |
| ! See "BannerPause" routine. Insert this line in your .inf source | |
| ! code file before including "Parser.h" | |
| Constant BANNER_PAUSE; | |
| Include "Parser"; | |
| Object LibraryMessages ! Include between Parser and VerbLib | |
| with | |
| before | |
| [; Prompt: print "^> "; rtrue; | |
| ]; | |
| Include "Verblib"; | |
| ! Banner2 routine -- Hacked from "Verblibm.h" (Library 6/10). | |
| ! | |
| ! Insert after "Verblib.h" and before "Grammar.h" | |
| [ Banner2 i; | |
| if (Story ~= 0) | |
| { | |
| #IFV5; style bold; #ENDIF; | |
| print (string) Story; | |
| #IFV5; style roman; #ENDIF; | |
| } | |
| if (Headline ~= 0) | |
| print (string) Headline; | |
| print "Release ", (0-->1) & $03ff, " / Serial number "; | |
| for (i=18:i<24:i++) print (char) 0->i; | |
| print " / Inform v"; inversion; | |
| print " Library ", (string) LibRelease, " "; | |
| #ifdef STRICT_MODE; | |
| print "S"; | |
| #endif; | |
| #ifdef INFIX; | |
| print "X"; | |
| #ifnot; | |
| #ifdef DEBUG; | |
| print "D"; | |
| #endif; | |
| #endif; | |
| new_line; | |
| new_line; ! Added 2 more lines -- one here... | |
| #ifdef BANNER_PAUSE; ! Making Banner pause before 'Looking At Opening Room.' | |
| BannerPause(); | |
| #endif; | |
| new_line; ! ...and one here, so it looks better -- 14 Dec 2002. | |
| ]; | |
| Object Opening_Room "Opening Room" | |
| with | |
| description "^ The opening room's description is displayed first, and | |
| then the status line is printed. That's pretty much all there is to | |
| this programming example, so you may ~quit~ at any time.", | |
| has light; | |
| [ Initialise; | |
| Location = Opening_Room; | |
| print "^^ Usually, the best storytellers don't tell you the end | |
| of the story first. They'll wait to reveal certain details until | |
| the point in the story which will have the greatest dramatic | |
| impact. | |
| ^^ Interactive fiction implementors are no exception. This | |
| ~BannerPause~ programming example will allow you to place a ~MORE~ | |
| prompt after printing the Inform ~Banner~ routine -- and delay | |
| the initial appearance of the game's opening location. | |
| ^^ If you have any comments, please e-mail me at the address | |
| below. Thanks! | |
| ^^^"; | |
| Banner2(); ! "Calls" modified "Banner" routine above. | |
| return 2; ! Prevents "standard" Inform banner from printing. | |
| ]; | |
| Include "Grammar"; | |
| ! Insert the following "BannerPause" routine in your .inf source | |
| ! code file after including "Grammar.h" | |
| ! Pauses Banner2 before "looking at" opening room. | |
| [ BannerPause i; ! "ClearScreen" routine minus "erase window" command. | |
| style roman; ! (Doesn't "wipe" upper and lower windows.) | |
| print "^[MORE]"; | |
| do { @read_char 1 0 0 i; } until (i==32 or 10 or 13); | |
| print "^"; | |
| ]; | |
| Verb meta "help" "hint" "hints" "menu" "menus" "about" "thanks" "credits" | |
| * -> Help; | |
| [ HelpSub; | |
| print "^ Obviously, the best way to use this programming example is to paste | |
| it into the existing source code for the game to which you'd like to add this | |
| ~BANNER PAUSE~ option."; | |
| style bold; | |
| print "^^ Special thanks to Andrew ~Zarf~ Plotkin for pointing out, ~If you | |
| want the banner message to contain extra newlines, hack the library Banner | |
| routine. I mean, once you've decided to mess with library code...~ | |
| ^^(rec.arts.int-fiction, 27 Jan 2003)"; | |
| style roman; | |
| print "^^^ Intriguing, since that was the first Inform library hack I'd done | |
| -- just six weeks before. (chuckling) | |
| ^^"; | |
| ]; | |
| End; | |
Xet Storage Details
- Size:
- 4 kB
- Xet hash:
- 06d7986fc2c3e05b66a50a2673ecdb14da8d89fffbd492c48d96b7f1b15ea252
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.