turn_sprite.asm 567 B

1234567891011121314151617181920212223242526
  1. UpdateSpriteFacingOffsetAndDelayMovement:
  2. ld h, $c2
  3. ld a, [H_CURRENTSPRITEOFFSET]
  4. add $8
  5. ld l, a
  6. ld a, $7f ; maximum movement delay
  7. ld [hl], a ; c2x8 (movement delay)
  8. dec h
  9. ld a, [H_CURRENTSPRITEOFFSET]
  10. add $9
  11. ld l, a
  12. ld a, [hld] ; c1x9 (facing direction)
  13. ld b, a
  14. xor a
  15. ld [hld], a
  16. ld [hl], a ; c1x8 (walk animation frame)
  17. ld a, [H_CURRENTSPRITEOFFSET]
  18. add $2
  19. ld l, a
  20. ld a, [hl] ; c1x2 (facing and animation table offset)
  21. or b ; or in the facing direction
  22. ld [hld], a
  23. ld a, $2 ; delayed movement status
  24. ld [hl], a ; c1x1 (movement status)
  25. ret