![]() |
Routines |
| Prev: 57290 | Up: Map | Next: 57402 |
|
Used by the routines at PrintObjectDescriptionText and MatchSherlockDisguise.
|
||||
| SpecialCaseObject_LooksBasilPhipps | 57292 | LD HL,30108 | Call FetchObjectDataPointer to look up 6. | |
| 57295 | LD A,6 | |||
| 57297 | CALL FetchObjectDataPointer | |||
| 57300 | LD A,(40969) | Print the message via PrintMessageAndInitialiseTimer if Sherlock's disguise does not match the character's attribute. | ||
| 57303 | CP (IX+15) | |||
| 57306 | JP NZ,PrintMessageAndInitialiseTimer | |||
| 57309 | LD HL,30162 | Take the message at 30162 and print it via PrintMessageAndInitialiseTimer. | ||
| 57312 | JP PrintMessageAndInitialiseTimer | |||
|
Reached through the display record at 57322, dispatched by DispatchLookedUpHandlerThird.
|
||||
| 57315 | LD A,(41014) | Read the character being processed, compare it with Sherlock (100), and go to SpecialCaseObject_LooksBasilPhipps_0, which returns zero through ParseInputNumber_ReturnZero when they differ. | ||
| 57318 | CP 100 | |||
| 57320 | JR SpecialCaseObject_LooksBasilPhipps_0 | |||
| 57322 | DEFB 71,16,227,223 | Display record read by ProcessDisplayRecord: flags 71 value 16 handler 57315. | ||
| 57326 | JR SpecialCaseObject_LooksBasilPhipps_Next | Go to SpecialCaseObject_LooksBasilPhipps_Next. | ||
| 57328 | DEFB 72,16,28,224 | Display record read by ProcessDisplayRecord: flags 72 value 16 handler 57372. | ||
| 57332 | LD A,100 | Place character 100 from SpecialCaseObject_LooksBasilPhipps_2. | ||
| 57334 | JR SpecialCaseObject_LooksBasilPhipps_2 | |||
|
Reached through the display record at 57347, dispatched by DispatchLookedUpHandlerThird.
|
||||
| 57336 | LD A,(41014) | Read the character being processed and compare it with 1. | ||
| 57339 | CP 1 | |||
| SpecialCaseObject_LooksBasilPhipps_0 | 57341 | JP NZ,ParseInputNumber_ReturnZero | Return zero through ParseInputNumber_ReturnZero if the character being processed is not 1. | |
|
This entry point is used by the routine at PrintObjectDescriptionText.
|
||||
| SpecialCaseObject_LooksBasilPhipps_1 | 57344 | OR %00000001 | Reset the zero flag. | |
| 57346 | RET | Return. | ||
| 57347 | DEFB 71,16,248,223 | Display record read by ProcessDisplayRecord: flags 71 value 16 handler 57336. | ||
| SpecialCaseObject_LooksBasilPhipps_Next | 57351 | XOR A | Call PlaceCharacter to place character. | |
| 57352 | CALL PlaceCharacter | |||
| 57355 | LD IX,(40979) | Read the current object. | ||
| SpecialCaseObject_ClearMovedMarker | 57359 | LD (IX+1),0 | Clear the moved marker. | |
| 57363 | LD A,(40970) | |||
| 57366 | LD (IX+15),A | Store the character attribute. | ||
| 57369 | OR %00000001 | Reset the zero flag. | ||
| 57371 | RET | Return. | ||
|
Reached through the display record at 57255, 57328, 57378 and 57517, dispatched by DispatchLookedUpHandlerThird.
|
||||
| 57372 | LD A,(41014) | Read the character being processed, then clear the borrow so the caller can trust the result. | ||
| 57375 | AND A | |||
| 57376 | JR SpecialCaseObject_LooksBasilPhipps_0 | |||
| 57378 | DEFB 72,16,28,224 | Display record read by ProcessDisplayRecord: flags 72 value 16 handler 57372. | ||
| 57382 | LD A,1 | Take 1. | ||
| SpecialCaseObject_LooksBasilPhipps_2 | 57384 | CALL PlaceCharacter | Call PlaceCharacter to place the character. | |
| 57387 | LD IX,(40979) | Read the current object and clear the moved marker. | ||
| 57391 | LD (IX+1),0 | |||
| 57395 | LD (IX+15),0 | Clear the location at IX+15. | ||
| 57399 | OR 1 | |||
| 57401 | RET | Return. | ||
| Prev: 57290 | Up: Map | Next: 57402 |