Prev: D610 Up: Map Next: D664
D61E: 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 D61E 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.
D621 CALL Door_Buffer_Copy
Door_Frame_02_Copy D624 LD HL,$BCE8 Copies Door_Frame_02 into the Door_Buffer (+2 bytes ~ $EA92).
D627 LD DE,$EA92
D62A LD B,$58
Door_Frame_02_Copy_Loop D62C PUSH BC
D62D LD BC,$0005
D630 LDIR
D632 INC DE
D633 INC DE
D634 POP BC
D635 DJNZ Door_Frame_02_Copy_Loop
D637 RET Return.
Draws the game character together with door frame 3.
Character_Door_Frame_03 D638 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.
D63B CALL Door_Buffer_Copy
Door_Frame_03_Copy D63E LD HL,$BEA0 Copies Door_Frame_03 into the Door_Buffer (+4 bytes ~ $EA94).
D641 LD DE,$EA94
D644 LD B,$58
Door_Frame_03_Copy_Loop D646 PUSH BC
D647 LD BC,$0003
D64A LDIR
D64C INC DE
D64D INC DE
D64E INC DE
D64F INC DE
D650 POP BC
D651 DJNZ Door_Frame_03_Copy_Loop
D653 RET Return.
Draws the game character alone to the door frame buffer.
Door_Buffer_Copy D654 LD DE,$EA90 Draws a character into the Door_Buffer.
D657 LD B,$58
Door_Buffer_Copy_Loop D659 PUSH BC
D65A LD BC,$0006
D65D LDIR
D65F INC DE
D660 POP BC
D661 DJNZ Door_Buffer_Copy_Loop
D663 RET
Prev: D610 Up: Map Next: D664