![]() |
Routines |
| Prev: CF99 | Up: Map | Next: D04B |
|
Used by the routine at CF99.
|
||||
|
Follows the previous routine when a warlock is destroyed, or an object has been successfully traded.
The disintegration/materialization animation that followed either of these events is complete and the warlock will now drop the object it is carrying.
|
||||
| D019 | LD A,$00 | |||
| D01B | LD ($EACF),A | Set the draw/erase flag to 0 (ERASE) | ||
| D01E | CALL $E3FD | Reset screen attribute colours for warlock | ||
| D021 | LD A,$04 | |||
| D023 | LD ($EB43),A | Set the (new) object type to 4 = interactable object | ||
| D026 | LD B,$00 | The CALL in a few instruction to DE4C uses either the B register (room number) or C register (object number), whichever is <>0 We want to use the C register, so set B register to zero |
||
| D028 | LD A,($EB46) | Get object number | ||
| D02B | LD C,A | Store in C register | ||
| D02C | LD HL,($DAF3) | Address pointer to the room object data sets in table at 736F | ||
| D02F | LD A,$00 | |||
| D031 | LD ($EB84),A | Set the counter for the room object tables to 0 | ||
| D034 | CALL $DE4C | Identify object, and copy its data into the object data set buffer at EB85 | ||
| D037 | LD HL,($EB82) | Get address pointer to item's data set in table at 736F | ||
| D03A | LD ($EB44),HL | ...store in item data buffer | ||
| D03D | LD A,($EB88) | Get item properties byte | ||
| D040 | OR %01001101 | Set bits:
|
||
| D042 | LD ($EB4E),A | Store as item properties byte | ||
| D045 | CALL $DADC | Fetch object state and prepare graphics for printing | ||
| D048 | JP $D27D | |||
| Prev: CF99 | Up: Map | Next: D04B |