Prev: E16B Up: Map Next: E1FC
E17B: Dispatch Room Graphics
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.
Run by CA64 after the display record at E1B2.
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.
Run by CA64 after the display record at E1D6.
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