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 |