Constant Story "Journey to Alpha Centauri (In Real Time)";
Constant Headline "^An Interactive Waste of Time^
Copyright (c) 1998 by Julian Fleetwood.^";
Constant USES_TIMER;
Constant MAX_SCORE = 100;
Release 3;
Replace DrawStatusLine;
Replace UpdateTimer;
Include "Parser";
Include "VerbLib";
Global arrived = 0;
Global tenths = 0;
Global secs = 60;
Global mins = 60;
Global hours = 24;
Global days = 365;
Global years = 3000;
Object Ship_Room "Control Room"
with initial
[; print "New players should ask for ";
style bold; print "help"; style roman; print ".^";
],
with description "This is the control cabin of an immense space ship. Around the room are
hundreds of switches and buttons. Dials on almost every surface display
the tiniest detail about the ship. At the north end of the room is a
flat window which looks out in to the inky blackness of space.",
each_turn [; if (arrived==1)
{
score = 100;
deadflag = 2;
"^Welcome to Alpha Centauri. Now go home.";
}
],
has light static;
Object Window "curved window" Ship_Room
with name "window" "glass" "flat" "roof",
description "A tall piece of glass that covers the entire wall is all that separates
you from the great emptiness of space. Through the glass you can see
thousands of stars glowing like little pin holes in black card.",
has scenery static;
Object Dials "small dials" Ship_Room
with name "dials" "dial" "screen" "screens" "displays" "display",
description "The numerous dials that litter the surfaces of the room provide you with
such useless information as Coffee Temperature, Windscreen Wiper Speed and
the like.",
has scenery static;
Object Buttons "fiddly buttons" Ship_Room
with name "controls" "switches" "button" "buttons" "switch" "control",
description "Every intricate part of the ship can be controlled from this impressive
room. You resist the temptation to play with the controls.",
has scenery static;
[ Initialise;
TitlePage();
DrawStatusLine();
print "^^^^^";
location = Ship_Room;
];
[ Time;
if (secs == 0 && mins == 0 && hours == 0 && days == 0 && years == 0)
{
arrived = 1; rtrue;
}
secs--;
if (secs == -1)
{
secs = 60;
mins--;
if (mins == -1)
{
mins = 60;
hours--;
if (hours == -1)
{
hours = 24;
days--;
if (days == -1)
{
days = 365;
years--;
}
else
print secs, " (s) ", mins, " (m) ", hours, " (h) ", days, " (d) ", years, " (y)"; rtrue;
}
else
print secs, " (s) ", mins, " (m) ", hours, " (h) ", days, " (d) ", years, " (y)"; rtrue;
}
else
print secs, " (s) ", mins, " (m) ", hours, " (h) ", days, " (d) ", years, " (y)"; rtrue;
}
else
print secs, " (s) ", mins, " (m) ", hours, " (h) ", days, " (d) ", years, " (y)"; rtrue;
];
[ UpdateTimer;
DrawStatusLine();
tenths++;
if (tenths == 10)
{
tenths = 0;
no_parse = 1;
rfalse;
}
else
rfalse;
];
[ TitlePage i;
@erase_window -1; print "^^^^^^^^^^^^^";
i = 0->33; if (i==0) i=80; i=(i-50)/2;
style bold; font off; spaces(i);
style roman; print "^^"; spaces(i);
print " [Please press SPACE to begin.]^";
font on;
box "In the year of '39 assembled here the Volunteers"
"In the days when lands were few"
"Here the ship sailed out into the blue and sunny morn"
"The sweetest sight ever seen."
""
"-- Queen, '39";
do { @read_char 1 0 0 i; } until (i==32 or 10 or 13);
@erase_window -1;
];
[ DrawStatusLine;
@split_window 1; @set_window 1; @set_cursor 1 1; style reverse;
spaces (0->33)-1;
@set_cursor 1 2; print "Counter: ";
if (arrived == 1)
{
print "Arrived!";
}
else
Time();
@set_cursor 1 1; style roman; @set_window 0;
];
[ HelpMenu;
if (menu_item==0) { item_width=13; item_name="Journey To Alpha Centauri"; return 5; }
if (menu_item==1) { item_width=7; item_name="Thank-You List"; }
if (menu_item==2) { item_width=10; item_name="About the Author..."; }
if (menu_item==3) { item_width=8; item_name="Bugs 'n' Versions"; }
if (menu_item==4) { item_width=16; item_name="The Story That Started it All..."; }
if (menu_item==5) { item_width=3; item_name="Hints"; }
];
[ HelpInfo;
if (menu_item==1)
{
print "Wow! Even for a 50k game there are so many people to thank. Firstly, a big thanks to
Graham Nelson for allowing my wildest IF dreams to come true. Numerous cheers go to the
denizens of rec.arts.int-fiction and rec.games.int-fiction who helped me improve and
re-design the code.^^";
print "In individual terms, my undying gratitude goes to Francis Irving who held my hand as I
coded this beast, Joe Mason who helped me to get the real time input to work, and
Terry Pratchett for making the world a whole lot funnier.^^";
}
if (menu_item==2)
{
print "The author, Julian Fleetwood (mfleetwo@@64pcug.org.au), lives in Canberra, Australia. He is
16 and is trying to learn enough to get a computer science degree while maintaining his web
site (
http://surf.to/free4all).^^";
print "The author wishes to make known that this is not a good example of his work and suggests
that players wait for his first real IF game (coming in the not too close future) before
judging his work.^^";
print "No animals were hurt in the construction of this game.^^";
}
if (menu_item==3)
{
print "1994: Q-Basic version. One message and a simple counter.^^";
print "1996: Port to Nimbus Apple Basic. No changes.^^";
print "July-September 1998: Inform Release 1: More text, an actual room, okay time counter and
groovy menu system.^^";
print "September 1998: Inform Release 2: Fixed a few silly mistakes.^^";
print "October 1998: Current release. Changed the status bar. Fixed the ~typing to fast~ bug and
made the time length acurate.^^";
print "Bugs: If you use WinFrotz and are using different fixed and display fonts the typing font
will frequently change or completely lock up. The status bar disappears for a couple
seconds after exiting the help menu. The timer does not cover leap years. Please don't bug
me about this :-)^^";
print "If you have new bug reports or fixes please send them to me at mfleetwo@@64pcug.org.au^^";
print "The source code for this game should be avalible at^
ftp://ftp.gmd.de/if-archive/games/source/inform/Alpha.inf^^";
}
if (menu_item==4)
{
print "Excerpt from ~Only You Can Save Mankind~ by Terry Pratchett (Corgi Books
1993 0-552-13926-2)^^";
print "Chapter 3 Cereal Killers^^";
print "Johnny went back and watched the screen for a while. Stars occasionally went past.^";
print " Wobbler had written an actual computer game like this once. It was called ";
style bold;
print "Journey to Alpha Centauri";
style roman;
print ". It was a screen with some dots on it. Because, he said, it happened in ";
style bold;
print "real time";
style roman;
print ", which no-one had ever heard of until computers. He'd seen on TV that it took three
thousand years to get the Alpha Centauri. he had written it so that if anyone kept their
computer on for three thousand years, they'd be rewarded by a little dot appearing in
the middle of the sreen, and then a message saying, ~Welcome to Alpha Centauri. Now go
home.~^^";
}
if (menu_item==5)
{
print "[This space left intentionly blank.]^^";
}
];
[ HelpSub;
DoMenu("There is information provided on the following:^
^ Thank-You List
^ About the Author...
^ Bugs 'n' Versions
^ The Story That Started it All...
^ Hints^",
HelpMenu, HelpInfo);
];
[ XyzzySub;
"In space, no one can hear ~nothing happens~.";
];
[ PlaySub;
if (noun == Buttons)
{
print "A panel lights up with the words ~Please do not play with the controls again.~^";
}
else
print "You're not really in the mood.^";
];
Include "Grammar";
Verb "smeg" = "damn";
Verb "kick" = "attack";
Verb "play" "fiddle" "mess"
* noun -> Play
* "with" noun -> Play;
Verb "xyzzy" * -> Xyzzy;
Verb "help" * -> Help;