Chase H.Q. | Routines |
Prev: B67C | Up: Map | Next: B6D6 |
Used by the routine at animate_hero_car.
|
||||||||
draw_crash | B69E | LD E,$80 | E = 128 -- horz position/offset? | |||||
B6A0 | LD B,$00 | Turn index into offset into unknown_cfb2 (BC = A * 3) | ||||||
B6A2 | LD C,A | |||||||
B6A3 | RLCA | |||||||
B6A4 | ADD A,C | |||||||
B6A5 | LD C,A | |||||||
B6A6 | LD HL,$CFB2 | HL = unknown_cfb2 + BC -> unknown_cfb2[index] -- Point HL at element | ||||||
B6A9 | ADD HL,BC | |||||||
B6AA | LD A,(HL) | D = *HL++ + 121 -- presumably the vertical position/offset | ||||||
B6AB | INC HL | |||||||
B6AC | ADD A,$79 | |||||||
B6AE | LD D,A | |||||||
B6AF | LD A,(HL) | E += *HL++ -- add to horz position/offset | ||||||
B6B0 | INC HL | |||||||
B6B1 | ADD A,E | |||||||
B6B2 | LD E,A | |||||||
B6B3 | LD C,(HL) | Load offset into car_adornments | ||||||
B6B4 | LD HL,$D027 | Point HL at (car_adornments + BC) | ||||||
B6B7 | ADD HL,BC | |||||||
B6B8 | LD B,(HL) | Read row height & advance | ||||||
B6B9 | INC HL | |||||||
B6BA | LD C,(HL) | Read byte width & advance | ||||||
B6BB | INC HL | |||||||
B6BC | LD A,(HL) | Read masked bitmap data pointer & advance | ||||||
B6BD | INC HL | |||||||
B6BE | LD H,(HL) | |||||||
B6BF | LD L,A | |||||||
B6C0 | LD A,C | Get byte width in A | ||||||
B6C1 | EXX | Bank byte width in E' | ||||||
B6C2 | LD E,A | |||||||
B6C3 | EXX | |||||||
B6C4 | LD A,($B5AB) | Read car jump offset from 'SUB x' @ B5AA | ||||||
B6C7 | NEG | D -= A -- vert pos/offset - car jump offset | ||||||
B6C9 | ADD A,D | |||||||
B6CA | LD D,A | |||||||
B6CB | LD A,($B5B0) | Read self modified value in draw_car that sets the car's pitch (0/3/6) | ||||||
B6CE | SRL A | 0 -> 0, 3 -> 1, 6 -> 3 | ||||||
B6D0 | JR Z,draw_part | Jump to draw_part if zero | ||||||
Otherwise pitch was 3/6.
|
||||||||
B6D2 | SUB $02 | D += A - 2 -- make v.shift -1/1 | ||||||
B6D4 | ADD A,D | |||||||
B6D5 | LD D,A | |||||||
FALL THROUGH
|
Prev: B67C | Up: Map | Next: B6D6 |