Prev: 42604 Up: Map Next: 42636
42617: Transform Item
Used by the routine at 43592.
Rather than use item properties, the game just has separate objects that don't exist until an action is performed.
An example is:
Item ID Item Name
31 N/A
32 N/A
When the helmet is worn by the player; item 31 is destroyed and replaced with item 32.
Input
B From item ID
C To item ID
TransformItem 42617 LD A,B Call ItemLocator with the source item ID.
42618 CALL ItemLocator
A now contains the location of the source ID.
42621 PUSH BC Stash the item IDs and source item room ID on the stack.
42622 PUSH AF
42623 LD C,0 Call Handler_UpdateItemLocation and disable the source item.
42625 CALL Handler_UpdateItemLocation
42628 POP AF Restore the source item room ID and item IDs from the stack.
42629 POP BC
Activate the destination item in the same room.
42630 LD B,C Load the destination item ID into B.
42631 LD C,A Load the source room ID into C.
42632 CALL Handler_UpdateItemLocation Call Handler_UpdateItemLocation.
42635 RET Return.
View the equivalent code in;
Prev: 42604 Up: Map Next: 42636