![]() |
Routines |
| Prev: E39C | Up: Map | Next: E3F5 |
|
Used by the routine at ReadCharacterTextPointers.
Reads the display pointer and shifts it to the picture address. Always returns non-zero.
|
||||
| ReadSourceDisplayPointer | E3A9 | LD DE,($A02F) | Read the display pointer. | |
| E3AD | RES 7,D | |||
| E3AF | RL E | |||
| E3B1 | SRA D | Shift DE right one bit, keeping the sign of D. | ||
| E3B3 | RR E | |||
| E3B5 | OR $01 | |||
| E3B7 | RET | Return. | ||
|
Reached through the display record at E3EA, dispatched by DispatchLookedUpHandlerThird.
|
||||
| E3B8 | CALL CheckCharacterForRoomGraphics | Return if the room display parameter does not apply. | ||
| E3BB | RET Z | |||
| E3BC | LD A,($A036) | Read the current character. | ||
| E3BF | PUSH AF | |||
| E3C0 | LD A,($A034) | Call FindCharacterScriptEntry to find character script entry. | ||
| E3C3 | INC A | |||
| E3C4 | LD ($A036),A | |||
| E3C7 | CALL FindCharacterScriptEntry | |||
| E3CA | EX AF,AF' | Record the current character. | ||
| E3CB | POP AF | |||
| E3CC | LD ($A036),A | |||
| E3CF | EX AF,AF' | Go to ReadSourceDisplayPointer_TestActionSucceeded if FindCharacterScriptEntry found no script entry for this character. | ||
| E3D0 | JR Z,ReadSourceDisplayPointer_TestActionSucceeded | |||
| E3D2 | LD A,(IX+$03) | Take the object id at offset 03 and call FetchObjectDataPointer to look it up. | ||
| E3D5 | CALL FetchObjectDataPointer | |||
| E3D8 | LD IY,($A017) | Read the current character record. | ||
| E3DC | LD A,(IX+$04) | Read the attribute type. | ||
|
None of the bits 70 are set in the tested state?
|
||||
| E3DF | AND (IY+$04) | Return zero through ParseInputNumber_ReturnZero if none of the bits 70 are set in the tested state. | ||
| E3E2 | AND $70 | |||
| E3E4 | JP Z,ParseInputNumber_ReturnZero | |||
| ReadSourceDisplayPointer_TestActionSucceeded | E3E7 | OR %00000001 | Reset the zero flag. | |
| E3E9 | RET | Return. | ||
| E3EA | DEFB $78,$20,$B8,$E3,$90,$40,$28,$00 | Display record read by ProcessDisplayRecord: flags 78 value 20 handler E3B8, parameters 90 40 28 00 00. | ||
| E3F2 | DEFB $00 | |||
| ReadSourceDisplayPointer_CurrentCharacterRecord | E3F3 | JR CheckCharacterForRoomGraphics_CharacterRecord | Store the current room on the character from CheckCharacterForRoomGraphics_CharacterRecord. | |
| Prev: E39C | Up: Map | Next: E3F5 |