the-infocom-files / hitchhiker

The Hitchhiker’s Guide to the Galaxy
21 stars 4 forks source link

The game prints the score twice at the end #38

Open eriktorbjorn opened 4 years ago

eriktorbjorn commented 4 years ago
>DOWN
You step onto the landing ramp leading down toward the surface of the legendary
lost planet of Magrathea. "Announcement, announcement. This is Eddie (the
shipboard computer). Someone is leaving the ship on a strange planet without
wrapping up all nice and warm. It'll all end in tears, I just know it..." The
voice fades behind you.

Ramp
The wind moans. Dust drifts across the surface of the alien world. Zaphod, Ford,
and Trillian appear and urge you forward.

Slowly, nervously, you step downwards, the cold thin air rasping in your lungs.
You set one single foot on the ancient dust -- and almost instantly the most
incredible adventure starts which you'll have to buy the next game to find out
about.

Your score is 400 of a possible 400, in 437 turns.

By the way, there WAS a causal relationship between your taking the toothbrush
and the tree collapsing at the very beginning of the game. We apologise for this
slight inaccuracy.

Your score is 400 of a possible 400, in 417 turns.

Would you like to start over, restore a saved position, or end this session of
the game?
(Type RESTART, RESTORE, or QUIT): >

It's printed by this part of RAMP-F:

           (<EQUAL? .RARG ,M-END>
        <TELL CR
"Slowly, nervously, you step downwards, the cold thin air rasping in your
lungs. You set one single foot on the ancient dust -- and almost instantly
the most incredible adventure starts which you'll have to buy the next game
to find out about." CR CR>
        <V-SCORE>
        <TELL CR
"By the way, there WAS a causal relationship between your taking the "
D ,TOOTHBRUSH " and the tree collapsing at the very beginning of the game.
We apologise for this slight inaccuracy." CR>
        <FINISH>)>>

So the problem is that FINISH also prints the score. In the r58 sources, it calls QUIT instead.

I think it's nicer to call FINISH, because it allows you to start a new game. The routine does have an optional parameter to suppress the score (currently only used when it calls itself. Perhaps we could use that here?

eriktorbjorn commented 4 years ago

In the Solid Gold source, the call to V-SCORE has been removed from RAMP-F:

               (<EQUAL? .RARG ,M-END>
                <TELL CR
"Slowly, nervously, you step downwards, the cold thin air rasping in your
lungs. You set one single foot on the ancient dust -- and almost instantly
the most incredible adventure starts which you'll have to buy the next game
to find out about." CR CR>
                ;<V-SCORE>
                <TELL CR
"By the way, there WAS a causal relationship between your taking the "
D ,TOOTHBRUSH " and the tree collapsing at the very beginning of the game.
We apologise for this slight inaccuracy." CR>
                <FINISH>)>>

I always figured the "By the way ..." message was meant to look like something they almost forgot to tell you. But this seems to go against that. Hmm...

eriktorbjorn commented 4 years ago

By the way, there is one place where the game still uses QUIT instead of FINISH and that's if you break the rules of time travel as Ford. (See I-UNEASY.) But I guess it kind of makes sense there?