Prev: 8FD6 Up: Map Next: 9034
8FF5: Action: Throw At
Throws the current object at the second object. Reached through the action table at ActionTable, dispatched by Turn_RunTheHandlerIfPresent.
Action_ThrowAt 8FF5 CALL Action_AddTheObjectMass Call Action_AddTheObjectMass to add the object's mass.
8FF8 LD HL,$9171 Point HL at the attack handler.
8FFB LD A,$0F The second object is taken from B70A, with 0F in A.
8FFD LD IX,($B70A) Read *B70A.
9001 BIT 6,(IX+$07) Jump to Action_ThrowAt_HandTheObjectOver if the object is an animal.
9005 JR NZ,Action_ThrowAt_HandTheObjectOver
9007 LD HL,$92ED Point HL at action: Use The Other Object.
900A LD A,$0B Set the current action to 0B.
Action_ThrowAt_HandTheObjectOver 900C LD ($B6E7),A Update *CurrentAction.
900F CALL ActionHandAnObjectOver Call ActionHandAnObjectOver to hand the object from one character to another.
9012 LD A,$2A Write 2A (throw) to *CurrentAction.
9014 LD ($B6E7),A
9017 LD A,($B6FA) Read *B6FA.
901A CP $01 Return if the message gate is not 01.
901C RET NZ
901D LD IX,($B708) Read *B708.
9021 LD (IX+$01),$FF Mark where this object is as unset.
9025 LD A,$0F Write 0F (attack) to *CurrentAction.
9027 LD ($B6E7),A
902A LD A,($B6E8) Read *CurrentObject.
902D JP Turn_WakeAnAnimal Jump to Turn_WakeAnAnimal to start the object's special-object script if it is an animal and not broken.
9030 LD (IX+$01),$FF Mark where this object is as unset.
Prev: 8FD6 Up: Map Next: 9034