Prev: 41661 Up: Map Next: 41821
41700: Process Object Display
Used by the routine at ProcessObjectDisplayEntry.
ProcessObjectDisplay 41700 LD A,1 Write 1 to *ObjectDisplayFlag.
41702 LD (41642),A
41705 PUSH IY Stash IY, BC, IX, HL and DE on the stack.
41707 PUSH BC
41708 PUSH IX
41710 PUSH HL
41711 PUSH DE
41712 LD A,(41011) Write *41011 to *41821.
41715 LD (41821),A
41718 LD HL,(41012) Write *RoomDisplayParameter to *41822.
41721 LD (41822),HL
41724 LD A,(40972) B=*40972.
41727 LD B,A
41728 AND A Set flags.
41729 LD A,1 A=1.
41731 JR Z,ProcessObjectDisplay_0 Jump to ProcessObjectDisplay_0 if ?? is equal to A.
41733 XOR A Write 0 to *PrintModeFlag.
ProcessObjectDisplay_0 41734 LD (40999),A
41737 CALL CheckObjectVisibility Call CheckObjectVisibility.
41740 JR NC,ProcessObjectDisplay_1 Jump to ProcessObjectDisplay_1 if ?? is greater than or equal to A.
41742 LD A,B A=B.
41743 AND A Set flags.
41744 JR NZ,ProcessObjectDisplay_1 Jump to ProcessObjectDisplay_1 if ?? is not equal to A.
41746 LD HL,26833 HL=26833.
41749 CALL PrintTextAndHandleControlCharacters Call PrintTextAndHandleControlCharacters.
41752 JR ProcessObjectDisplay_5 Jump to ProcessObjectDisplay_5.
ProcessObjectDisplay_1 41754 LD A,(41821) A=*41821.
41757 CALL CalculateObjectTableOffset Call CalculateObjectTableOffset.
41760 PUSH HL IX=HL (using the stack).
41761 POP IX
41763 CALL ExtractObjectAttributes Call ExtractObjectAttributes.
41766 LD A,(40989) A=*ObjectAttributeValue.
41769 AND %00010000 Keep only bits 4.
41771 JR NZ,ProcessObjectDisplay_5 Jump to ProcessObjectDisplay_5 if ?? is not equal to A.
41773 CP B Jump to ProcessObjectDisplay_2 if A is equal to B.
41774 JR Z,ProcessObjectDisplay_2
41776 CALL CheckCharacterID Call CheckCharacterID.
41779 CALL Z,PrintNewline Call PrintNewline if B is equal to 0.
ProcessObjectDisplay_2 41782 CALL ProcessObjectFromCurrentCharacterID_0 Call ProcessObjectFromCurrentCharacterID_0.
41785 LD DE,383 DE=383.
41788 XOR A Jump to ProcessObjectDisplay_3 if B is not equal to 0.
41789 CP B
41790 JR NZ,ProcessObjectDisplay_3
41792 CALL PrintTextToken Call PrintTextToken.
41795 CALL CheckAndResetCharacterState Call CheckAndResetCharacterState.
41798 JR ProcessObjectDisplay_4 Jump to ProcessObjectDisplay_4.
ProcessObjectDisplay_3 41800 CALL ProcessObject_Display Call ProcessObject_Display.
ProcessObjectDisplay_4 41803 CALL PrintNewline Call PrintNewline.
ProcessObjectDisplay_5 41806 XOR A Write 0 to;
41807 LD (41642),A
41810 LD (40999),A
41813 POP DE Restore DE, HL, IX, BC and IY from the stack.
41814 POP HL
41815 POP IX
41817 POP BC
41818 POP IY
41820 RET Return.
Prev: 41661 Up: Map Next: 41821