Routines |
Prev: 55525 | Up: Map | Next: 55698 |
|
||||||||
55616 | LD A,122 | If y-coordinate of bottom of entity is smaller than 122 (i.e. bottom of entity is above bottom of room)... | ||||||
55618 | CP (IX+6) | ... | ||||||
55621 | RET NC | ...then return | ||||||
55622 | PUSH BC | Store BC | ||||||
55623 | PUSH DE | Store DE | ||||||
55624 | LD IY,(34254) | Load start address of current level's vertical room connectivity data into IY | ||||||
55628 | LD D,(IX+0) | Load current room of entity into D | ||||||
55631 | LD A,(IY+0) | Load first byte (upper room index) of current entry into A | ||||||
55634 | CP 255 | If byte is 255 (i.e. the end marker)... | ||||||
55636 | JR Z,55695 | ...then skip ahead to 55695 | ||||||
55638 | CP D | If byte is the same as the entity's current room... | ||||||
55639 | JR Z,55647 | ...then skip ahead to 55647 | ||||||
55641 | INC IY | Advance by two bytes to the next entry... | ||||||
55643 | INC IY | ... | ||||||
55645 | JR 55631 | Loop back to 55631 | ||||||
55647 | LD B,(IY+1) | Load second byte (lower room index) of current entry into B | ||||||
55650 | LD A,(34231) | Load position (chars) of left side of current room (old, that entity is leaving) into D... | ||||||
55653 | LD D,A | ... | ||||||
55654 | CALL 54480 | Set room of entity to B, store room size data for new room and load E with entity's width minus one | ||||||
55657 | LD A,(34231) | Load position (chars) of left side of current room (new, that entity has entered) into A | ||||||
55660 | SUB D | Subtract x-coordinate of old room's left edge from x-coordinate of new room's left edge... | ||||||
55661 | LD D,A | ...and place result in D | ||||||
55662 | LD A,(IX+5) | Load A with x-coordinate of left of entity... | ||||||
55665 | SUB D | ...subtract difference in positions of rooms' left edges... | ||||||
55666 | LD (IX+5),A | ...and store | ||||||
55669 | ADD A,E | Update x-coordinate of right of entity by adding entity's (width - 1) value... | ||||||
55670 | LD (IX+7),A | ... | ||||||
55673 | LD A,(IX+4) | Subtract 20 from y-coordinate of top of entity... | ||||||
55676 | SUB 20 | ... | ||||||
55678 | LD (IX+4),A | ... | ||||||
55681 | LD A,(IX+6) | Subtract 20 from y-coordinate of bottom of entity... | ||||||
55684 | SUB 20 | ... | ||||||
55686 | LD (IX+6),A | ... | ||||||
55689 | CALL 54456 | Paint red areas outside current character's room if IX points to current character's complex state data | ||||||
55692 | POP DE | Restore DE | ||||||
55693 | POP BC | Restore BC | ||||||
55694 | RET | Return | ||||||
55695 | POP DE | Restore DE | ||||||
55696 | POP BC | Restore BC | ||||||
55697 | RET | Return |
Prev: 55525 | Up: Map | Next: 55698 |