Prev: 8F80 Up: Map Next: 8FCA
8F96: Let a heading fall back towards nothing
Used by the routine at MOVE_PLAYER.
The counterpart to STEER. Where that adds to the pair at +$06 and +$07, this subtracts from them towards zero, so a creature that stops being pushed coasts to a halt instead of stopping dead. Gated on the low nibble of +$02, so it only bites every so often.
DECAY_HEADING 8F96 LD A,(IX+$02)
8F99 AND $0F
8F9B RET NZ
8F9C LD A,(IX+$06)
8F9F AND A
8FA0 JR Z,DECAY_HEADING_2
8FA2 JP M,DECAY_HEADING_5
8FA5 SUB L
8FA6 JP P,DECAY_HEADING_1
DECAY_HEADING_0 8FA9 XOR A
DECAY_HEADING_1 8FAA LD (IX+$06),A
DECAY_HEADING_2 8FAD LD A,(IX+$07)
8FB0 AND A
8FB1 RET Z
8FB2 JP M,DECAY_HEADING_6
8FB5 SUB H
8FB6 JP P,DECAY_HEADING_4
DECAY_HEADING_3 8FB9 XOR A
DECAY_HEADING_4 8FBA LD (IX+$07),A
8FBD RET
DECAY_HEADING_5 8FBE ADD A,L
8FBF JP M,DECAY_HEADING_1
8FC2 JR DECAY_HEADING_0
DECAY_HEADING_6 8FC4 ADD A,H
8FC5 JP M,DECAY_HEADING_4
8FC8 JR DECAY_HEADING_3
Prev: 8F80 Up: Map Next: 8FCA