the-infocom-files/planetfall

Game prints unnecessary line break after turning on Floyd for the first time

Opened this issue · 0 comments

>LOOK
Robot Shop
This room, with exits west and northwest, is filled with robot-like devices of
every conceivable description, all in various states of disassembly.
Only one robot, about four feet high, looks even remotely close to being in
working order.

>TURN ON ROBOT
Nothing happens.

>NW
Mech Corridor South
The corridor ends here with doorways to the southwest, south, and southeast.


>

Note that there are two line breaks before the prompt.

I think what happens is that when you turn on Floyd for the first time, it sets up the I-FLOYD timer i 25... millichrons, I guess? See FLOYD-F , the LAMP-ON case. Moving to the next room takes enough time for it to trigger.

The game uses RLANDBIT to keep track of whether Floyd is active or not. The first thing that happens in FLOYD-I is:

<ROUTINE I-FLOYD ()
	 <ENABLE <QUEUE I-FLOYD -1>>
	 <COND (<NOT <FSET? ,FLOYD ,RLANDBIT>>
		<FSET ,FLOYD ,ACTORBIT>
		<CRLF>
		<FLOYD-COMES-ALIVE>)

I think this is the stray empty line that's seen.

FLOYD-COMES-ALIVE only prints a message if Floyd is in the room with you, which he wasn't int he case described above.

This is the only place where ´FLOYD-COMES-ALIVE is called, so I guess the CRLF could be safely moved inside that routine, and only printed when Floyd is with you.