![]() |
Routines |
| Prev: EB01 | Up: Map | Next: EB54 |
|
-
|
||||||||
| EB0F | LD A,$01 | Set that the item should be swapped. (EB54) | ||||||
| EB11 | LD ($EB54),A | |||||||
| EB14 | LD B,(IY-$2D) | Get the ID of the least recently picked up object the player has. | ||||||
| EB17 | LD C,(HL) | Put the ID of the object to swap in C. | ||||||
| EB18 | INC HL | Ensure HL points to the next place in the action buffer. | ||||||
| EB19 | PUSH HL | Remember this. | ||||||
| EB1A | PUSH IY | Remember the current player pointer in IY. | ||||||
| EB1C | CALL $AA8C | Get the buffer for this object. | ||||||
| EB1F | LD A,(IY+$50) | Get the ID of the first object held. | ||||||
| EB22 | CP C | Does it equal this one? | ||||||
| EB23 | JR Z,$EB2F | Jump forward if it does. | ||||||
| EB25 | INC IY | Otherwise, temporarily shift IY forward so the second object held appears at the first. | ||||||
| EB27 | INC IY | |||||||
| EB29 | INC IY | |||||||
| EB2B | INC IY | |||||||
| EB2D | INC IY | |||||||
| EB2F | LD C,(HL) | Put the ID of the object in the room in C. | ||||||
| EB30 | LD A,(IY+$50) | Get the ID of the object to swap (first or second) in A. | ||||||
| EB33 | LD (HL),A | Swap them round. | ||||||
| EB34 | LD (IY+$50),C | |||||||
| EB37 | INC HL | Move to the flags. | ||||||
| EB38 | INC HL | |||||||
| EB39 | INC HL | |||||||
| EB3A | LD A,(HL) | Put the flags in A. | ||||||
| EB3B | RES 7,A | Reset bit 7, the item has been swapped. | ||||||
| EB3D | LD C,A | Store this in C. | ||||||
| EB3E | LD A,(HL) | Put the flags in A. | ||||||
| EB3F | AND $80 | Clear bit 7. | ||||||
| EB41 | OR (IY-$37) | Keep the bits set on the current bit mask. | ||||||
| EB44 | LD (HL),A | Store this. | ||||||
| EB45 | LD (IY-$37),C | Store the old flags. | ||||||
| EB48 | POP IY | Restore the original value of IY. | ||||||
| EB4A | CALL $E41D | Update the inventory. | ||||||
| EB4D | CALL $AA7F | Play an "item swapped" effect. | ||||||
| EB50 | POP HL | Restore the place in the buffer to HL. | ||||||
| EB51 | JP $EAEB | Process more actions. | ||||||
| Prev: EB01 | Up: Map | Next: EB54 |