![]() |
Routines |
| Prev: E16B | Up: Map | Next: E1FC |
|
Chooses the picture and the room-display handler for the location on screen. A non-zero return means the script step succeeded. Reached through the object display table at Table_ObjectDisplayData, read by C966.
|
||||
| DispatchRoomGraphics | E17B | DEFB $8D,$07 | Display record read by ProcessDisplayRecord: flags 8D value 07. | |
| E17D | DEFB $07,$88,$E1,$FD,$FC | Refresh the room from the text at E188, using the low byte of the location, the high byte of the location. | ||
| E182 | DEFB $07,$D6,$E1,$FD,$FC | Refresh the room from the text at E1D6, using the low byte of the location, the high byte of the location. | ||
| E187 | DEFB $0B | Run the nested character script. | ||
| E188 | DEFB $0D,$07 | Display record read by ProcessDisplayRecord: flags 0D value 07. | ||
|
Run by CA64 after the display record at E188.
|
||||
| E18A | LD A,($A035) | Read the room graphics parameter. | ||
| E18D | CP $10 | Go to DispatchRoomGraphics_Next if it is 10. | ||
| E18F | JR Z,DispatchRoomGraphics_Next | |||
| E191 | CP $43 | Go to DispatchRoomGraphics_Next if it is Sitting Room. | ||
| E193 | JR Z,DispatchRoomGraphics_Next | |||
| E195 | CP $11 | Go to DispatchRoomGraphics_TestActionSucceeded if it is not Platform Two (Aldergate Station). | ||
| E197 | JR NZ,DispatchRoomGraphics_TestActionSucceeded | |||
| DispatchRoomGraphics_Next | E199 | LD IX,$9993 | Point IX at the character state at 9993. | |
| E19D | SET 1,(IX+$03) | Set bit 1 of the action flags. | ||
| E1A1 | JR DispatchRoomGraphics_TestActionSucceeded | Return non-zero through DispatchRoomGraphics_TestActionSucceeded. | ||
| E1A3 | DEFB $8D,$07 | Display record read by ProcessDisplayRecord: flags 8D value 07. | ||
| E1A5 | DEFB $17,$B2,$E1,$FF,$FC,$B1,$E1 | Refresh the room from the text at E1B2, using FF the high byte of the location and otherwise continue at E1B1. | ||
| E1AC | DEFB $07,$D6,$E1,$FD,$FC | Refresh the room from the text at E1D6, using the low byte of the location, the high byte of the location. | ||
| E1B1 | DEFB $0B | Run the nested character script. | ||
| E1B2 | DEFB $00,$07 | Display record read by ProcessDisplayRecord: flags 00 value 07. | ||
| E1B4 | LD A,($A035) | Read the room graphics parameter. | ||
| E1B7 | CP $43 | Go to DispatchRoomGraphics_TestActionSucceeded if it is not Sitting Room. | ||
| E1B9 | JR NZ,DispatchRoomGraphics_TestActionSucceeded | |||
| E1BB | CALL CheckObjectLocationMatch | Go to DispatchRoomGraphics_LeaveResultCharacter if the object is in this location. | ||
| E1BE | JR NZ,DispatchRoomGraphics_LeaveResultCharacter | |||
| E1C0 | CALL PrintLineAboutYou | Call PrintLineAboutYou and return zero through ParseInputNumber_ReturnZero. | ||
| E1C3 | JP ParseInputNumber_ReturnZero | |||
|
Leave 5F as the result, then use the character Pairs as the character record, then mark bit 1 of the action flags.
|
||||
| DispatchRoomGraphics_LeaveResultCharacter | E1C6 | LD A,$5F | Call PlaceCharacter to place character. | |
| E1C8 | CALL PlaceCharacter | |||
| E1CB | LD IX,$998F | Set the action-taken flag. | ||
| E1CF | SET 1,(IX+$03) | |||
| DispatchRoomGraphics_TestActionSucceeded | E1D3 | OR %00000001 | Reset the zero flag. | |
| E1D5 | RET | Return. | ||
| E1D6 | DEFB $0D,$17 | Display record read by ProcessDisplayRecord: flags 0D value 17. | ||
| E1D8 | LD A,($A036) | Read the character being processed. | ||
| E1DB | CALL FindResponseForThisId | Call FindResponseForThisId to see whether the id matches a record flag. | ||
| E1DE | JR Z,PrintLineAboutYou | Go to PrintLineAboutYou if no record flag matches. | ||
| E1E0 | INC IX | Move to the next graphics entry, read the room graphics parameter and call TestEndMarker_WalksThreeByte. | ||
| E1E2 | LD A,($A035) | |||
| E1E5 | CALL TestEndMarker_WalksThreeByte | |||
| E1E8 | JR Z,PrintLineAboutYou | Go to PrintLineAboutYou if the looked-up entry is FF. | ||
| E1EA | LD L,(IX+$01) | Read the message address. | ||
| E1ED | LD H,(IX+$02) | |||
|
This entry point is used by the routine at PrintLineAboutYou.
|
||||
| DispatchRoomGraphics_Loop | E1F0 | PUSH AF | Take the message, then call PrintTextAndHandleControlCharacters to print the message, saving result and the pointer. | |
| E1F1 | PUSH HL | |||
| E1F2 | LD HL,$6830 | |||
| E1F5 | CALL PrintTextAndHandleControlCharacters | |||
|
This entry point is used by the routine at FindResponseForThisId.
|
||||
| DispatchRoomGraphics_ActionSucceeded | E1F8 | POP AF | Restore the saved character from the stack. | |
|
This entry point is used by the routine at FindResponseForThisId.
|
||||
| DispatchRoomGraphics_0 | E1F9 | OR %00000001 | Reset the zero flag. | |
| E1FB | RET | Return. | ||
| Prev: E16B | Up: Map | Next: E1FC |