![]() |
Routines |
| Prev: DFCA | Up: Map | Next: E03A |
|
Used by the routines at PrintObjectDescriptionText and MatchSherlockDisguise.
|
||||
| SpecialCaseObject_LooksBasilPhipps | DFCC | LD HL,$759C | Call FetchObjectDataPointer to look up 06. | |
| DFCF | LD A,$06 | |||
| DFD1 | CALL FetchObjectDataPointer | |||
| DFD4 | LD A,($A009) | Print the message via PrintMessageAndInitialiseTimer if Sherlock's disguise does not match the character's attribute. | ||
| DFD7 | CP (IX+$0F) | |||
| DFDA | JP NZ,PrintMessageAndInitialiseTimer | |||
| DFDD | LD HL,$75D2 | Take the message at 75D2 and print it via PrintMessageAndInitialiseTimer. | ||
| DFE0 | JP PrintMessageAndInitialiseTimer | |||
|
Reached through the display record at DFEA, dispatched by DispatchLookedUpHandlerThird.
|
||||
| DFE3 | LD A,($A036) | Read the character being processed, compare it with Sherlock (64), and go to SpecialCaseObject_LooksBasilPhipps_0, which returns zero through ParseInputNumber_ReturnZero when they differ. | ||
| DFE6 | CP $64 | |||
| DFE8 | JR SpecialCaseObject_LooksBasilPhipps_0 | |||
| DFEA | DEFB $47,$10,$E3,$DF | Display record read by ProcessDisplayRecord: flags 47 value 10 handler DFE3. | ||
| DFEE | JR SpecialCaseObject_LooksBasilPhipps_Next | Go to SpecialCaseObject_LooksBasilPhipps_Next. | ||
| DFF0 | DEFB $48,$10,$1C,$E0 | Display record read by ProcessDisplayRecord: flags 48 value 10 handler E01C. | ||
| DFF4 | LD A,$64 | Place character 64 from SpecialCaseObject_LooksBasilPhipps_2. | ||
| DFF6 | JR SpecialCaseObject_LooksBasilPhipps_2 | |||
|
Reached through the display record at E003, dispatched by DispatchLookedUpHandlerThird.
|
||||
| DFF8 | LD A,($A036) | Read the character being processed and compare it with 01. | ||
| DFFB | CP $01 | |||
| SpecialCaseObject_LooksBasilPhipps_0 | DFFD | JP NZ,ParseInputNumber_ReturnZero | Return zero through ParseInputNumber_ReturnZero if the character being processed is not 01. | |
|
This entry point is used by the routine at PrintObjectDescriptionText.
|
||||
| SpecialCaseObject_LooksBasilPhipps_1 | E000 | OR %00000001 | Reset the zero flag. | |
| E002 | RET | Return. | ||
| E003 | DEFB $47,$10,$F8,$DF | Display record read by ProcessDisplayRecord: flags 47 value 10 handler DFF8. | ||
| SpecialCaseObject_LooksBasilPhipps_Next | E007 | XOR A | Call PlaceCharacter to place character. | |
| E008 | CALL PlaceCharacter | |||
| E00B | LD IX,($A013) | Read the current object. | ||
| SpecialCaseObject_ClearMovedMarker | E00F | LD (IX+$01),$00 | Clear the moved marker. | |
| E013 | LD A,($A00A) | |||
| E016 | LD (IX+$0F),A | Store the character attribute. | ||
| E019 | OR %00000001 | Reset the zero flag. | ||
| E01B | RET | Return. | ||
|
Reached through the display record at DFA7, DFF0, E022 and E0AD, dispatched by DispatchLookedUpHandlerThird.
|
||||
| E01C | LD A,($A036) | Read the character being processed, then clear the borrow so the caller can trust the result. | ||
| E01F | AND A | |||
| E020 | JR SpecialCaseObject_LooksBasilPhipps_0 | |||
| E022 | DEFB $48,$10,$1C,$E0 | Display record read by ProcessDisplayRecord: flags 48 value 10 handler E01C. | ||
| E026 | LD A,$01 | Take 01. | ||
| SpecialCaseObject_LooksBasilPhipps_2 | E028 | CALL PlaceCharacter | Call PlaceCharacter to place the character. | |
| E02B | LD IX,($A013) | Read the current object and clear the moved marker. | ||
| E02F | LD (IX+$01),$00 | |||
| E033 | LD (IX+$0F),$00 | Clear the location at IX+0F. | ||
| E037 | OR $01 | |||
| E039 | RET | Return. | ||
| Prev: DFCA | Up: Map | Next: E03A |