Prev: 8FF5 Up: Map Next: 9076
9034: Action: Talk To
Talks to the current character, when they still have something to say. Reached through the action table at ActionTable, dispatched by Turn_RunTheHandlerIfPresent.
If the message is held back, the character says nothing.
Action_TalkTo 9034 CALL ConditionSuppressTheMessage Call ConditionSuppressTheMessage. If the message is held back, the character says nothing.
9037 LD A,($B6E8) Read *CurrentObject.
903A CALL TableFindASpecialObject Call TableFindASpecialObject to find the special-object record.
903D CP $FF Take zero, and jump to Action_TalkTo_FillTheClaimedSlots if this object has no special-object record.
903F LD A,$00
9041 JR Z,Action_TalkTo_FillTheClaimedSlots
Test the talk flag.
9043 LD A,($B6F9) Jump to Action_TalkTo_FillTheClaimedSlots if *B6F9 is not 00.
9046 CP $00
9048 JR NZ,Action_TalkTo_FillTheClaimedSlots
904A LD A,(IY+$06) Read byte 6 of this special-object record.
904D CP $00 Jump to Action_TalkTo_FillTheClaimedSlots if that byte is zero.
904F JR Z,Action_TalkTo_FillTheClaimedSlots
Roll a random number.
9051 CALL GetRandomNumber Call GetRandomNumber to roll a number from the limit in A.
9054 CP $00 Jump to Action_TalkTo_PrintSays if the roll is zero.
9056 JR Z,Action_TalkTo_PrintSays
Action_TalkTo_FillTheClaimedSlots 9058 CALL Inglish_FillTheClaimedSlots Call Inglish_FillTheClaimedSlots to give A of the claimed slots to the current object.
905B RET Return.
Action_TalkTo_PrintSays 905C LD HL,$B1E3 Point at the message "[0x07] says " (B1E3).
905F CALL PrintMessage Call PrintMessage to print message.
9062 SUB A Take zero so Inglish_FillTheClaimedSlots marks the claimed slots free.
9063 JR Action_TalkTo_FillTheClaimedSlots Jump back to Action_TalkTo_FillTheClaimedSlots to free every claimed slot and return.
If the message is held back, the reply about the open object is skipped.
Reached through the action list of $1D - "Sand" for action 39, dispatched by TriggerAction.
9065 CALL ConditionSuppressTheMessage Call ConditionSuppressTheMessage. If the message is held back, the reply about the open object is skipped.
9068 LD IX,($B708) Read *B708.
906C BIT 5,(IX+$07) Jump to ActionOpenOrClose_0 if the object is not open.
9070 JP Z,ActionOpenOrClose_0
9073 JP Action_Close_0 Jump to Action_Close_0 to close the object.
Prev: 8FF5 Up: Map Next: 9076