![]() |
Routines |
| Prev: 8FF5 | Up: Map | Next: 9076 |
|
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 |