--- /dev/null
+This repository contains the Cloak of Darkness specification
+originally from Roger Firth <roger@firthworks.com> at
+<http://www.firthworks.com/roger/>
+
+Relicensing was done with permission of Roger Firth.
+
+The documents in this repository, including this one, are made
+following Pandoc's extended version of Markdown:
+<http://pandoc.org/>.
+
+Converting them to other formats requires that Pandoc or some other
+program that can understand this version of Markdown be installed on
+your system.
+
+---
+This document by Jason Self is licensed under the Creative Commons
+Attribution-ShareAlike 4.0 International Public License and all
+future versions: <https://creativecommons.org/licenses/by-sa/4.0/>.
\ No newline at end of file
--- /dev/null
+ ! ============================================================================ !
+ ! Cloak of Darkness - a simple demonstration of Interactive Fiction
+ ! This version for Inform written by Roger Firth on 17Sep99
+ ! Copyright (C) 1999 Roger Firth
+ ! Copying and distribution, with or without modification, are permitted in
+ ! any medium without royalty provided the copyright notice and this notice
+ ! are preserved.
+ ! ============================================================================ !
+
+ Constant Story "Cloak of Darkness";
+ Constant Headline "^A basic IF demonstration.^";
+ Constant MANUAL_PRONOUNS;
+ Constant MAX_SCORE 2;
+
+ Include "Parser";
+ Include "VerbLib";
+
+ ! ============================================================================ !
+
+ Object foyer "Foyer of the Opera House"
+ with description
+ "You are standing in a spacious hall, splendidly decorated in red
+ and gold, with glittering chandeliers overhead. The entrance from
+ the street is to the north, and there are doorways south and west.",
+ s_to bar,
+ w_to cloakroom,
+ n_to
+ "You've only just arrived, and besides, the weather outside
+ seems to be getting worse.",
+ has light;
+
+ Object cloakroom "Cloakroom"
+ with description
+ "The walls of this small room were clearly once lined with hooks,
+ though now only one remains. The exit is a door to the east.",
+ e_to foyer,
+ has light;
+
+ Object hook "small brass hook" cloakroom
+ with name 'small' 'brass' 'hook' 'peg',
+ description [;
+ print "It's just a small brass hook, ";
+ if (self == parent(cloak)) "with a cloak hanging on it.";
+ "screwed to the wall.";
+ ],
+ has scenery supporter;
+
+ Object bar "Foyer bar"
+ with description
+ "The bar, much rougher than you'd have guessed after the opulence
+ of the foyer to the north, is completely empty. There seems to
+ be some sort of message scrawled in the sawdust on the floor.",
+ n_to foyer,
+ before [;
+ Go:
+ if (self hasnt light && noun ~= n_obj) {
+ message.number = message.number + 2;
+ "Blundering around in the dark isn't a good idea!";
+ }
+ default:
+ if (self hasnt light) {
+ message.number = message.number + 1;
+ "In the dark? You could easily disturb something!";
+ }
+ ],
+ has ~light;
+
+ Object cloak "velvet cloak"
+ with name 'handsome' 'dark' 'black' 'velvet' 'satin' 'cloak',
+ description
+ "A handsome cloak, of velvet trimmed with satin, and slightly
+ spattered with raindrops. Its blackness is so deep that it
+ almost seems to suck light from the room.",
+ before [;
+ Drop, PutOn:
+ if (location == cloakroom) {
+ give bar light;
+ if (action == ##PutOn && self has general) {
+ give self ~general;
+ score++;
+ }
+ }
+ else
+ "This isn't the best place to leave a smart cloak
+ lying around.";
+ ],
+ after [;
+ Take: give bar ~light;
+ ],
+ has clothing general;
+
+ Object message "scrawled message" bar
+ with name 'message' 'sawdust' 'floor',
+ description [;
+ if (self.number < 2) {
+ score++;
+ deadflag = 2;
+ print "The message, neatly marked in the sawdust, reads...";
+ }
+ else {
+ deadflag = 3;
+ print "The message has been carelessly trampled, making it
+ difficult to read. You can just distinguish the words...";
+ }
+ ],
+ number 0,
+ has scenery;
+
+ [ Initialise;
+ location = foyer;
+ move cloak to player;
+ give cloak worn;
+ "^^Hurrying through the rainswept November night, you're glad to see the
+ bright lights of the Opera House. It's surprising that there aren't more
+ people about but, hey, what do you expect in a cheap demo game...?^^";
+ ];
+
+ [ DeathMessage; print "You have lost"; ];
+
+ ! ============================================================================ !
+
+ Include "Grammar";
+
+ Verb 'hang' * held 'on' noun -> PutOn;
+
+ ! ============================================================================ !
\ No newline at end of file
--- /dev/null
+# The \"Cloak of Darkness\" specification
+
+Implementations should try be made as similar as possible. That is,
+things like object names and room descriptions should be identical,
+and the general flow of the game should be pretty comparable. Having
+said that, games are implemented using the native capabilities of the
+various systems, using features that a beginner might be expected to
+master; there shouldn\'t be any need to resort to assembler routines,
+library hacks, or other advanced techniques. The target is to write
+naturally and simply, while sticking as closely as possible to the
+goal of making the games directly equivalent.
+
+\"Cloak of Darkness\" is not going to win prizes for its prose,
+imagination or subtlety. Or scope: it can be played to a successful
+conclusion in five or six moves, so it\'s not going to keep you
+guessing for long. (On the other hand, it may qualify as the most
+widely-available game in the history of the genre.) There are just
+three rooms and three objects.
+
+- The **Foyer** of the Opera House is where the game begins. This
+ empty room has doors to the south and west, also an unusable exit
+ to the north. There is nobody else around.
+- The **Bar** lies south of the **Foyer**, and is initially unlit.
+ Trying to do anything other than return northwards results in a
+ warning message about disturbing things in the dark.
+- On the wall of the **Cloakroom**, to the west of the **Foyer**, is
+ fixed a small brass **hook**.
+- Taking an inventory of possessions reveals that the player is
+ wearing a black velvet **cloak** which, upon examination, is found
+ to be light-absorbent. The player can drop the **cloak** on the
+ floor of the **Cloakroom** or, better, put it on the **hook**.
+- Returning to the **Bar** without the **cloak** reveals that the
+ room is now lit. A **message** is scratched in the sawdust on the
+ floor.
+- The **message** reads either \"You have won\" or \"You have
+ lost\", depending on how much it was disturbed by the player while
+ the room was dark.
+- The act of reading the **message** ends the game.
+
+And that\'s all there is to it\...
+
+# Acknowledgements
+
+Thanks to Stuart Allen, Mike Arnautov, Steve Breslin, Neil Cerutti, Al
+Golden, Stephen Griffiths, Mark Hughes, John Menichelli, Todd Nathan,
+Roger Plowman, Roddie Ramieson, Robin Rawson-Tetley, Dan Shiovitz,
+Kent Tessman, Alex Warren and Campbell Wild for contributing versions
+of \"Cloak of Darkness\". Not forgetting the special debt of gratitude
+we owe to those who created the authoring systems, without whom we\'d
+probably still be adventuring in FORTRAN.
+
+# Licensing
+
+Copyright (C) Roger Firth
+
+Copying and distribution, with or without modification, are permitted
+in any medium without royalty provided the copyright notice and this
+notice are preserved.
\ No newline at end of file