![]() |
Routines |
| Prev: E3A9 | Up: Map | Next: E4FB |
|
Used by the routine at ReadSourceDisplayPointer.
Checks the character id and returns when the room has nothing to draw. Reached through the display record at E40A, dispatched by DispatchLookedUpHandlerThird. A non-zero return means the script step succeeded.
|
||||
| CheckCharacterForRoomGraphics | E3F5 | CALL CheckFlagAndJumpToNewline | Call CheckFlagAndJumpToNewline, then return if ApplyRoomDisplay returns zero. | |
| E3F8 | CALL ApplyRoomDisplay | |||
| E3FB | RET Z | |||
| E3FC | LD IX,($A017) | Read the current character record and read the current object. | ||
| E400 | LD IY,($A013) | |||
| E404 | LD A,($A034) | Take the room display parameter and jump back to CombineCharacterRoom. | ||
| E407 | JP CombineCharacterRoom | |||
| E40A | DEFB $78,$20,$F5,$E3,$90,$40,$28,$00 | Display record read by ProcessDisplayRecord: flags 78 value 20 handler CheckCharacterForRoomGraphics, parameters 90 40 28 00 00. | ||
| E412 | DEFB $00 | |||
|
This entry point is used by the routine at ReadSourceDisplayPointer.
Run by CA64 after the display record at E40A.
|
||||
| CheckCharacterForRoomGraphics_CharacterRecord | E413 | LD IY,($A017) | Read the current character record. | |
| E417 | LD A,($A034) | |||
| E41A | LD (IY+$01),A | Store the room display parameter at IY+01. | ||
| E41D | OR %00000001 | Reset the zero flag. | ||
| E41F | RET | Return. | ||
|
Reached through the display record at E432, dispatched by DispatchLookedUpHandlerThird.
|
||||
| E420 | CALL CheckFlagAndJumpToNewline | Call CheckFlagAndJumpToNewline to move to the next line when the flag is set. | ||
| E423 | LD A,($A036) | Read the character being processed and take the room display parameter, then call D278 to test character id range. | ||
| E426 | LD HL,$A034 | |||
| E429 | CALL $D278 | |||
| E42C | JP NC,ParseInputNumber_ReturnZero | Go to ParseInputNumber_ReturnZero if D278 rejects this character. | ||
| E42F | OR %00000001 | Reset the zero flag. | ||
| E431 | RET | Return. | ||
| E432 | DEFB $78,$20,$20,$E4,$10,$80,$28,$00 | Display record read by ProcessDisplayRecord: flags 78 value 20 handler E420, parameters 10 80 28 00 00. | ||
| E43A | DEFB $00 | |||
| CheckCharacterForRoomGraphics_CurrentObject | E43B | LD IY,($A013) | Read the current object. | |
| E43F | LD A,(IY+$01) | Keep the object's marker and read the current character record. | ||
| E442 | LD IY,($A017) | |||
| E446 | LD (IY+$01),A | Store the object's marker on the character at IY+01. | ||
| E449 | OR %00000001 | Reset the zero flag. | ||
| E44B | RET | Return. | ||
|
Reached through the display record at E452, dispatched by DispatchLookedUpHandlerThird.
|
||||
| E44C | CALL CheckFlagAndJumpToNewline | Check the flag at CheckFlagAndJumpToNewline and compare the character from TestCharacterAgainstRoom. | ||
| E44F | JP TestCharacterAgainstRoom | |||
| E452 | DEFB $EC,$00,$4C,$E4 | Display record read by ProcessDisplayRecord: flags EC value 00 handler E44C. | ||
| E456 | DEFB $07,$2F,$E5,$0A,$FF | Refresh the room from the text at E52F, using Maid, FF. | ||
| E45B | DEFB $47,$88,$E4,$FD,$FF | Refresh the room from the text at E488, using the low byte of the location, FF. | ||
| E460 | DEFB $57,$52,$DD,$FA,$FF,$6B,$E4 | Refresh the room from the text at DD52, using the current room, FF and otherwise continue at E46B. | ||
| E467 | DEFB $43,$88,$E5 | Show the message at E588. | ||
| E46A | DEFB $0B | Run the nested character script. | ||
| E46B | DEFB $C7,$FD,$E5,$FD,$FF,$81,$E4 | Refresh the room from the text at E5FD, using the low byte of the location, FF and otherwise continue at E481. | ||
| E472 | DEFB $C1,$0D,$81,$E4 | Perform the simple action for Tricia Fender and otherwise continue at E481. | ||
| E476 | DEFB $57,$84,$DD,$FD,$FF,$81,$E4 | Refresh the room from the text at DD84, using the low byte of the location, FF and otherwise continue at E481. | ||
| E47D | DEFB $42,$0C,$FA,$FF | Copy room parameters Local Police Man, the current room, FF into the display. | ||
| E481 | DEFB $0F | Mark a script error and carry on. | ||
| E482 | DEFB $C3,$7A,$E5,$5B,$E4 | Show the message at E57A and otherwise continue at E45B. | ||
| E487 | DEFB $0A | Run the nested character script. | ||
| E488 | DEFB $27,$00 | Display record read by ProcessDisplayRecord: flags 27 value 00. | ||
| E48A | LD IX,($A013) | Read the current object. | ||
| E48E | LD A,(IX+$0F) | Record the current room. | ||
| E491 | LD ($9FD6),A | |||
| E494 | OR %00000001 | Reset the zero flag. | ||
| E496 | RET | Return. | ||
| E497 | DEFB $47,$24,$B0,$E4 | Display record read by ProcessDisplayRecord: flags 47 value 24 handler E4B0. | ||
| E49B | LD A,($A035) | Read the room graphics parameter and keep it in B. | ||
| E49E | LD B,A | |||
| E49F | LD A,($A034) | Read the room display parameter. | ||
| E4A2 | LD IX,($A013) | Read the current object. | ||
| E4A6 | LD (IX+$01),$FF | Store FF in the moved marker, then call StoreMatchedCharacterRoom to compare the room display parameter with the current character. | ||
| E4AA | CALL StoreMatchedCharacterRoom | |||
| E4AD | OR %00000001 | Reset the zero flag. | ||
| E4AF | RET | Return. | ||
|
Reached through the display record at E497, dispatched by DispatchLookedUpHandlerThird.
|
||||
| E4B0 | LD IX,($A013) | Read the current object. | ||
| E4B4 | BIT 6,(IX+$05) | Jump to CheckCharacterForRoomGraphics_Succeed if the special-description flag is clear. | ||
| E4B8 | JR Z,CheckCharacterForRoomGraphics_Succeed | |||
| E4BA | LD A,(IX+$0F) | Read the character attribute, then call FetchLocationDataPointer to look up this room. | ||
| E4BD | CALL FetchLocationDataPointer | |||
| E4C0 | LD A,(IX+$09) | Record the saved character. | ||
| E4C3 | LD ($A033),A | |||
| CheckCharacterForRoomGraphics_Succeed | E4C6 | OR %00000001 | Reset the zero flag. | |
| E4C8 | RET | Return. | ||
| E4C9 | DEFB $04,$00 | Display record read by ProcessDisplayRecord: flags 04 value 00. | ||
| E4CB | LD HL,$9C56 | Point HL at SetObjectHeldMark and read the room display parameter. | ||
| E4CE | LD A,($A034) | |||
| E4D1 | PUSH AF | |||
| E4D2 | CP $02 | Jump ahead to CheckCharacterForRoomGraphics_PrintMessage if the room display parameter is 02. | ||
| E4D4 | JR Z,CheckCharacterForRoomGraphics_PrintMessage | |||
| E4D6 | CP $03 | Jump ahead to CheckCharacterForRoomGraphics_PrintMessage if the room display parameter is 03. | ||
| E4D8 | JR Z,CheckCharacterForRoomGraphics_PrintMessage | |||
| E4DA | CP $04 | Jump ahead to CheckCharacterForRoomGraphics_ReadCharacter if the room display parameter is not 04. | ||
| E4DC | JR NZ,CheckCharacterForRoomGraphics_ReadCharacter | |||
| CheckCharacterForRoomGraphics_PrintMessage | E4DE | LD HL,$7611 | Take the message, then call PrintTextAndHandleControlCharacters to print the message. | |
| E4E1 | CALL PrintTextAndHandleControlCharacters | |||
| E4E4 | LD HL,$9C60 | Take the routine at ClearObjectHeldMark. | ||
| CheckCharacterForRoomGraphics_ReadCharacter | E4E7 | LD A,($A036) | Keep the current character, call DispatchLookedUpHandler. | |
| E4EA | PUSH AF | |||
| E4EB | CALL DispatchLookedUpHandler | |||
| E4EE | POP AF | Restore that character from the stack. | ||
| E4EF | POP BC | Restore the room display parameter from the stack. | ||
| E4F0 | CALL StoreMatchedCharacterRoom | Call StoreMatchedCharacterRoom. | ||
| E4F3 | LD HL,($DCFF) | Read the record at DCFF and clear its marker. | ||
| E4F6 | RES 6,(HL) | |||
| E4F8 | OR %00000001 | Reset the zero flag. | ||
| E4FA | RET | Return. | ||
| Prev: E3A9 | Up: Map | Next: E4FB |