Inform Port -- Release 3-- 12/17/2000
This material contains elements based on the game Deadline. It is used with permission
as instructive material. Original Deadline material is © 1982, 1999 Activision, Inc.
Deadline and Activision are registered trademarks of Activision, Inc. All rights reserved.
Copyright on Inform, the program and its source code, its example games and documentation is retained by Graham Nelson, who asserts the moral right to be identified as the author under the Copyrights, Designs and Patents Act 1988.
The Deadline Inform Port was written by Volker Lanz. Please do not distribute modified versions of these files. You can contact the author via e-mail: volker.lanz@gmx.net
This archive contains a complete Inform port of the Infocom game DEADLINE. If you compile these files with Graham Nelson's Inform compiler, you will get a fully working (well, hopefully) DEADLINE story file.
See the top of the file deadline.inf
for a list of changes in this release.
This is intended to be for instructive purposes only. You are not allowed to play this port of DEADLINE unless you own a copy of the original, as the game is still under copyright.
You should find the following files within the packed archive you downloaded:
The main story files | |
Deadline.inf |
The main story file with daemons, timers, verb routines and more stuff. |
EndOfGame.inf |
The end of the game: Arresting people and the outcome. |
Firstfloor.inf |
The first floor of the Robner house |
Groundfloor.inf |
The ground floor of the Robner house (again, this should be called firstfloor.inf). |
NPC.inf |
All the NPCs in the game. |
OtherObj.inf |
Various objects that are nowhere at the beginning of the game. |
Outside.inf |
The garden around the Robner house. |
The additional library files | |
LibExt.h |
Countless replaced library routines |
Invisi.h |
The InvisiClues |
Unzip all files to one directory (or make sure that Inform will find
all the files if you use different directories). Additionally, you'll need the
following:
Required library files and extensions | |
Inform Library 6/10 |
ftp://ftp.gmd.de/if-archive/infocom/compilers/inform6/library/inform_library610.zip |
AltMenu.h (Version 6) by L. Ross Raszewski |
ftp://ftp.gmd.de/if-archive/infocom/compilers/inform6/library/contributions/AltMenu.h |
DoMenu.h (Version 6.2) by L. Ross Raszewski |
ftp://ftp.gmd.de/if-archive/infocom/compilers/inform6/library/contributions/domenu.h |
Hints.h (Version 2) by L. Ross Raszewski |
ftp://ftp.gmd.de/if-archive/infocom/compilers/inform6/library/contributions/Hints.h |
NPC_Engine.h (Version 8) by Volker Lanz (which
comes together with NPC_Wait.h) |
ftp://ftp.gmd.de/if-archive/infocom/compilers/inform6/library/contributions/npc_engine.zip |
Utility.h (Version 3.2) by L. Ross Raszewski |
ftp://ftp.gmd.de/if-archive/infocom/compilers/inform6/library/contributions/utility.h |
If other versions of these library extensions will work, I cannot tell you. (Apart from NPC_Engine versions older than 8, which will not work).
Important note: You will have to add two lines to the file parserm.h
to be able to compile the game: The game provides its own InformLibrary
object and thus the object in parserm.h
has to be removed. You
can do this easily by adding an #ifdef
before it that's just never
true and an #endif
after it:
#ifdef NEVER_TRUE;
Object InformLibrary
...
has proper;
#endif;
You can compile the game with Inform 6.21. Use $MAX_OBJECTS=700
to avoid a compilation error. For the 32-bit Windows version it would look like
this:
infrmw32 $MAX_OBJECTS=700 deadline.inf
This will produce the story file deadline.z5
. Unfortunately, the
hint menu system provided by altmenu.h
, domenu.h
and
hints.h
isn't prepared for strict error checking (the rest of the
game is), so you might either want to turn off strict error checking or
disable the inclusion of the InvisiClues (you can do so by setting the NOHINTS
constant at the top of the deadline.inf
file).
Probably a whole lot of 'em. The game is complete, however. And, as far as I can tell, it's free of major flaws and bugs. But it has not undergone any serious testing, so please don't be too surprised if you come upon a bug or two. Just tell me, if you like.
Some things also differ because they were a little... unclear in the original and I more or less had to guess what Marc Blank had in mind back in 1982. Following NPCs, for instance, wasn't really done that elegantly in Infocom's ZIL version.
A few minor features of the original DEADLINE are missing; see the top of deadline.inf
for a list of these.
This port is, by the way, based on DEADLINE 27.851005.
Uhmm... well, it was just some sort of excercise, really. I began learning Inform in June of 1998 and toyed around with it for a while before I started coding some rooms. Because I was just then playing DEADLINE I used the room names of the Robner garden for this. I don't know when exactly, but at some point I thought "let's see how far I can get with this". And a few weeks later it was finished.
Then, I mostly forgot about it and left it nearly finished, but in a terrible state, code-wise. After finishing and publishing INTRUDER, I thought I should get back to the DEADLINE port and take the NPC movements out of it to create some sort of library extension for complex NPC movement. So I fiddled around with the code again and cleaned some of it up a little. In the process of that I had the idea of asking Activision to grant permission publishing this. After quite a lot of e-mails they finally agreed.
This is supposed to demonstrate what can be done with Inform in source code format. There aren't many full size games available when it comes to source code. Of course, this is mainly an example of how not to do it, but anyway - someone might be interested and a few newcomers to Inform maybe want to have a look at it. So have fun.
Credits go of course to Marc Blank for the brilliant original.
Thanks also to Graham Nelson. Inform is indeed an incredible little piece of software.
I'd also like to thank L. Ross Raszewski for his brilliant library extensions. They make writing in Inform so much easier.
A big thank-you goes to James "Chip" Hayes, who helped with countless bug reports and rewrote major parts of the code for compatibility with Inform Library 6/10.
Finally, thanks to Activision for granting permission to publish this source code archive.
- Volker Lanz, December 17th 2000