Prev: A2BD Up: Map Next: A35D
A2E4: Process Object Display
Used by the routine at ProcessObjectDisplayEntry.
ProcessObjectDisplay A2E4 LD A,$01 Write 01 to *ObjectDisplayFlag.
A2E6 LD ($A2AA),A
A2E9 PUSH IY Stash IY, BC, IX, HL and DE on the stack.
A2EB PUSH BC
A2EC PUSH IX
A2EE PUSH HL
A2EF PUSH DE
A2F0 LD A,($A033) Write *A033 to *A35D.
A2F3 LD ($A35D),A
A2F6 LD HL,($A034) Write *RoomDisplayParameter to *A35E.
A2F9 LD ($A35E),HL
A2FC LD A,($A00C) B=*A00C.
A2FF LD B,A
A300 AND A Set flags.
A301 LD A,$01 A=01.
A303 JR Z,ProcessObjectDisplay_0 Jump to ProcessObjectDisplay_0 if ?? is equal to A.
A305 XOR A Write 00 to *PrintModeFlag.
ProcessObjectDisplay_0 A306 LD ($A027),A
A309 CALL CheckObjectVisibility Call CheckObjectVisibility.
A30C JR NC,ProcessObjectDisplay_1 Jump to ProcessObjectDisplay_1 if ?? is greater than or equal to A.
A30E LD A,B A=B.
A30F AND A Set flags.
A310 JR NZ,ProcessObjectDisplay_1 Jump to ProcessObjectDisplay_1 if ?? is not equal to A.
A312 LD HL,$68D1 HL=68D1.
A315 CALL PrintTextAndHandleControlCharacters Call PrintTextAndHandleControlCharacters.
A318 JR ProcessObjectDisplay_5 Jump to ProcessObjectDisplay_5.
ProcessObjectDisplay_1 A31A LD A,($A35D) A=*A35D.
A31D CALL CalculateObjectTableOffset Call CalculateObjectTableOffset.
A320 PUSH HL IX=HL (using the stack).
A321 POP IX
A323 CALL ExtractObjectAttributes Call ExtractObjectAttributes.
A326 LD A,($A01D) A=*ObjectAttributeValue.
A329 AND %00010000 Keep only bits 4.
A32B JR NZ,ProcessObjectDisplay_5 Jump to ProcessObjectDisplay_5 if ?? is not equal to A.
A32D CP B Jump to ProcessObjectDisplay_2 if A is equal to B.
A32E JR Z,ProcessObjectDisplay_2
A330 CALL CheckCharacterID Call CheckCharacterID.
A333 CALL Z,PrintNewline Call PrintNewline if B is equal to 00.
ProcessObjectDisplay_2 A336 CALL ProcessObjectFromCurrentCharacterID_0 Call ProcessObjectFromCurrentCharacterID_0.
A339 LD DE,$017F DE=017F.
A33C XOR A Jump to ProcessObjectDisplay_3 if B is not equal to 00.
A33D CP B
A33E JR NZ,ProcessObjectDisplay_3
A340 CALL PrintTextToken Call PrintTextToken.
A343 CALL CheckAndResetCharacterState Call CheckAndResetCharacterState.
A346 JR ProcessObjectDisplay_4 Jump to ProcessObjectDisplay_4.
ProcessObjectDisplay_3 A348 CALL ProcessObject_Display Call ProcessObject_Display.
ProcessObjectDisplay_4 A34B CALL PrintNewline Call PrintNewline.
ProcessObjectDisplay_5 A34E XOR A Write 00 to;
A34F LD ($A2AA),A
A352 LD ($A027),A
A355 POP DE Restore DE, HL, IX, BC and IY from the stack.
A356 POP HL
A357 POP IX
A359 POP BC
A35A POP IY
A35C RET Return.
Prev: A2BD Up: Map Next: A35D