ifwiki: Library extension This directory contains library extensions for various purposes contributed by members of the IF community. # glulx Glulx-specific Inform library extensions. # old Older versions of some of the files in this directory. # 3phtalk.h menu based conversation system based on Adam Cadre's routines from Photopia (phototalk.inf), modified and object-oriented by David Glasser, then adapted to Triform 1.2 by Hunter Hoke. # AltMenu.h a library extension to create object-oriented menus, by L. Ross Raszewski, version 6 # Aqua.zip A replacement library for WaterElement.h (which handles divisible and mixed liquids, floating objects, and absorbent materials) which compiles more gracefully under Inform 6.30 and which better handles Glulx. By Al Golden, based on Emily Short's library. # AskTellOrder.h a routine for reparsing the player's input, converting input of the form "ASK/TELL THE NPC TO DO SOMETHING" into "NPC, DO SOMETHING", by Irene Callaci. # BannerPause.inf A library extension to allow the introduction of a pause in the printing of the game's initial banner text, by printing a [MORE] prompt. Pressing any key then displays the opening room and status line. Release 1, Serial 021216, written by Jay Goemmer. # CCPL.h A library extention that displays text of the Creative Commons Attribution-NoDerivs-NonCommercial 1.0 license, suitable for use as the license of a freeware IF game. Contains both the short (friendly) and long (legal) forms of the license. Inform module by Roger Firth, version 1.2. # DMenus.zip A menuing system similar to menus.h, but allowing concealed or locked menu items, and (optionally) submenus that are embedded in parent menus. Version 7, by Dave Robinson. # Entry.h A library extension that extends the entry point routine functionality of the standard library, by Brendan Barnwell. # EventList.h A library that provides TADS3 style EventList classes (Shuffled, Cyclic, Stop, Sync, and Distributed) for more realistic conversation systems. EventLists can print text or run a routine from any item in the list. Version 1.00, by Jim Aikin. # ExpertGrammar.h Extensions to the standard Inform grammar incorporating a number of commonly-requested features. Version 0.6, by Emily Short. # FP.h A library providing IEEE 754 conformant floating point arithmetic for the Z-machine. Release 1/2, by Kevin Bracey. # FP.tar.gz A library providing IEEE 754 conformant floating point arithmetic for the Z-machine. Release 1/2, by Kevin Bracey. Archive includes the library, documentation and examples. # Footnote.h an Inform library extension for Inform 5.5 or greater to produce sequentially numbered footnotes, by L. Ross Raszewski, version 2.0 # GPL_for_Inform_src.tar.gz Source code to add the Gnu Public License to a Z-Code game, by Patrick Boylan. # GoNeighbour.h GoNeighbour version 0.20, a library extension to allow to go to adjacent rooms with the syntax "go ``", written by Alan Trewartha. # HelpRoutines.h Routines that give help messages, such as a list of standard Inform verbs, suggestions about what to do at the beginning of a game, and so on. Version 1.0, by Emily Short. # Hints.h a library to produce nicely formatted hints, by L. Ross Raszewski, version 2 # InfAud13.zip InfAud 1.3, a system to allow Zcode and Glulx games to play sound files through an external sound players, written by Donnie E. Russell II. Included are Windows executables, library and example files. # InfAudMusic.zip Example music files for InfAud, by Jesse Ray Lucas. # Info.h a library extension for consultation and conversation, allowing the consult, ask, etc. commands to access a database of topics. Written by Jesse Burneko # Locksmith.h A library that allows better automatic selection of keys following an unlock command, by Emily Short. # ManPro.h a library that allows you to let the player toggle automatic pronoun assignment, by David Glasser # Markup.zip A HTML-like markup extension for Glulx and Z-code, allowing markup of text styles and formatting, inline pictures and hyperlinks (the latter two for Glulx only), by Simon Baldwin. Archive includes the library, example code and the example compiled for both Glulx and Z-code. # Menus.inf an example of using AltMenu.h, by L. Ross Raszewski # Moderator.h A library which provided a Scene class, which can be used to supervise the player's actions in a game with a complex plot. A scene allows entry points to control where the player is allowed to go, trigger events after a certain lapse of time, etc. Written by Emily Short. # NewbieGrammar.h Grammar lines and some verb routines to catch and correct non-standard behavior by new players. Works best with HelpRoutines.h, though that is not a requirement. Version 0.6, by Emily Short. # NewList.zip a customizable replacement for Inform's standard WriteListFrom(), by Andreas Hoppler # NovelLib.zip A library for writing games with a "novel" mode, that is, in the style of the author's 2000 Competition entry "My Angel". Written by Ingold. # NpcAct.zip A framework to ease the NPC creation process, which allows NPCs to interact with one another. Written by Matt Albrecht. # OKBLib.h A library of miscellaneous classes and routines, by Brendan Barnwell. # OKBScrpt.h A library extension to allow branching, menu-based conversations, by Brendan Barnwell. # ObjNameA.h A library extension to allow objects with "a" in their name properties to parse correctly. Version 1.1, by Michael Roy. # QPrint.h QPrint, a mid-string rule printing system, version 1, by Dave Robinson. # Positions.h An extension to allow input such as "take the glasses in the case on the bookshelf". Version 1.1, written by Nathan Schwartzman. # SampleTranscript.h A library which containts two Infocom-style sample transcripts, which can be inserted into a game. By Emily Short. # Scoper.h A library to help determine which rooms are visible from a given location. Version 1.0, written by Daniel Barkalow. # StatusLineColors.inf A library extension that sets the colours of the status bar according to "zones" defined in the game. Colours can be enabled or disabled by the player. Release 1, Serial 030201, by Jay Goemmer and Roger Firth. # StrNames.zip A class that allows for the use of strings as names for an object, getting around the 9-character dictionary-word limitation. Includes a thorough example game. Version 0.2, written by Chipjack. # V6Lib-0_826.zip V6Lib version 0.826, an Inform Library that helps programmers write games for the Version 6 Z-Machine, written by Jason C. Penney. It has support for multiple text windows, images, and sounds. # V6Lib_Manual.pdf Manual for V6Lib in Adobe Acrobat PDF format. # V6Lib_Manual.txt Manual for V6Lib in plain text format. # Verbs.htm A list of the standard verbs found in the Inform 6/10 Grammar.h file, in HTML format, by Brian Uri. # WaterElement.zip A library to handle divisible and mixed liquids, floating objects, and absorbent materials, version 0.95b, by Emily Short. # action.h a library for implementing action menus, version 0.8, by Adam Stark # array.h a library of useful array functions, version 0.1, by Evin Robertson. # betahtml.zip A library to output a HTML script of the game, including user comments, as an aid to beta testing. Version 1.5 by Stas Starkov, based on "betatest.h" by Marnie Parker. # betatest.h a beta testing aid, allowing testers to add comments to the output script. Version 1.02, written by Marnie Parker # blackjack.inf Inform code to add a blackjack dealer to a game. Version 1.1, written by Ashok Desai. # boxclever.h An extension of the standard 'box' statement that allows text to be bold or underlined. Version 1.0, by Roger Firth. # bquote.h An extension to help printing block quoted text for letters, newspaper clippings etc. Version 1.00, by Martin Oehm. # branch.h a class for branching menus, by Chris Klimas (an example for its use is in games/source/inform/once.inf) # calyx_adjectives.h a library to provide a system of 'adnames', words which may be used to refer to objects without themselves implying that the object name has been typed. Release 1, by Miron Schmidt, based on Andrew Clover's Inform 5 library 'adname.h'. # checkout.h Implements a CHECKOUT debugging verb which identifies asymmetric and one-way paths between rooms. Version 1.0 by Roger Firth. # chooo.h An object oriented extension to the ChooseObjects entry point, version 1.0, by Krister Fundin. # classutl.h A collection of class-related helper functions, version 1.0, by Matt Albrecht. # clothes.h A library defining a clothes class for easy clothing handling. Set area, level, and covering for pieces of clothing. Written by Denis Moskowitz and updated by Timothy Groves. # clothing.h a library defining a clothes class for easy clothing handling. Set area, level, and covering for pieces of clothing. Written by Denis Moskowitz. # clothing.inf an example game demonstrating the use of clothing.h # cmap.h a library to allow easy creation of game maps, by Rick Dague # cmap.inf an example game demonstrating the use of cmap.h # compass.h a compass management library to remove the walls, floor and ceilings for outdoor areas, written by Jonathan Rosebaugh. # converse.h a library to generate menu based conversations, version 2.0, by L. Ross Raszewski # daemons.h a library to cause daemons and timers to execute in priority order. Originally by Andrew Plotkin and reworked for Inform 6 by Roger Firth. # debuglib.h a library to allow for easier printing of debugging statements, by John Cater # debugmcs.h A library to implement a time-saving command to check Inform source for bugs caused by missing commas, by Cedric Knight. # diary.h A library that allows a game author to provide a diary and dynamically add and remove pages. Release 1.000226, written by Gunther Schmidl, partly based on code by L. Ross Raszewski. # dirs.h provides a 'dirs' verb that tells you which directions you can go in, version 2.1, by Nicholas Daley # dirs_2.h a library to provide an easy way of adding a 'dirs' or 'exits' verb, by Gunther Schmidl # dirsmap.h Dirsmap version 2.10, by Marnie Parker Adds a 'directions' command to Inform. Depending on the current dirs_style, available exits are shown either with a map or in a sentence. # domenu.h a replacement for Inform's standard DoMenu, version 6.2, by L. Ross Raszewski # doors.h a library making the definition of two-sided doors easier, by L. Ross Raszewski # doors2.h a library to make the parsing of directions for doors easier, by Max Kalus # dump.h Provides debugging verbs DUMP (for displaying parts of the Z-machine memory map) and IS (for reporting what a given number might be). Version 1.1 by Roger Firth. # dunno.h A library to add Infocom-style error messages (e.g. I don't know the word "kludge".) Version 1.1, written by Neil Cerutti and updated for Glulx by Andrew Plotkin. # dynmem20.zip a library for dynamic memory use, version 2.0, by John Cater. Archive includes library code, an example program and documentation. # dynobj.h a library to implement truly dynamic objects, by John Cater # easydoors.h A library extension that allows simple creation of doors, version 3.0, by Andrew MacKinnon. It also has a few extra features (automatic door opening when not locked, and status styles). # elevator.inf An elevator object which the user can control by a call button on each floor or by the buttons in the elevator itself. Version 2, written by Martin Braun # fixedpt.h Routines 16-bit fixed-point math, version 1.0, by Matt Albrecht. # fixedpt.inf Test harness for fixedpt.h, by Matt Albrecht. # fkeys.h A library for enabling the use of function keys, version 1.1, by David Fillmore. # flags.h A module for implementing boolean flags in Inform, written by Adam Cadre # follower.h "Follower Library" release 3, by Gareth Rees and Andrew Clover, updated for use with Inform 6 by Neil Brown. A library providing support for creatures and things that can be followed by the player. # goto.zip a library which implements the "go to ``" verb, written by Toni Arnold. Together with the library "dirs_2.h" this allows Inform games to have the same player movement as Magnetic Scrolls games. Archive includes HTML documentation, a Perl script to convert existing source code, and a converted version of the game "Adventure". # greenbacks.inf Greenbacks, a demonstration of the use of money.h (see below) for US currency, beta release, by Erik Hetzner # gtalk.h A library for Photopia style menu-based conversations, allowing for submenus, and looping and repeating conversations. Version 3.00, written by Greg Boettcher, Krister Fundin and Mark J. Tilford. # gtalk.inf Demonstration game for gtalk.h. # hintsms.h A hint system similar to that used by Magnetic Scrolls, which requires the user to enter codes from the game's manual to obtain the hint, written by Peer Schaefer. # holder.zip An extension that implements 'indirect holders,' tools such as tweezers and pliers that can be used to pick up game objects that, for one reason or another, can't be touched directly. Written by Jim Aikin. # howtoplay.h Implements a HELP verb that displays Fredrik Ramsberg's "How to Play" instructions from his "A Beginner's Guide to Playing Interactive Fiction." If used with Menus, the library displays the instructions in a menu; otherwise, the text is displayed in the main screen. By Michael Coyne. Version 1.3, updated to work with Inform 6.3 and DMenus. # ictype.h An implementation of the ANSI C ctype functions, version 1, by L. Ross Raszewski # imem.h a library to implement run-time allocation of dynamic memory for objects. Version 2.0, by L. Ross Raszewski # imemd.inf a demonstration of imem.h # inform-realtime-hack.tar.gz a modification of the parserm.h file from the Inform library 6/7, allowing real-time text input (in the style of Infocom's Border Zone), by Joe Mason Includes the modified library file and a short example # inform-realtime-hack-610.zip Joe Mason's library modification to allowing real-time text input (in the style of Infocom's Border Zone), updated to Inform library 6/10 by Gunther Schmidl. # infunit.h A test harness for Inform, based on jUnit (a test harness for Java). Version 1.0, by Matt Albrecht. # infunit.inf Test harness for infunit.h, by Matt Albrecht. # isort.h An implementation of the quicksort routine for Inform arrays, version 1.0, by L. Ross Raszewski. # istring.h the Inform string library, version 2.1, providing implementations of the standard ANSI C library string functions, by L. Ross Raszewski # links.h a library to implement linkable objects, e.g. an explosive and a detonator, by Jayson Smith. # links.inf an example demonstrating the use of links.h # longint.h a library to allow signed and unsigned 4 byte integer arithmetic, Release 1. Written by Chris Hall and Francis Irving. # longint.inf an example demonstrating the use of longint.h # longint_dg.h A math library for performing 16 and 32 bit mathematical operations, by David Given. # makemaze.zip Inform source code for makemaze, an Inform program to generate random mazes and output the Inform source for that maze. Written by Ricardo Dague. # manual.h a library to generate browsable text for Z-Machine books and built-in manuals, version 5.0, by L. Ross Raszewski # mapchar.zip A library to map accented letters to their internal character codes for ZSCII or Glulx. Version 0.02, by Wouter ten Brink. # math.h A collection of miscellaneous math functions, version 1.0, by Matt Albrecht. # math.inf Test harness for math.h, by Matt Albrecht. # mathpars.h Grammar parsing routines for big numbers (in decimal, hex, or binary), version 1.0, by Matt Albrecht. # mca.zip A library for "Choose Your Own Adventure" type games. Version 2.22, by Krister Fundin. # menus.h a library extension providing easier and better menus, by Graham Nelson # minform.zip ifwiki: MInform mInform 1.1, a cut-down Inform library for generating small story files. Created by Dave Bernazzani, based on Inform library 6/2. # mistype.h A library to automatically correct minor typing errors by the player. Version 1.24, by Cedric Knight. # money.h a library that provides a generic system for the manipulation of money, beta release, by Erik Hetzner (see greenbacks.inf above for an example game which uses US currency) # moveclass.h MoveClass, a library to provide either random or directed movement for any NPCs. Version 8.10, by Neil Brown and Alan Trewartha, with changes for Glulx by Matthew Russotto. # moveman.txt The manual for MoveClass # movie.h a library to put non-interactive "cut scenes" into a game, version 3, by L. Ross Raszewski # multifloyd.h a library to enable a game to be connected to ifMUD's multiplayer Floyd bot, by Evin Robertson. # nameable.h An extension to allow objects to be named by the player. Written by John Colagioia, based on code from Graham Nelson's game "Balances". # newflags.h A rewrite of Adam Cadre's flags.h library which is designed to be more efficient with system resources. Rewritten by Fredrik Ramsberg. # notepad.h A library that allows a game player to take short notes during play and delete them again. Also has methods for the game author to add, delete and manipulate notes. Release 1.000227, written by Gunther Schmidl. # notes.h A library for implementing footnotes in a game. Release 1, written by Anson Turner. # npc_engine.zip NPC Engine, a library to help program sophisticated NPCs in Inform. Release 8, by Volker Lanz. Archive includes the library file, documentation and an example game. # objlstr.h An object listing debugging aid for Inform games, version 1.50, written by Marnie Parker. # oldaemon.h A daemon which combines multiple objectloops into a single loop, thus improving performance. Version 1.0, by L. Ross Raszewski. # outofrch.h a library to define reachable areas for supporters and containers, version 2.00, written by Marnie Parker # perform.tgz Perform (Perceptron Classifier in Inform), version 1.0 by Nick Montfort, MIT License. # phototalk.inf routines from the game Photopia dealing with the menu conversation system, by Adam Cadre # phtalkoo.h menu based conversation system based on Adam Cadre's routines from Photopia (phototalk.inf), modified and object-oriented by David Glasser # platypus.zip ifwiki: Platypus Platypus release 4+, Anson Turner's replacement for the standard Inform library (previously called "animalib"), along with documentation and example code. # player_notepad.h An extension for taking notes during play, as used in Suveh Nux. Version 1.0, by David Fisher. # plback.h A library extension (for the Platypus library only) that implements a GO BACK verb, by Alexandre Muniz. Version 1.1. # plphtoo.h Menu based conversation system based on Adam Cadre's routines from Photopia (phototalk.inf), modified and object-oriented by David Glasser, and then adapted for Platypus by Alexandre Muniz. # pmove.h an extension to move objects while preserving the object lineage, by L. Ross Raszewski # pname.zip A library that allows more precise name constructs to be declared and causes the parser to disambiguate based on these "phrase name" constructs, written by Neil Cerutti. Version 1.1, 10 May 2001. # prand.h A library for printing random strings, release 1, by Anson Turner. # printslow.zip A function with allows you to print text to the screen at a slower than normal computer speed rate, written by David Cornelson. Archive includes library header and an example. # printtime.h a library to print a time in a chosen format, by Erik Hetzner. Release 981031 # rap11.zip ifwiki: Reactive Agent Planner Reactive Agent Planner for Inform, a goal seeking library for Inform NPCs. Version 1.1, written by Nate Cull. # rap12.zip ifwiki: Reactive Agent Planner Reactive Agent Planner for Inform, a goal seeking library for Inform NPCs. Version 1.2, originally by Nate Cull, and updated with a Perl preprocessor by Sam Denton. # random.h A replacement for Inform's random() function, which ensures well-distributed (and, where necessary, predictable) results, irrespective of which Z-machine or Glulx interpreter the player is using. Version 1.3, written by Roger Firth. # recept.h A library for receptacles, that is, contains with defined capacities. Version 1.0, by Peer Schaefer. # scenic.h Supports lightweight scenery 'objects', embedded in room objects, which can be examined but not otherwise manipulated. Version 3.1, written by Richard Barnett, Joe Mason, Roger Firth and Stefano Gaburri. # scrutinize.h An extension to help find missing synonyms for objects, written by Fredrik Ramsberg. # seeno.h A library to change the standard Inform message "You can't see any such thing." to the more specific "You see no xxx yyy here." Version 1.1, by Cedric Knight. # sha_hint.h A library to add a simple hint system to a game, where the user enters "hint ``" to get hints. Written by Ricardo Dague. # shell.zip A skeleton shell for starting coding a game from. Includes code to make the character male or female, hints, magic words and a comment verb. # shuffle.h A library to pull numbers randomly from a hat until all have been used, whereupon the process restarts; like random(), but avoiding obvious repetition, by Roger Firth. # sorting.h Implementation of quick sort, insertion sort and shell sort routines, version 1.2, by Fredrik Ramsberg. # sorting.inf An example using the sort routines in sorting.h, by Fredrik Ramsberg. # smartcantgo.h "Smart 'Can't Go' Library" by David Wagner, updated for Inform 6 by Roger Firth. A routine that lists the exits of rooms instead of just "You can't go that way". Version 5 (3feb99), based on David's version 3 (08nov95). # sound.h a library to handle Inform's sound capabilities, by L. Ross Raszewksi. Requires a sound card. # stack.h An implementation of a stack, by Fredrik Ramsberg. # stack.inf An example of how to use the stack class in stack.h, by Fredrik Ramsberg. # stringmaker.h A routine to convert a byte array of characters into a packed string which can be printed (and vice versa). Version 1.0, by Roger Firth. # style.h an Inform library extension for embedding styles in print statements, written by by Chris Klimas # swap.h A function to swap two objects, moving each to the other's parent, by "she's long gone". # teleport.inf Inform source to demonstrate how to allow the player to teleport to a room by typing in the room's name as a command, written by Jim Fisher and Michael Huang. # text_functions.h a library of functions for dealing with text in Inform, Release 1.0, by Patrick Kellum. # text_functions.inf an example demonstrating the use of text_functions.h # timepiece.h a library of classes to implement watches, clocks, etc., by Erik Hetzner. Release 981031 # timesys.h a library extension that enhances handling of time-oriented games, by Kevin Forchione. Based on both timewait.h (1995) and waittime.h (1996). # timewait.h Time/Wait Library, release 3. A library to support parsing the time of day and "wait until three o'clock" commands. Written by Andrew Clover and updated to Inform 6 by Nicholas Daley # torch.h A library allowing the use of torches (the flaming, wooden kind), which can be either good (ready to be ignited), burning, or burnt-out. Written by David Griffith. # triform12b.zip ifwiki: Triform Triform 1.2b, an alternate library for Inform, written by Nathan Schwartzman. # trinitystat.h A library go give games a status line in the style of Infocom's Trinity, written by Jonathan Rosebaugh. # utility.h A library of useful Inform functions, version 4.0, by L. Ross Raszewski. Also works under Glulx. # waittime.h a library to provide understanding of English time strings, to give an enhanced "wait" command. Written by L. Ross Raszewski and updated to Inform 6 by Nicholas Daley # wearable.zip A library for clothing, by "she's long gone". Includes the library, documentation and a demonstration game. # whatis.h a library to provide commands such as "who am I", "what is a grue", etc. Version 1, by Andrew C. Murie # whowhat.h a library to provide support for input such as "who is..." and "what is...". Written by David Cornelson, based on "whatis.h" by A.C. Murie. # writelist.h Replacement components for the Library list-maker WriteListFrom(), invoking an object's invent property both for inventories AND during room descriptions. Version 1.1, written by Roger Firth. # yesno.h a library to ask a semi-rhetorical yes or no question, by L. Ross Raszewski # zclock.h A library that implements the timers and daemons mechansim used in Infocom games, by Allen Garvin. # znsi.h ZNSI version 1.0, a control-code add on system for istring.h (see above), by L. Ross Raszewski # zorkh.zip A collection of Zork-related library extensions, Release 2, by Joe Merical. # ORLib_Complete.1.3c-incl-updates.zip ifwiki: ORLibrary The Onyx Ring library, a library that builds upon and extends the standard Inform library. This zip contains: - ORLibrary version 1.3c, by Jim Fisher, released 08 Jun 2004. - A separate folder holding two updated versions of library files, which were published after 1.3C. Use of the updated versions is optional but recommended, as the updates include bug fixes. This version requires at least Inform 6.30.