![]() |
Routines |
| Prev: D610 | Up: Map | Next: D664 |
|
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 |