Prev: C4B2 Up: Map Next: C821
C4D1: Process Display Action
ProcessDisplayAction C4D1 LD A,($A033)
C4D4 BIT 7,A
C4D6 JP NZ,ProcessDisplayAction_13
C4D9 CALL CalculateObjectTableOffset
C4DC PUSH HL
C4DD POP IX
C4DF CALL ExtractObjectAttributes
C4E2 CALL CheckDisplayFlagBit3
C4E5 CALL CheckDisplayFlagBit2
C4E8 XOR A
C4E9 LD ($A00B),A
C4EC LD A,($A01D)
C4EF AND $0C
C4F1 JR Z,ProcessDisplayAction_4
C4F3 LD A,($A00F)
C4F6 CP $05
C4F8 JR NZ,ProcessDisplayAction_0
C4FA LD A,($A034)
C4FD CP $FE
C4FF JP NZ,SaveAndRestorePointers_2
ProcessDisplayAction_0 C502 LD A,($A010)
C505 CP $05
C507 JR NZ,ProcessDisplayAction_1
C509 LD A,($A035)
C50C CP $FE
C50E JP NZ,SaveAndRestorePointers_2
ProcessDisplayAction_1 C511 LD A,($A00F)
C514 AND A
C515 JR Z,ProcessDisplayAction_3
C517 LD A,($A034)
C51A CP $FF
C51C JR NZ,ProcessDisplayAction_3
C51E LD B,$FF
ProcessDisplayAction_2 C520 INC B
C521 CALL CheckDisplayParameter_0
C524 RET Z
C525 LD ($A034),A
C528 PUSH BC
C529 CALL ProcessDisplayAction_7
C52C POP BC
C52D JR NZ,ProcessDisplayAction_4
C52F JR ProcessDisplayAction_2
ProcessDisplayAction_3 C531 CALL ProcessDisplayAction_5
C534 JR Z,ProcessDisplayAction_4
C536 CALL ProcessDisplayAction_8
C539 RET Z
ProcessDisplayAction_4 C53A LD A,$01
C53C LD ($A00B),A
C53F JP ProcessObjectDisplayLogic
ProcessDisplayAction_5 C542 LD A,($A010)
C545 AND A
C546 RET Z
C547 LD A,($A035)
C54A CP $FF
C54C JR NZ,ProcessDisplayAction_6
C54E LD A,($A01D)
C551 AND $02
C553 JR NZ,ProcessDisplayAction_6
C555 OR $01
C557 RET
ProcessDisplayAction_6 C558 XOR A
C559 RET
ProcessDisplayAction_7 C55A CALL ProcessDisplayAction_5
C55D JP Z,ProcessObjectDisplayLogic
ProcessDisplayAction_8 C560 LD B,$FF
ProcessDisplayAction_9 C562 INC B
C563 CALL CheckDisplayParameter
C566 JR Z,ProcessDisplayAction_10
C568 LD ($A035),A
C56B CALL ProcessObjectDisplayLogic
C56E JR Z,ProcessDisplayAction_9
ProcessDisplayAction_10 C570 RET
ProcessDisplayAction_11 C571 LD A,(IX+$00)
C574 AND $0F
C576 LD ($A00F),A
C579 RET
ProcessDisplayAction_12 C57A LD A,(IX+$01)
C57D AND $0F
C57F LD ($A010),A
C582 RET
ProcessDisplayAction_13 C583 AND $7F
C585 LD E,A
C586 LD D,$00
C588 LD HL,$9FAB
C58B ADD HL,DE
C58C ADD HL,DE
C58D LD E,(HL)
C58E INC HL
C58F LD D,(HL)
C590 EX DE,HL
This entry point is used by the routine at ClearRoomDisplayParameters.
ProcessDisplayAction_14 C591 PUSH HL
C592 POP IX
C594 CALL ProcessDisplayAction_11
C597 CALL ProcessDisplayAction_12
C59A XOR A
C59B LD ($A00B),A
C59E LD A,($A00F)
C5A1 LD HL,$A010
C5A4 OR (HL)
C5A5 JR Z,ProcessDisplayAction_21
C5A7 LD A,($A00F)
C5AA CP $05
C5AC JR Z,ProcessDisplayAction_15
C5AE CP $06
C5B0 JR NZ,ProcessDisplayAction_16
ProcessDisplayAction_15 C5B2 LD A,($A034)
C5B5 CP $FE
C5B7 JP NZ,SaveAndRestorePointers_2
ProcessDisplayAction_16 C5BA LD A,($A010)
C5BD CP $05
C5BF JR Z,ProcessDisplayAction_17
C5C1 CP $06
C5C3 JR NZ,ProcessDisplayAction_18
ProcessDisplayAction_17 C5C5 LD A,($A035)
C5C8 CP $FE
C5CA JP NZ,SaveAndRestorePointers_2
ProcessDisplayAction_18 C5CD LD A,($A00F)
C5D0 AND A
C5D1 JR Z,ProcessDisplayAction_20
C5D3 LD A,($A034)
C5D6 CP $FF
C5D8 JR NZ,ProcessDisplayAction_20
C5DA LD B,$00
ProcessDisplayAction_19 C5DC CALL CheckDisplayParameter_0
C5DF RET Z
C5E0 LD ($A034),A
C5E3 CALL ProcessDisplayAction_24
C5E6 JR NZ,ProcessDisplayAction_21
C5E8 INC B
C5E9 JR ProcessDisplayAction_19
ProcessDisplayAction_20 C5EB CALL ProcessDisplayAction_22
C5EE JR Z,ProcessDisplayAction_21
C5F0 CALL ProcessDisplayAction_25
C5F3 RET Z
ProcessDisplayAction_21 C5F4 LD A,$01
C5F6 LD ($A00B),A
C5F9 JP ProcessObjectDisplayWithPointer
ProcessDisplayAction_22 C5FC LD A,($A010)
C5FF AND A
C600 RET Z
C601 LD A,($A035)
C604 CP $FF
C606 JR NZ,ProcessDisplayAction_23
C608 OR $01
C60A RET
ProcessDisplayAction_23 C60B XOR A
C60C RET
ProcessDisplayAction_24 C60D CALL ProcessDisplayAction_22
C610 JP Z,ProcessObjectDisplayWithPointer
ProcessDisplayAction_25 C613 PUSH BC
C614 LD B,$00
ProcessDisplayAction_26 C616 CALL CheckDisplayParameter
C619 JR Z,ProcessDisplayAction_27
C61B LD ($A035),A
C61E CALL ProcessObjectDisplayWithPointer
C621 JR NZ,ProcessDisplayAction_27
C623 INC B
C624 JR ProcessDisplayAction_26
ProcessDisplayAction_27 C626 POP BC
C627 RET
This entry point is used by the routine at ProcessObjectDisplayEntry.
ProcessDisplayAction_28 C628 LD A,(IY+$00)
C62B AND $0F
C62D JR NZ,ProcessDisplayAction_31
ProcessDisplayAction_29 C62F OR $01
C631 RET
ProcessDisplayAction_30 C632 JP ReturnZero
ProcessDisplayAction_31 C635 CP $05
C637 JR C,ProcessDisplayAction_34
C639 CP $07
C63B JR NC,ProcessDisplayAction_36
C63D LD A,($A034)
C640 CP $FE
C642 JR NZ,ProcessDisplayAction_32
C644 LD HL,($A02F)
C647 LD A,(IY+$00)
C64A AND $0F
C64C CP $05
C64E JR NZ,ProcessDisplayAction_33
C650 BIT 7,L
C652 JR Z,ProcessDisplayAction_29
ProcessDisplayAction_32 C654 XOR A
C655 LD ($A021),A
C658 JR ProcessDisplayAction_30
ProcessDisplayAction_33 C65A BIT 7,L
C65C JR NZ,ProcessDisplayAction_29
C65E JR ProcessDisplayAction_32
ProcessDisplayAction_34 C660 CP $03
C662 JR NC,ProcessDisplayAction_35
C664 LD A,($A034)
C667 CALL FetchLocationDataPointer
C66A BIT 7,(IX+$00)
C66E JR Z,ProcessDisplayAction_32
ProcessDisplayAction_35 C670 BIT 0,(IY+$00)
C674 JR Z,ProcessDisplayAction_29
C676 LD A,($A034)
C679 CALL ProcessObjectDisplayType
C67C CP $FF
C67E JR Z,ProcessDisplayAction_32
C680 JR ProcessDisplayAction_29
ProcessDisplayAction_36 C682 LD A,($A034)
C685 LD ($CB7A),A
C688 LD C,A
C689 LD A,(IY+$00)
C68C CALL ProcessDisplayAction_56
C68F JR Z,ProcessDisplayAction_32
C691 BIT 4,(IY+$00)
C695 JR Z,ProcessDisplayAction_29
C697 LD A,(IY+$02)
C69A LD L,(IY+$03)
C69D LD H,(IY+$04)
C6A0 BIT 6,(IY+$00)
C6A4 JR Z,ProcessDisplayAction_37
C6A6 LD A,(IY+$04)
C6A9 LD L,(IY+$05)
C6AC LD H,(IY+$06)
ProcessDisplayAction_37 C6AF RRCA
C6B0 RRCA
C6B1 RRCA
C6B2 RRCA
C6B3 LD B,A
C6B4 CALL ProcessDisplayAction_47
C6B7 RET NZ
ProcessDisplayAction_38 C6B8 LD A,$01
C6BA LD ($A021),A
C6BD RET
This entry point is used by the routine at ProcessObjectDisplayEntry.
ProcessDisplayAction_39 C6BE LD A,(IY+$01)
C6C1 AND $0F
C6C3 JR NZ,ProcessDisplayAction_41
ProcessDisplayAction_40 C6C5 OR $01
C6C7 RET
C6C8 JP ReturnZero
ProcessDisplayAction_41 C6CB CP $05
C6CD JR C,ProcessDisplayAction_43
C6CF CP $07
C6D1 JR NC,ProcessDisplayAction_45
C6D3 LD A,($A035)
C6D6 CP $FE
C6D8 JP NZ,ProcessDisplayAction_32
C6DB LD HL,($A031)
C6DE LD A,(IY+$01)
C6E1 AND $0F
C6E3 CP $05
C6E5 JR NZ,ProcessDisplayAction_42
C6E7 BIT 7,L
C6E9 JR Z,ProcessDisplayAction_40
C6EB JP ProcessDisplayAction_32
ProcessDisplayAction_42 C6EE BIT 7,L
C6F0 JR NZ,ProcessDisplayAction_40
C6F2 JP ProcessDisplayAction_32
ProcessDisplayAction_43 C6F5 CP $03
C6F7 JR NC,ProcessDisplayAction_44
C6F9 LD A,($A035)
C6FC CALL FetchLocationDataPointer
C6FF BIT 7,(IX+$00)
C703 JP Z,ProcessDisplayAction_32
ProcessDisplayAction_44 C706 BIT 0,(IY+$01)
C70A JR Z,ProcessDisplayAction_40
C70C LD A,($A035)
C70F CALL ProcessObjectDisplayType
C712 CP $FF
C714 JP Z,ProcessDisplayAction_32
C717 JR ProcessDisplayAction_40
ProcessDisplayAction_45 C719 LD A,($A035)
C71C LD ($CB7A),A
C71F LD C,A
C720 LD A,(IY+$01)
C723 CALL ProcessDisplayAction_56
C726 RET Z
C727 BIT 4,(IY+$00)
C72B JP Z,ProcessDisplayAction_29
C72E LD A,(IY+$02)
C731 LD L,(IY+$05)
C734 LD H,(IY+$06)
C737 BIT 6,(IY+$00)
C73B JR Z,ProcessDisplayAction_46
C73D LD A,(IY+$04)
C740 LD L,(IY+$07)
C743 LD H,(IY+$08)
ProcessDisplayAction_46 C746 LD B,A
C747 CALL ProcessDisplayAction_47
C74A RET NZ
C74B JP ProcessDisplayAction_38
ProcessDisplayAction_47 C74E LD A,C
C74F CALL FetchObjectDataPointer
C752 LD C,(IX+$05)
C755 LD A,B
C756 RRCA
C757 RRCA
C758 AND $03
C75A LD D,L
C75B CALL ProcessDisplayAction_48
C75E RET Z
C75F LD A,B
C760 AND $03
C762 LD D,H
ProcessDisplayAction_48 C763 JR NZ,ProcessDisplayAction_50
C765 LD A,D
C766 AND C
C767 CP D
ProcessDisplayAction_49 C768 JP Z,ProcessDisplayAction_29
C76B JR ProcessDisplayAction_53
ProcessDisplayAction_50 C76D CP $01
C76F JR NZ,ProcessDisplayAction_51
C771 LD A,D
C772 AND A
C773 JR Z,ProcessDisplayAction_49
C775 AND C
C776 JR Z,ProcessDisplayAction_54
C778 JP ProcessDisplayAction_29
ProcessDisplayAction_51 C77B CP $02
C77D JR NZ,ProcessDisplayAction_52
C77F LD A,D
C780 AND C
C781 JP Z,ProcessDisplayAction_29
C784 OR $80
C786 JR ProcessDisplayAction_55
ProcessDisplayAction_52 C788 LD A,D
C789 AND C
C78A CP D
C78B JP NZ,ProcessDisplayAction_29
C78E OR $80
C790 JR ProcessDisplayAction_55
ProcessDisplayAction_53 C792 XOR $FF
C794 AND D
ProcessDisplayAction_54 C795 AND $7F
ProcessDisplayAction_55 C797 LD ($CB79),A
C79A LD A,($A00B)
C79D AND A
C79E JP Z,ProcessDisplayAction_29
C7A1 LD HL,$CB7B
C7A4 XOR A
C7A5 RET
ProcessDisplayAction_56 C7A6 AND $0F
C7A8 CP $07
C7AA JP Z,ProcessDisplayAction_29
C7AD CP $08
C7AF JR NZ,ProcessDisplayAction_58
C7B1 LD A,C
C7B2 CALL CheckObjectLocationMatch
ProcessDisplayAction_57 C7B5 JP Z,ProcessDisplayAction_30
C7B8 JP ProcessDisplayAction_29
ProcessDisplayAction_58 C7BB CP $09
C7BD JR NZ,ProcessDisplayAction_59
C7BF LD A,C
C7C0 CALL CheckObjectLocationMatch
C7C3 JP Z,ProcessDisplayAction_30
C7C6 LD A,C
C7C7 CALL GetObjectAttribute
C7CA JP NZ,ProcessDisplayAction_30
C7CD LD A,C
C7CE CALL TestObjectHasSpecialDescription
C7D1 JP NZ,ProcessDisplayAction_30
C7D4 LD B,C
C7D5 LD A,($A036)
C7D8 CALL ProcessObjectAttribute_C8C6
C7DB JP Z,ProcessDisplayAction_30
C7DE LD A,C
C7DF CALL GetObjectMotherID
C7E2 JR ProcessDisplayAction_49
ProcessDisplayAction_59 C7E4 CP $0A
C7E6 JR NZ,ProcessDisplayAction_60
C7E8 LD A,C
C7E9 CALL CheckObjectLocationMatch
C7EC JP Z,ProcessDisplayAction_30
C7EF LD A,C
C7F0 CALL CheckCharacterIDRange
C7F3 JP NC,ProcessDisplayAction_30
C7F6 JP ProcessDisplayAction_29
ProcessDisplayAction_60 C7F9 CP $0B
C7FB JR NZ,ProcessDisplayAction_61
C7FD LD A,C
C7FE CALL CheckObjectLocationMatch
C801 JP Z,ProcessDisplayAction_30
C804 LD A,C
C805 CALL GetObjectAttribute
C808 JR ProcessDisplayAction_57
ProcessDisplayAction_61 C80A CP $0C
C80C JR NZ,ProcessDisplayAction_62
C80E LD A,C
C80F CALL TestObjectHasSpecialDescription
C812 JR ProcessDisplayAction_57
ProcessDisplayAction_62 C814 LD A,C
C815 CALL CheckObjectLocationMatch
C818 JP Z,ProcessDisplayAction_30
C81B LD A,C
C81C CALL TestObjectHasSpecialDescription
C81F JR ProcessDisplayAction_57
Prev: C4B2 Up: Map Next: C821