Deathchase | Routines |
Prev: 6113 | Up: Map | Next: 61F3 |
Used by the routine at 5F89.
|
||||
6150 | LD A,$60 | |||
6152 | LD H,$48 | |||
6154 | ADD A,C | |||
6155 | LD L,A | |||
6156 | LD A,($5DD6) | Get the current distance to the bikes | ||
6159 | LD DE,$7184 | Point DE at the enemy bike graphics UDG table at 7184 | ||
615C | CP $02 | Are the bikes far away? | ||
615E | JP M,$616A | Jump forward if so | ||
6161 | CP $04 | Are the bikes visible at all? | ||
6163 | LD DE,$71B4 | 71B4 - large bike UDGs | ||
6166 | JP M,$619F | Jump if they are | ||
6169 | RET | Bail out, no bikes to draw | ||
Draw small bikes
|
||||
616A | EX DE,HL | |||
616B | LD A,($5DC1) | Get the bike position and work out the screen offset | ||
616E | INC A | |||
616F | LD B,A | |||
6170 | LD A,($5DD6) | Get the bike's image type | ||
6173 | LD C,A | Convert this to a graphic address | ||
6174 | ADD A,A | |||
6175 | ADD A,C | |||
6176 | ADD A,B | |||
6177 | ADD A,A | |||
6178 | ADD A,A | |||
6179 | ADD A,A | |||
617A | LD B,$00 | |||
617C | LD C,A | |||
617D | ADD HL,BC | |||
Copy the bike onto screen
|
||||
617E | EX DE,HL | |||
617F | LD B,$08 | |||
6181 | LD A,(DE) | |||
6182 | OR (HL) | |||
6183 | LD (HL),A | |||
6184 | INC H | |||
6185 | INC DE | |||
6186 | DJNZ $6181 | |||
6188 | LD H,$48 | |||
618A | LD A,$E0 | |||
618C | ADD A,L | |||
618D | LD L,A | |||
618E | LD A,$10 | |||
6190 | CP (HL) | |||
6191 | JR C,$619E | |||
Copy the attribute
|
||||
6193 | LD A,$20 | |||
6195 | ADD A,L | |||
6196 | LD L,A | |||
6197 | LD H,$59 | |||
6199 | LD A,($5DC0) | |||
619C | OR (HL) | |||
619D | LD (HL),A | |||
619E | RET | |||
Draw large bikes
|
||||
619F | EX DE,HL | |||
61A0 | LD A,($5DC1) | Get the bike's position and work out its screen address | ||
61A3 | INC A | |||
61A4 | LD B,A | |||
61A5 | LD A,($5DD6) | Get the bike's image type | ||
61A8 | ADD A,$FE | Convert this to a graphic address | ||
61AA | LD C,A | |||
61AB | ADD A,A | |||
61AC | ADD A,C | |||
61AD | ADD A,B | |||
61AE | PUSH HL | |||
61AF | LD H,$00 | |||
61B1 | LD L,A | |||
61B2 | ADD HL,HL | |||
61B3 | ADD HL,HL | |||
61B4 | ADD HL,HL | |||
61B5 | ADD HL,HL | |||
61B6 | POP BC | |||
61B7 | ADD HL,BC | |||
Copy the bike onto screen
|
||||
61B8 | EX DE,HL | |||
61B9 | LD B,$08 | |||
61BB | LD A,(DE) | |||
61BC | OR (HL) | |||
61BD | LD (HL),A | |||
61BE | INC H | |||
61BF | INC DE | |||
61C0 | DJNZ $61BB | |||
61C2 | LD H,$48 | |||
61C4 | LD A,$40 | |||
61C6 | ADD A,L | |||
61C7 | LD L,A | |||
61C8 | INC H | |||
61C9 | LD A,(HL) | |||
61CA | CP $00 | |||
61CC | JR NZ,$61F2 | |||
Copy the attribute
|
||||
61CE | LD A,L | |||
61CF | SUB $40 | |||
61D1 | LD L,A | |||
61D2 | LD H,$59 | |||
61D4 | LD A,($5DC0) | |||
61D7 | LD C,A | |||
61D8 | LD A,(HL) | |||
61D9 | AND $F8 | |||
61DB | OR C | |||
61DC | LD (HL),A | |||
Copy the second row
|
||||
61DD | LD H,$48 | |||
61DF | LD A,L | |||
61E0 | ADD A,$20 | |||
61E2 | LD L,A | |||
61E3 | LD B,$08 | |||
61E5 | LD A,(DE) | |||
61E6 | LD (HL),A | |||
61E7 | INC H | |||
61E8 | INC DE | |||
61E9 | DJNZ $61E5 | |||
Do the attribute
|
||||
61EB | LD H,$59 | |||
61ED | LD A,(HL) | |||
61EE | AND $F8 | |||
61F0 | OR C | |||
61F1 | LD (HL),A | |||
61F2 | RET |
Prev: 6113 | Up: Map | Next: 61F3 |