Prev: 53145 Up: Map Next: 53323
53273: Warlock - drop carried object
Used by the routine at 53145.
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.
53273 LD A,0
53275 LD (60111),A Set the draw/erase flag to 0 (ERASE)
53278 CALL 58365 Reset screen attribute colours for warlock
53281 LD A,4
53283 LD (60227),A Set the (new) object type to 4 = interactable object
53286 LD B,0 The CALL in a few instruction to 56908 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
53288 LD A,(60230) Get object number
53291 LD C,A Store in C register
53292 LD HL,(56051) Address pointer to the room object data sets in table at 29551
53295 LD A,0
53297 LD (60292),A Set the counter for the room object tables to 0
53300 CALL 56908 Identify object, and copy its data into the object data set buffer at 60293
53303 LD HL,(60290) Get address pointer to item's data set in table at 29551
53306 LD (60228),HL ...store in item data buffer
53309 LD A,(60296) Get item properties byte
53312 OR %01001101 Set bits:
  • 0 (1) = item is visible
  • 2 (4) = item will need erasing before redrawing
  • 3 (8) = item is dropping/flying
  • 6 (64) = item is portable
53314 LD (60238),A Store as item properties byte
53317 CALL 56028 Fetch object state and prepare graphics for printing
53320 JP 53885
Prev: 53145 Up: Map Next: 53323