Routines |
Prev: 34567 | Up: Map | Next: 34697 |
Used by the routine at 27703.
|
||||
34627 | LD A,35 | If Magic Knight is not carrying the Mirror (35)... | ||
34629 | CALL 33645 | ... | ||
34632 | RET NZ | ...then return | ||
34633 | LD HL,25164 | Point HL at start of Magic Knight's current inventory (carrying) | ||
34636 | LD B,5 | Load B with 5 (five inventory slots) | ||
34638 | LD DE,784 | Load DE with x- and y-coordinates respectively to start drawing object graphics (D, or x = 3, E, or y = 16) | ||
34641 | PUSH BC | Store BC (B = remaining number of inventory slots to process) | ||
34642 | PUSH HL | Store HL (pointer to current position in Magic Knight's current inventory) | ||
34643 | PUSH DE | Store DE (coordinates in characters to draw object) | ||
34644 | LD A,(HL) | Load index of object in current slot in Magic Knight's inventory into A | ||
34645 | OR A | If this is zero... | ||
34646 | JR Z,34693 | ...then restore registers and return | ||
34648 | LD E,6 | Load 6 (index of objects' attribute property) into E | ||
34650 | CALL 33525 | Point HL at the attribute property of the object in the current inventory slot | ||
34653 | LD A,(HL) | Store attribute at 23695... | ||
34654 | LD (23695),A | ... | ||
34657 | INC HL | Advance HL to point to graphic index property... | ||
34658 | LD A,(HL) | ...and load into A | ||
34659 | POP BC | Restore BC (coordinates in characters to draw object, was in DE) | ||
34660 | PUSH BC | Store BC (coordinates in characters to draw object) | ||
34661 | PUSH BC | Store BC (coordinates in characters to draw object) | ||
34662 | CALL 54406 | Draw an object with lookup index A at character coordinates (C, B) | ||
34665 | POP BC | Restore BC (coordinates in characters to draw object) | ||
34666 | CALL 54148 | Load HL with attribute file address for coordinates (C, B) | ||
34669 | LD A,(23695) | Load A with attribute stored at 23695... | ||
34672 | LD (HL),A | ...and apply this attribute to attribute file at coordinates (C, B)... | ||
34673 | INC HL | ... | ||
34674 | LD (HL),A | ...(C + 1, B)... | ||
34675 | LD BC,31 | ... | ||
34678 | ADD HL,BC | ... | ||
34679 | LD (HL),A | ...(C, B + 1)... | ||
34680 | INC HL | ... | ||
34681 | LD (HL),A | ...and (C + 1, B + 1) | ||
34682 | POP DE | Restore DE (coordinates in characters to draw object) | ||
34683 | LD A,E | Advance right by three characters (i.e. add three to x-coordinate in E)... | ||
34684 | ADD A,3 | ... | ||
34686 | LD E,A | ... | ||
34687 | POP HL | Restore HL (pointer to current position in Magic Knight's current inventory) | ||
34688 | INC HL | Advance HL to next inventory slot | ||
34689 | POP BC | Restore BC (B = remaining number of inventory slots to process) | ||
34690 | DJNZ 34641 | Decrease B, and loop back to 34641 if not zero | ||
34692 | RET | Return | ||
34693 | POP DE | Restore DE (coordinates in characters to draw object) | ||
34694 | POP HL | Restore HL (pointer to current position in Magic Knight's current inventory) | ||
34695 | POP BC | Restore BC (B = remaining number of inventory slots to process) | ||
34696 | RET | Return |
Prev: 34567 | Up: Map | Next: 34697 |