3.6 KiB
OpenWolf
@.wolf/OPENWOLF.md
This project uses OpenWolf for context management. Read and follow .wolf/OPENWOLF.md every session. Check .wolf/cerebrum.md before generating code. Check .wolf/anatomy.md before reading files.
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
What This Is
This is the original source code for The Hitchhiker's Guide to the Galaxy (1984), an interactive fiction game by Infocom (designed by Douglas Adams and Steve Meretzky). The code is written in ZIL (Zork Implementation Language), Infocom's proprietary Lisp-like language that compiles to Z-machine bytecode.
Release 60 (October 2, 1986) — the final release version. The compiled game runs as a .z5 Z-machine story file (a copy is at docs/The-Hitchhikers-Guide-to-the-Galaxy_DOS_EN_Z5-format/hitchhik.z5).
Building
ZIL source requires the ZILF compiler (open-source ZIL-to-Z-machine compiler) or Infocom's original toolchain. There is no build system or Makefile in this repo. To compile with ZILF:
zilf s4.zil
zapf s4.zap
This produces a .z5 story file playable in any Z-machine interpreter (Frotz, Lectrote, etc.).
Architecture
Entry point: s4.zil — includes all other source files via <INSERT-FILE>.
Source files by function:
| File | Purpose |
|---|---|
s4.zil |
Main file; game title, file includes, property defaults |
globals.zil |
Global variables, directions, meta-objects (ROOMS, IT, NOT-HERE-OBJECT, LOCAL-GLOBALS) |
parser.zil |
Text parser — tokenizing input, resolving nouns/adjectives, disambiguation |
syntax.zil |
Vocabulary: BUZZ words, SYNONYMs, direction aliases, verb SYNTAX definitions |
verbs.zil |
Verb handler routines (V-TAKE, V-DROP, V-EXAMINE, etc.) and game commands |
misc.zil |
Utility routines, interrupt/clock system, macros |
earth.zil |
Earth locations — Arthur's bedroom, front of house, pub, country lane |
vogon.zil |
Vogon ship — hold, guard's room, airlock, poetry appreciation |
heart.zil |
Heart of Gold — bridge, engine room, corridors, Infinite Improbability Drive |
unearth.zil |
Off-Earth locations — Traal (Ravenous Bugblatter Beast), Damogran, Magrathea |
Assembly files (.xzap): s4.xzap is the assembly include order; s4freq.xzap defines frequently-used strings (Huffman-compressed). s4.errors is the assembler output log.
ZIL Conventions
<OBJECT ...>defines game objects with properties (DESC, SYNONYM, FLAGS, ACTION, etc.)<ROOM ...>defines locations (rooms are objects with directional exits)<ROUTINE ...>defines functions;-Fsuffix indicates an action handler (e.g.,HOME-F)<GLOBAL ...>defines global variables; parser globals are prefixedP-- Flags on objects control behavior:
TAKEBIT(takeable),OPENBIT(open),ONBIT(lit/on),TOUCHBIT(seen), etc. PRSA/PRSO/PRSI— parsed action verb, direct object, indirect object<TELL ...>outputs text to the player;CR= carriage return- Comments use
;"..."syntax;;<...>comments out an entire form
docs/
Contains the original MS-DOS executable, Z5 story file, game manuals (PDF), hint book, game maps, and photos of physical game "feelies" (props included with the boxed game).