D E A D L I N E

Inform Port -- Release 3-- 12/17/2000

Disclaimer

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

What this is about

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.

The files in the archive

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;

Compiling

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).

Differences between the original and the Inform port

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.

Why would someone do that kind of thing?

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 and acknowledgements

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