Files
h2g2/CLAUDE.md
2026-04-05 20:16:35 +02:00

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; -F suffix indicates an action handler (e.g., HOME-F)
  • <GLOBAL ...> defines global variables; parser globals are prefixed P-
  • 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).