Prev: 8283 Up: Map Next: 82F1
82C3: Turn a signed value into a direction code
Used by the routine at AIM_SWORD.
Zero, positive or negative becomes 0 or 4 in C, which is then used to pick a sprite or a table entry. The game's usual way of turning "which way is it going" into "which picture".
SIGN_TO_DIRECTION 82C3 LD C,$00
82C5 LD A,(HL)
82C6 AND A
82C7 JR Z,SIGN_TO_DIRECTION_3
82C9 JP P,SIGN_TO_DIRECTION_0
82CC LD C,$04
SIGN_TO_DIRECTION_0 82CE DEC HL
82CF LD A,(HL)
82D0 AND A
82D1 JR Z,SIGN_TO_DIRECTION_1
82D3 JP P,SIGN_TO_DIRECTION_2
82D6 DEC C
SIGN_TO_DIRECTION_1 82D7 LD A,C
82D8 AND $07
82DA ADD A,$38
82DC LD HL,$EA98
82DF LD (HL),A
82E0 RET
SIGN_TO_DIRECTION_2 82E1 INC C
82E2 JR SIGN_TO_DIRECTION_1
SIGN_TO_DIRECTION_3 82E4 DEC HL
82E5 BIT 7,(HL)
82E7 JR Z,SIGN_TO_DIRECTION_4
82E9 LD C,$06
82EB JR SIGN_TO_DIRECTION_1
SIGN_TO_DIRECTION_4 82ED LD C,$02
82EF JR SIGN_TO_DIRECTION_1
Prev: 8283 Up: Map Next: 82F1