Prev: 54800 Up: Map Next: 54884
54814: Write Character And Door To Buffer
Door frames 2 and 3 both contain a "section" of a game character. This is copied into a buffer by first drawing the game character fully to Door_Buffer. Then the door frame is drawn over the top (in the correct position).
Draws the game character together with door frame 2.
Character_Door_Frame_02 54814 CALL Character_Address On entry A points to a character index. The call to Character_Address translates this to the memory location of the character frame data (held in HL) and then calls Door_Buffer_Copy.
54817 CALL Door_Buffer_Copy
Door_Frame_02_Copy 54820 LD HL,48360 Copies Door_Frame_02 into the Door_Buffer (+2 bytes ~ $EA92).
54823 LD DE,60050
54826 LD B,88
Door_Frame_02_Copy_Loop 54828 PUSH BC
54829 LD BC,5
54832 LDIR
54834 INC DE
54835 INC DE
54836 POP BC
54837 DJNZ Door_Frame_02_Copy_Loop
54839 RET Return.
Draws the game character together with door frame 3.
Character_Door_Frame_03 54840 CALL Character_Address On entry A points to a character index. The call to Character_Address translates this to the memory location of the character frame data (held in HL) and then calls Door_Buffer_Copy.
54843 CALL Door_Buffer_Copy
Door_Frame_03_Copy 54846 LD HL,48800 Copies Door_Frame_03 into the Door_Buffer (+4 bytes ~ $EA94).
54849 LD DE,60052
54852 LD B,88
Door_Frame_03_Copy_Loop 54854 PUSH BC
54855 LD BC,3
54858 LDIR
54860 INC DE
54861 INC DE
54862 INC DE
54863 INC DE
54864 POP BC
54865 DJNZ Door_Frame_03_Copy_Loop
54867 RET Return.
Draws the game character alone to the door frame buffer.
Door_Buffer_Copy 54868 LD DE,60048 Draws a character into the Door_Buffer.
54871 LD B,88
Door_Buffer_Copy_Loop 54873 PUSH BC
54874 LD BC,6
54877 LDIR
54879 INC DE
54880 POP BC
54881 DJNZ Door_Buffer_Copy_Loop
54883 RET
Prev: 54800 Up: Map Next: 54884