Prev: 41848 Up: Map Next: 41921
41884: Attach Carried Item
Mark the object as carried and set RoverCargoFlag.
Input
IX Actor slot
Mark the object as carried and set RoverCargoFlag.
AttachCarriedItem 41884 SET 2,(IX+8) Set bit 2 of the actor flags.
41888 LD A,1 Write 1 to RoverCargoFlag.
41890 LD (24227),A
Record in the actor flags which way the rover faces.
41893 LD A,(24720) Fetch Rover_Slot.
41896 CP 34 Compare it against 34.
41898 LD A,0 A=0.
41900 JR C,AttachCarriedItem_KeepBit3 Jump to AttachCarriedItem_KeepBit3 if the rover type is below 34.
41902 ADD A,8 Add 8.
Keep the facing bit from the actor type and merge it into the flags.
AttachCarriedItem_KeepBit3 41904 XOR (IX+0) XOR it with the actor type.
41907 AND %00001000 Keep only bit 3.
41909 LD C,A Stash that bit in C.
41910 LD A,(IX+8) Fetch the actor flags.
41913 AND %11110111 Reset bit 3.
41915 OR C Merge the rover-facing bit back in.
41916 LD (IX+8),A Write the flags back.
41919 JR Handler_WorldObject_Loop Jump to Handler_WorldObject_Loop.
Prev: 41848 Up: Map Next: 41921