Prev: 47635 Up: Map Next: 48101
47648: Process Character Display
Used by the routine at ProcessScriptDisplay.
ProcessCharacterDisplay 47648 LD A,(41014)
47651 LD HL,47719
47654 CP 3
47656 JR Z,ProcessCharacterDisplay_0
47658 LD HL,47975
47661 CP 2
47663 JR NZ,ProcessCharacterDisplay_1
ProcessCharacterDisplay_0 47665 CALL ProcessCharacterDisplay_2
ProcessCharacterDisplay_1 47668 LD A,1
47670 POP HL
47671 POP IY
47673 POP IX
47675 AND A
47676 SCF
47677 RET
ProcessCharacterDisplay_2 47678 PUSH IX
47680 XOR A
47681 LD (40939),A
47684 LD E,(IX+5)
47687 LD D,(IX+6)
47690 PUSH DE
47691 PUSH DE
47692 POP IY
47694 CALL JumpToHandler
47697 POP IX
47699 PUSH AF
47700 CALL MoveIXToHLAndJump
47703 POP AF
47704 POP IX
47706 PUSH AF
47707 CALL CopyPointerToStack
47710 POP AF
47711 RET
47712 NOP
47713 NOP
47714 NOP
47715 NOP
47716 NOP
47717 NOP
47718 NOP
47719 LD (47712),A
47722 LD (47713),A
ProcessCharacterDisplay_3 47725 CALL CalculateObjectPointerOffset
47728 JP C,ProcessCharacterDisplay_22
47731 JR Z,ProcessCharacterDisplay_7
47733 CALL SetObjectTablePointer
47736 JR NZ,ProcessCharacterDisplay_5
47738 LD A,1
ProcessCharacterDisplay_4 47740 CALL ProcessCharacterDisplay_14
47743 LD (47717),IX
47747 JR ProcessCharacterDisplay_8
ProcessCharacterDisplay_5 47749 CALL SearchObjectTable
47752 JR NZ,ProcessCharacterDisplay_6
47754 LD A,2
47756 BIT 5,(IX+3)
47760 JR NZ,ProcessCharacterDisplay_4
47762 CALL GetCharacterAttribute
47765 CP 50
47767 LD A,3
47769 JR C,ProcessCharacterDisplay_4
47771 JR ProcessCharacterDisplay_7
ProcessCharacterDisplay_6 47773 CALL GetCharacterAttribute
47776 CP 70
47778 LD A,4
47780 JR C,ProcessCharacterDisplay_4
ProcessCharacterDisplay_7 47782 CALL 44713
47785 JR NZ,ProcessCharacterDisplay_3
ProcessCharacterDisplay_8 47787 LD A,(47712)
47790 AND A
47791 JP Z,ProcessCharacterDisplay_13
47794 LD A,(47713)
47797 AND A
47798 JR Z,ProcessCharacterDisplay_12
47800 LD IX,40950
ProcessCharacterDisplay_9 47804 CALL FetchObjectPointerFromStack
47807 JR Z,ProcessCharacterDisplay_10
47809 LD A,(47714)
47812 CP (IX+0)
47815 JR NZ,ProcessCharacterDisplay_9
47817 LD A,(47715)
47820 CP (IX+1)
47823 JR NZ,ProcessCharacterDisplay_9
47825 LD A,(47716)
47828 CP (IX+2)
47831 JR NZ,ProcessCharacterDisplay_9
47833 PUSH IY
47835 PUSH IX
47837 POP DE
47838 LD IY,40948
47842 CALL IncrementPointerAndCompare
47845 LD A,(IX-2)
47848 LD (IY-2),A
47851 LD A,(IX-1)
47854 LD (IY-1),A
47857 POP IY
47859 JR ProcessCharacterDisplay_11
ProcessCharacterDisplay_10 47861 LD A,5
47863 CALL AllocateMemory
ProcessCharacterDisplay_11 47866 LD A,(47714)
47869 LD HL,(47715)
47872 LD (IX+0),A
47875 LD (IX+1),L
47878 LD (IX+2),H
47881 LD HL,(40948)
47884 LD (40948),IX
47888 LD (IX-2),L
47891 LD (IX-1),H
ProcessCharacterDisplay_12 47894 LD A,(47712)
47897 CP 1
47899 JR Z,ProcessCharacterDisplay_15
47901 CALL GetCharacterAttribute
47904 CP 25
47906 JR C,ProcessCharacterDisplay_13
47908 LD IX,47714
47912 CALL ProcessObjectPointer
47915 JR NZ,ProcessCharacterDisplay_13
47917 LD A,C
47918 PUSH BC
47919 CALL PointToObjectAttributeByte
47922 POP AF
47923 PUSH HL
47924 CALL PointToObjectAttributeByte
47927 PUSH HL
47928 LD HL,28514
47931 CALL PrintTextAndHandleControlCharacters
47934 RET
ProcessCharacterDisplay_13 47935 LD HL,28500
47938 CALL PrintTextAndHandleControlCharacters
47941 RET
ProcessCharacterDisplay_14 47942 PUSH AF
47943 LD A,1
47945 LD (47713),A
47948 POP AF
47949 LD (47712),A
47952 LD HL,47641
47955 LD DE,47714
47958 LD BC,3
47961 LDIR
47963 RET
ProcessCharacterDisplay_15 47964 LD IX,(47717)
47968 LD L,(IX+3)
47971 LD H,(IX+4)
47974 JP (HL)
47975 LD (47645),A
47978 LD (47644),A
ProcessCharacterDisplay_16 47981 CALL CalculateObjectPointerOffset
47984 JP C,ProcessCharacterDisplay_22
47987 CALL CheckObjectAttribute
47990 JR Z,ProcessCharacterDisplay_17
47992 LD HL,47644
47995 INC (HL)
ProcessCharacterDisplay_17 47996 CALL 44713
47999 JR NZ,ProcessCharacterDisplay_16
48001 LD A,(47644)
48004 AND A
48005 JR NZ,ProcessCharacterDisplay_18
48007 LD HL,29279
48010 CALL PrintTextAndHandleControlCharacters
48013 RET
ProcessCharacterDisplay_18 48014 LD A,(47645)
48017 AND A
48018 JR Z,ProcessCharacterDisplay_24
48020 LD IX,(47646)
48024 PUSH IX
48026 CALL AdvancePointerAndCheckBit
ProcessCharacterDisplay_19 48029 LD A,(IX+3)
48032 AND 192
48034 CP 128
48036 JR Z,ProcessCharacterDisplay_20
48038 BIT 3,(IX+3)
48042 JR NZ,ProcessCharacterDisplay_20
48044 CALL ProcessEntryWithCounter
48047 JR ProcessCharacterDisplay_19
ProcessCharacterDisplay_20 48049 POP IX
48051 JR NZ,ProcessCharacterDisplay_23
48053 LD HL,29333
ProcessCharacterDisplay_21 48056 PUSH IX
48058 CALL PrintTextAndHandleControlCharacters
48061 RET
ProcessCharacterDisplay_22 48062 LD HL,29251
48065 JP PrintTextAndHandleControlCharacters
ProcessCharacterDisplay_23 48068 LD HL,29350
48071 JR ProcessCharacterDisplay_21
ProcessCharacterDisplay_24 48073 CALL ProcessGameStatusEntries
48076 CALL ProcessGameStatusEntriesAlternate
48079 LD A,B
48080 AND A
48081 JR NZ,PrintTextBasedOnFlag
48083 CALL ProcessGameStatusEntriesWithCounter
48086 AND A
48087 JR Z,ProcessCharacterDisplay_25
48089 LD HL,29373
48092 JR ProcessCharacterDisplay_21
ProcessCharacterDisplay_25 48094 LD HL,29310
48097 CALL PrintTextAndHandleControlCharacters
48100 RET
Prev: 47635 Up: Map Next: 48101